Copyright © 2001, 2002, 2003, 2004, 2005, 2006 by Bluegiga Technologies
Bluegiga Technologies reserves the right to alter the hardware, software, and/or specifications detailed herein at any time without notice, and does not make any commitment to update the information contained herein. Bluegiga Technologies assumes no responsibility for any errors which may appear in this manual. Bluegiga Technologies' products are not authorized for use as critical components in life support devices or systems.
The WRAP is a registered trademark of Bluegiga Technologies. iWRAP, WRAP THOR and WRAP Access Server are trademarks of Bluegiga Technologies.
The Bluetooth trademark is owned by the Bluetooth SIG Inc., USA, and is licensed to Bluegiga Technologies.
ARM and ARM9 are trademarks of ARM Ltd.
Linux is a trademark of Linus Torvalds.
All other trademarks listed herein belong to their respective owners.
WRAP™
Bluegiga's WRAP product family offers for device manufacturers, integrators, companies and developers a simple and fast way to set-up wireless communication systems between standard or proprietary devices, networks, machines and instruments.
WRAP Access Server™
WRAP Access Server™ is a cutting edge wireless Bluetooth router. It supports multiple communication standards including Ethernet, WiFi, and GSM/GPRS enabling full media-independent TCP/IP connectivity. WRAP Access Server™ is easy to deploy and manage in existing wired and wireless networks without compromising speed or security. For very fast deployment, WRAP Access Server™ configurations can easily be copied from one device to another using USB memory dongles. The device can be conveniently managed and upgraded remotely over SSH secured links and by supporting SNMP (Simple Network Management Protocol), WRAP Access Servers can also be connected to customer's management and monitoring systems.
Usage scenarios and applications:
Point-of-sales systems
Logistics and transportation systems
Telemetry and machine-to-machine systems
Medical and healthcare systems
Fitness and sport telemetry systems
Cable replacement
Content and application distribution to mobile phones and PDAs
Key features:
Enables Bluetooth networking between multiple devices and networks
Serves up to 21 simultaneous Bluetooth connections
Offers an open platform for adding local applications
Acts as a transparent router or bridge
Supports all key communication medias:
Bluetooth
Ethernet
WiFi, GSM and GPRS with Compact Flash card
USB and RS232
Incorporates packet filtering firewall
Is fast and easy to install
All relevant Bluetooth profiles and API's supported
100 meter range / Software configurable for support 10 meter range
DHCP Support for plug-and-play installation
Uncompromised security: SSH, Firewall and 128 bit Bluetooth encryption
Simple and secure mounting accessory available
Bluetooth, CE and FCC certified
Compliant with Bluetooth 1.1 and 1.2 Specification
| Warning |
Bluegiga Technologies is hereby willing to license the enclosed WRAP product and its documentation under the condition that the terms and conditions described in the License Agreement are understood and accepted. The License Agreement is supplied within every WRAP product both in hard copy and soft copy (file \doc\eula.pdf on the WRAP Access Server SDK CD-ROM). The use of the WRAP product will indicate your assent to the terms. If you do not agree to these terms, Bluegiga Technologies will not license the software and documentation to you, in which event you should return this complete package with all original materials, equipment, and media. |
Some software components are licensed under the terms and conditions of an open source license. Details can be found in Appendix C. Upon request, Bluegiga will distribute a complete machine-readable copy of the source of the aforementioned open source software components during a period of three (3) years from the order date of the product. Delivery costs of the source code will be charged from the party requesting the source code.
The Bluegiga WRAP Product Limited Warranty Statement is located in the file \doc\warranty.pdf on the WRAP Access Server SDK CD-ROM.
Please see https://www.bluegiga.com/ for news and latest product offers. For more information, contact <[email protected]>.
Please check https://www.bluegiga.com/techforum/for software and documentation updates.
Please contact <[email protected]> if you need more technical support. To speed up the processing of your support request, please include as detailed information on your product and your problem situation as possible.
Please begin your email with the following details:
Access Server product type
Access Server product serial number
Access Server software version
End customer name
Date of purchase
The WRAP Access Server can be controlled via the WWW interface, by entering commands and using applications at Access Server shell prompt or by sending and/or retrieving files to/from the Access Server.
Note: The default username is root with password buffy.
To get started with the WRAP Access Server, connect it to your local area network (LAN) using an Ethernet cable and connect the power adapter. The Access Server will power up and retrieve the network settings from your network's DHCP server.
The WRAP Access Server will also use Zeroconf (also known as Zero Configuration Networking or Automatic Private IP Addressing) to get an unique IP address in the 169.254.x.x network. Most operating systems also support this. So, you can connect your controlling laptop with a cross-over Ethernet cable to the WRAP Access Server, then power up the Access Server, and the devices will automatically have unique IP addresses in 169.254.x.x network.
Note: If you need to configure the network settings manually and cannot connect first using Zeroconf, you can do it using the management console, see subsection Section 2.3.1.
Locations of the physical interfaces of the Access Server are described in Figure 2-1 and Figure 2-2.
Note: There is no power switch in the WRAP Access Server. Unplug and plug the power adapter to switch the power on and off. The power led in Figure 2-2 is on when the power adapter is connected.
All the blue status LEDs are turned off when the boot procedure is finished and the Access Server is ready to be connected.
Most WRAP Access Server functionality can be controlled via the WWW interface using any standard WWW browser.
The wrapfinder application (see Figure 2-3), available for Windows operating system from Bluegiga Techforum (https://www.bluegiga.com/techforum/) provides easy-to-use interface for finding the WRAP Access Servers (with SW version 2.1.0 or later) in the local area network.
The wrapfinder automatically identifies the broadcast address of the network it runs in and shows the IP addresses, serial numbers and WRAP Access Server device types it could find using UDP broadcast when it was launched.
Note: Normally, there are two entries for one Access Server. Use the one with the IP address in your local area network. Use the one with the 169.254.x.x, the Zeroconf network address, when it is the only one shown.
You can change the broadcast address used for finding the Access Servers. A new scan can be done by clicking Rescan.
Select an Access Server (by clicking its IP address) and click Details to see more information (like the Bluetooth addresses and friendly names) of the Access Server. See Figure 2-4 for details.
Click Connect or double-click an IP address to connect to the selected Access Server using a WWW browser.
Click Exit to close the program.
Note: To find the IP address of the Access Server without wrapfinder, see Section 2.3.2.
The WWW interface is accessed at http://wrap-ip/, where wrap-ip is the IP address of the WRAP Access Server (see Figure 2-5).
From the top-level page, click Setup to log in to the configuration interface. The default username is root and the default password is buffy (see Figure 2-6).
After logging in, you can configure several WRAP Access Server settings (see Figure 2-7). These are discussed in detail in Section 2.4.
Shell prompt access may be needed for advanced controlling operations that cannot be performed using the WWW interface.
You can get to the shell prompt using either SSH or the management console. The management console over a serial cable should only be needed to change the network configuration settings in the case were the network configuration using DHCP or Zeroconf is not possible. All further controlling activities can be performed remotely using SSH sessions over Ethernet or Bluetooth LAN/PAN connection.
If you can make SSH connection from a device that has Bluetooth LAN Access or PAN profile support, you don't need the management console. Just connect to the Access Server using LAN Access or PAN profile. The Access Server can be seen in Bluetooth inquiries as "Wserialno_n", where "serialno" is the serial number of the device and "n" is the number of the Bluetooth radio in question (model 2293 has three Bluetooth radios, any of which can be connected). After you have connected (no PIN code, username or password needed), connect using SSH to the device in the other end of the connection, typically 192.168.160.1. You can also use the wrapfinder application to find the IP address (see Section 2.2 for details).
Note: Bluetooth LAN Access is disabled by default. Use the WWW interface to enable it, if needed.
Note: The default username is root with password buffy.
If you don't have Bluetooth LAN/PAN client and you don't have the Access Server connected to your LAN or you don't know the IP address given to the Access Server, you can get the first shell prompt access using the management console.
To setup management console do the following:
Have a PC with a free COM port.
Power off the Access Server.
Configure your terminal application, like HyperTerminal in Windows, to use the settings in with the free COM port
Connect the serial cable shipped with the Access Server to your PC's free COM port.
Connect the null-modem adapter shipped with the Access Server to the serial cable
Connect the serial cable with the null-modem adapter to the management (user) port in the Access Server (see Figure 2-1).
Power on the Access Server.
Enter letter b in the terminal application during the first five seconds, while the blue LEDs in the Access Server turn on one by one.
The management console is now activated and you should see the boot log in your terminal window. Wait for the device to boot up and end with the prompt [root@wrap /]$.
You are ready to control the Access Server from the management console.
When the WRAP Access Server is connected to a LAN it tries to get the IP address using DHCP and Zeroconf by default. You can then use the wrapfinder application to find the IP address (see Section 2.2).
If you cannot get the IP address using the wrapfinder, another way to see the IP address of the WRAP Access Server is to connect with a management console (see previous section), power on the board and, after the system is up and running, give the command ifconfig nap. The field inet addr for the interface nap contains the IP address of the WRAP Access Server board. For example, in the following capture from the management console, the IP address is 192.168.42.3.
[root@wrap /]$ ifconfig nap
nap Link encap:Ethernet HWaddr 00:07:80:00:BF:01
inet addr:192.168.42.3 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::207:80ff:fe00:bf01/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:12635 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1686246 (1.6 MiB) TX bytes:1640 (1.6 KiB)
Interrupt:24 Base address:0xc000
|
You can use this address to connect the Access Server remotely via SSH, SCP or SFTP.
Note: The default username is root with password buffy.
You can transfer file to and from the Access Server by default using for example:
SCP (secure copy over SSH)
SFTP (secure ftp connection over SSH)
FTP (plain ftp connection).
Note: FTP is disabled by default for security reasons. Use SFTP instead.
Tip: If enabled, use the integrated client of the Internet Explorer (type ftp://root:buffy@wrap-ip-address/ in the address bar)
Bluetooth OBEX (Object Push and File Transfer Profiles) to/from directory /tmp/obex in WRAP Access Server
NFS (mount a nfs-share from a remote device as a part of the file system of the Access Server)
SSHFS (mount a WRAP Access Server directory over SSH as a part of the filesystem of any other Linux host)
To download and install SSHFS, visit http://fuse.sourceforge.net/sshfs.html.
USB memory dongle (see Section 3.4 for more information).
Xmodem/Ymodem/Zmodem (use rz/rx/rb/sz/sx/sb commands from the management console)
For examples of file transferring, see Section 5.3.4.
When the WRAP Access Server is installed and powered up for the first time, the default configuration settings are being used. With these settings, the Access Server automatically configures its network settings assuming that the board is connected to a LAN network with a DHCP server running. Additionally, the Access Server also uses Zero Configuration Networking (also known as Automatic Private IP Addressing) to connect to the 169.254.x.x network, which can be used if the network has no DHCP server.
After booting, you can use the Access Server as a Bluetooth PAN access point to the network without any changes in configuration. Also, the Serial Port Profile is enabled by default in listening mode. You can also use Object Push and File Transfer Profiles to send files to/from the Access Server.
Most of the settings of the WRAP Access Server are configurable using the setup application. It has a WWW interface at http://wrap-ip/setup but it can also be run at the command line.
All configurable settings in the setup application are listed in Appendix B with their help.
Note: The default username is root with password buffy.
The easiest way to change the Access Server settings is to use the WWW interface. Accessing the WWW interface is instructed in Section 2.2.
Typical WWW configuration page example is shown in Figure 2-8 (This page can be found at Setup → Security settings)
The different parts of a WWW Setup page are discussed in the following:
Changes have been saved. -line
This line comes visible when the user saves the changes by clicking the Save button (or by clicking a toggling Yes/No link). It confirms that the changes have been saved into permanent storage.
If invalid values were entered into one or more fields, an error message is shown at this line (see Figure 2-9).
Note: Rebooting of the Access Server is typically necessary to take changes into use. This can be done via the WWW interface (Advanced settings menu).
Number or text entry fields
Most of the configurable settings are text (or number) entry fields. For some fields (like IP address or netmask), there are restrictions on the input format. Setup validates the input at save time and accepts only valid data. The fields with errors are shown to the user so that mistakes can be fixed (see Figure 2-9).
Help -link
Clicking the Help link will retrieve the setup page again with requested help information displayed, like in like in Figure 2-10.
Note: If you have made changes to settings on the page before clicking Help and not saved them yet, they are lost.
Yes and No radio buttons
These buttons are used to configure typically a setting that can be either enabled or disabled, but that is not connected to another setting that would be hidden or shown according to the value of this one.
Link to a configuration file
Some of the configurable settings are actually editable configuration files, like /etc/httpd.conf for WWW passwords. Clicking the link will retrieve the file for editing in the browser window, or create a new file, if it does not exist. See Figure 2-11.
Note: Any file can be edited via the WWW Setup, in page Setup → Advanced setting → Edit other configuration files.
Reset -button
Reset -button resets the fields to the values currently in use by the Access Server, i.e. it discards the changes that have not been saved yet.
Note: This does not make a "factory reset".
Save -button
Save -button sends the WWW page for the setup application for validation. If the values in the fields are valid, they are saved to permanent storage and the page is refreshed with Changes have been saved. message at top and the accepted values in the fields.
If there were errors in the fields, these are shown as in Figure 2-9.
Note: Rebooting of the Access Server is typically necessary to take changes into use. This can be done via the WWW interface (Advanced settings menu).
Back -link
Returns to the previous level of the Setup menu hierarchy.
Note: This does not save changes in the fields at the current page.
Exit -link
Quits the setup application and returns to the WRAP Access Server's main WWW page.
Note: This does not save changes in the fields at the current page.
Toggling Yes/No and on/off links
Clicking Yes/No link (see Figure 2-12) immediately changes the setting and saves the change. Typically this is used with settings that require some other settings to come visible or to hide according to this setting.
The on/off links in Setup → Applications → Default bootup applications behave in a same way, making and saving the change immediately (see Figure 2-13).
Upload links
WWW Setup has settings that allow user to upload files to the Access Server, for example Setup → Advanced → Upload a software update (see Figure 2-14).
Use Browse... button to select a file to be uploaded, and send it to the Access Server by clicking Upload.
Browsing files
Some WWW Setup pages allow users to browse the WRAP Access Server filesystem or part of it, like Setup → Advanced → Browse files (see Figure 2-15).
Click the directory names to navigate in the filesystem.
Click del to delete a file or an empty directory.
| Warning |
Deletion is not confirmed. |
The WWW Setup has also menu items that run commands in the Access Server and then show the output in the browser window. Some commands, like rebooting the Access Server, are confirmed before execution.
The basic configuration settings can also be changed using the setup application at command line interface.
The setup application displays the settings in a hierarchical menu (see Figure 2-16). Navigating the menu is accomplished by entering the number or letter corresponding to the setting to be viewed and/or changed and pressing Enter. Pressing only Enter either accepts the previous value of the setting or returns to the previous level in the menu hierarchy.
Note: Ensure that your terminal application does not send line ends with line feeds. If your terminal sends both CR and LF when Enter is pressed, you cannot navigate in the setup application.
You can restore the default configuration with setup application and rebooting the board. When the system starts up, the default configuration settings are restored. If you have only changed the configuration by using the setup application, the following commands at the Access Server's command prompt will suffice:
[root@wrap /]$ setup -r
[root@wrap /]$ reboot
|
Note: This does not reset the edited files to factory defaults, only the other settings changed with WWW Setup or setup command line application.
This chapter describes the basic features of a Bluegiga WRAP Access Server and their usage. This includes information on using the Access Server board as a Bluetooth LAN/PAN Access Point or a Bluetooth Serial Port Cable Replacer, using the Web Server, ObexSender, WRAP Package Management System and the various ways for uploading content for browsing and/or downloading, as well as getting familiar with the utility applications.
Using the features described in this chapter does not require the WRAP Access Server Software Development Environment to be installed.
Note: The default username is root with password buffy.
Note: Most of the configuration files are in Linux text file format, where the lines end with a single Line Feed (LF, "\n") character. Some applications will not work if the configuration file format is changed to MS-DOS format (happens for example if you transfer the files to the Windows for editing with Notepad), where the lines end with both Carriage Return and Line Feed (CR+LF, "\r\n") characters.
The network interface in the WRAP Access Servers are described in Table 3-1.
Table 3-1. WRAP Access Server Network Interfaces
| Interface | Description |
|---|---|
| nap | Dynamic virtual Ethernet ("cable") device. This is the device having an IP address. All the programs should use this device instead of eth0. |
| eth0 | Real Ethernet device, dynamically linked to nap device. Do not use this, use nap instead! |
| eth1 | WiFi device for the Hermes driver (client mode only). |
| wlan0 | WiFi device for the Hostap driver. In client mode this device has an IP address, in access point mode it is dynamically linked to nap device. |
| wifi0 | Virtual control device for wlan0. Do not use. |
| gn | Virtual device for PAN-GN connections. |
| bnep# | These devices are used for incoming and outgoing PAN connections. They are created, deleted and linked (to nap or gn) dynamically. |
| ppp# | These devices are used for incoming and outgoing LAP connections. They are created and deleted dynamically. By default data coming from ppp# is masqueraded to nap device. |
The iWRAP servers (one in WRAP Access Server 2291, three in WRAP Access Server 2293) are started automatically at power-up. By default, the Serial Port, PAN and Object Push and File Transfer Profiles are activated. The iWRAP servers can be accessed and controlled (by applications or even interactively with a telnet client) using the iWRAP interface, described in section 9. Currently, there can be up to 14 simultaneous Bluetooth connections between a single master iWRAP server and up to 7 simultaneous slaves.
The access to the iWRAP can be password protected. By default it's buffy, but it can be unset or changed with the setup application (see Section 2.4). The password is case sensitive. The password must be typed in as the first command after the server has replied with "READY."
This profile is not automatically started at boot. The default settings can be changed with the setup application (see section Section 2.4), or runtime with the iWRAP interface (see Chapter 6).
The Access Server board can also act as a LAN Access Client, but in this case it must be controlled manually using iWRAP commands, described in Chapter 6.
Note: Since Bluetooth specification 1.2, LAN Access Profile has been deprecated.
The Serial Port Profile is used to replace an RS-232 serial cable between two devices with a Bluetooth connection. The physical setup is shown in Figure 3-1.
State A) in the figure is the starting situation with a serial cable connecting the devices. This cable is to be replaced with a Bluetooth connection.
In state B) the long serial connection is replaced with a Bluetooth Serial Port Profile connection between the two Access Server devices. These Access Server devices are then connected locally to the user devices with (short) serial cables. The cable between user device A and Access Server device A must be a cross-over cable. The cable between user device B and Access Server device B must be similar (direct or cross-over) to the one used in state A).
If RTS/CTS handshaking is used to ensure correct data transfer, the serial cables must have these pins connected. Note: This handshaking is "local": it takes place between the user device and the Access Server board. No handshaking between user device A and user device B on the other end of the Bluetooth connection is provided.
If RTS/CTS handshaking is not used, CTS must be connected to DTR.
DCD, DTR, and DSR signals are not supported. This also means that user devices A and B will not be able to tell whether or not the Bluetooth connection is up.
When the physical setup is ready, you can create the Bluetooth connection. By default, the Serial Port Profile is started up at boot with the default settings. That is, listening in DevB mode, at 115200 bps, 8 data bits, no parity, 1 stop bit, and RTS/CTS enabled. To change these settings, use the setup application or the WWW Setup interface, as described in Section 2.4.
Note: To disable Serial Port Profile, navigate to Setup → Applications → Default bootup applications in the WWW Setup interface, and switch serialport application to off.
Disabling can also be done from command prompt with command chkconfig --del serialport.
Access Server has two OBEX profiles: Object Push Profile (ObjP) and File Transfer Profile (FTP). You can use these profiles to transfer files easily between different Access Server devices and other devices supporting ObjP/FTP.
These profiles are handled by forwarding incoming calls to obexserver program, which handles both profiles. The working directory is /tmp/obex, and users have full read and write access there. By default, the default contact card /etc/default.vcf is copied there at boot.
In ObjP mode obexserver will prefix received files with sender's Bluetooth address and iWRAP port number.
Two simple command line utilities, obexput and obexget, are provided. They can be used to send and retrieve files to and from another Bluetooth device supporting ObjP/FTP.
Usage: obexput [parameters] bdaddr channel file(s)
Note: You can use the friendly name instead of Bluetooth address as the "bdaddr" parameter and keywords "OBJP" and "FTP" as the "channel" parameter for automatic service discovery.
Enter either of these commands without parameters to get a short help for using the command.
A non-zero return value means error. Reason for this error is printed to terminal. See Section 6.10 for a list of OBEX Library's return codes.
The WRAP Access Server has support for all PAN profile modes: Personal Area Network User (PANU), Network Access Point (NAP) and Generic Networking (GN).
The device creating the PAN connection decides, which of these modes are to be used. Incoming connections are handled automatically by the Access Server. The Access Server board can also act as a PAN client, but in this case it must be controlled manually using the iWRAP interface, described in the Chapter 6.
The transmit power of the WRAP Access Server is configurable. By default, class 1 (100 meter range) settings are used. The settings can be changed down to "class 2" settings (10 meter range) with b2b_class2 command or even less with b2b_class3 command. The class 1 settings can be restored with b2b_class1 command.
After b2b_class# is given, it is recommended to reboot the Access Server once to restart ObexSender and other applications connected to the iWRAP server(s).
Note: When the operation is successful, you should get one Can't open baseband message with WRAP Access Server model 2293 and three messages with 2291.
You can send commands to a iWRAP server using the btcli application.
Usage: btcli [options] command
To see the options, enter the command btcli --help.
The specified command is sent to a Access Server iWRAP server (default: first server at port 10101) and all replies are echoed to the standard output. The application waits and prints the replies for a certain amount of time (default: 10 seconds) and exits.
The iWRAP commands are described in Chapter 6.
It is also possible to control the first iWRAP server (at port 10101) via RS-232 with the serialbluetooth application. Note: When you want to use this application, you must first disable the Bluetooth Serial Port Profile and the WRAP SMS Gateway Server with the setup application, as described in Section 2.4.
Usage: serialbluetooth [options]
To see the options, enter the command serialbluetooth --help.
Basically, serialbluetooth takes commands from a serial port and forwards them to the iWRAP server. All the commands available via iWRAP are also available via serial port.
There are two exceptions:
After making an outgoing RFCOMM data call, all input from the serial port is forwarded to the data socket, not the control socket. To close the data socket, you have to write +++ with a 200ms pause before each character. There is no way to have two concurrent RFCOMM calls.
All incoming RFCOMM calls are answered automatically. Again, to close the data socket, write +++ as with the outgoing call.
In case of rare failures in the Bluetooth baseband level, it is possible to give hardware reset for the basebands while the other system services are running with the following command sequence at the command line interface of WRAP Access Server:
[root@wrap /]$ /etc/init.d/bluetooth stop
[root@wrap /]$ echo ABCD > /dev/bbreset
[root@wrap /]$ sleep 1
[root@wrap /]$ echo abcd > /dev/bbreset
[root@wrap /]$ sleep 2
[root@wrap /]$ /etc/init.d/bluetooth start
|
WRAP Access Server functionality can be extended using GSM/GPRS, WiFi and GPS Compact Flash cards. The supported compact flash cards are listed in Appendix D.
The Compact Flash GPRS card is identified automatically by the operating system when inserted. The WRAP Access Server can use the GPRS card to connect to the GPRS network or to act as an SMS gateway (to send and receive SMS messages).
The GPRS mode is enabled and settings like SIM card's PIN code are configured using the setup application or its WWW interface, see Section 2.4 and documentation for Setup → Network settings → Enable GPRS interface in Appendix B.
Using the WRAP SMS Gateway Server is documented in Section 3.5.3.
If needed for special use, the Compact Flash GPRS card can also be accessed directly from /dev/ttyS0, a device file which exists when the GPRS card is successfully initialized.
The Compact Flash GPS card is identified automatically by the operating system when inserted. At that time, the device file /dev/ttyS0 is created and the GPS card can be accessed using that device with the serial port settings in use by the GPS card.
The supported compact flash cards are listed in Appendix D.
WRAP Access Server has support for Prism II/III based CF WiFi cards. The supported compact flash cards are listed in Appendix D.
Depending on the firmware version, two different drivers must be used. The firmware version can be seen after the insertion of the card in the system log file /var/log/messages, which can be viewed with the WWW Setup interface at Setup → Advanced settings → Show system log file.
You need to use the Hostap driver, if you can see the following line in the log:
eth1: Looks like an Intersil firmware version 1.7.4
|
If the firmware version is below 1.7.4, you must use the Hermes driver.
Selection of the driver and configuration is done with the setup application or its WWW interface at Setup → Network settings.
Standard set of wireless utilities are provided to fine-tune your WiFi configuration:
iwconfig
iwlist
iwpriv
For more info see: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
Access Server's persistent memory storage can be extended using an USB memory dongle. The USB memory dongles are also used by the The WRAP Access Server Remote Management System (see Section 3.5.5) - each time a dongle is inserted, it is automatically mounted, scanned for management packets which are processed and unmounted.
To use the USB dongle for own applications it must be mounted manually with command
[root@wrap /]$ mount -t vfat usbdevice /mnt/usb
|
The usbdevice parameter is a path to the USB dongle filesystem device. For the first dongle inserted after a reboot, it is /dev/scsi/host0/bus0/target0/lun0/part1, if the dongle is partitioned and and /dev/scsi/host0/bus0/target0/lun0/disc, if the dongle has no partition table. If you have used several dongles after reboot, the host0 part of the path must be changed to host1 or host2 and so on. Example of finding the correct device automatically can be seen in script /usr/sbin/hotplub.usb.
Note: Remember always to unmount the memory dongle with the command
[root@wrap /]$ umount /mnt/usb
Note: Dongles with several partition tables do not fully work with the WRAP Access Server. In case of problems, please contact <[email protected]>.
The Access Server server applications are started automatically at system power-up or when needed by the iWRAP server or the Internet services daemon. The servers and their purposes are described in Table 3-2.
Table 3-2. Access Server Servers
| Server | Description |
|---|---|
| bluetooth | WRAP Access Server iWRAP Server, described in detail in Chapter 6. |
| finder | WRAP Finder Service. |
| obexsender | WRAP ObexSender server. |
| smsgw | WRAP SMS gateway server, described in detail in Section 3.5.3. Note: By default, this is disabled. Use setup application or chkconfig --add smsgw command to enable it. |
| watchdog | WRAP user level watchdog. |
| wpkgd | WRAP remote management system daemon. |
| cardmgr | Daemon to monitor Compact Flash cards. |
| crond | Daemon to execute scheduled commands. Configurable with /etc/crontab in the same way as any Linux crond. Note: By default, this is disabled. Use the WWW interface of the setup application or chkconfig --add crond command to enable it. |
| ftpd | Internet File Transfer Protocol Server. Configurable with setup application. Note: By default, this is disabled. Use the WWW interface of the setup application or chkconfig --add ftpd command to enable it. |
| dhcpcd | DHCP client daemon for automatic network configuration. |
| inetd | Internet services daemon. Note: By default, this is disabled. Use setup application or chkconfig --add inetd command to enable it. |
| httpd | Web server, described in detail in Section 3.5.7. |
| pppd | Point to Point Protocol daemon. Used by the iWRAP server. Can be used manually over the user serial port (/dev/ttyAT1). |
| snmpd | SNMP daemon. |
| sshd | SSH daemon. |
| syslogd | System logging daemon. Configurable with the setup application. |
| telnetd | Telnet protocol server. Note: By default, this is disabled. Use setup application or chkconfig --add telnetd command to enable it. |
The Finder service is a small service, which listens for UDP broadcast queries from the WRAP Access Server Finder applications and responses to those queries with identification information (IP address, model, serial number, etc.) about the Access Server.
The ObexSender application is started automatically in the WRAP Access Server. Its purpose is to receive business cards (vCards), images or other files, and analyze their content and send files back selecting them based on configured keywords found.
ObexSender can also inquiry for bluetooth devices, and automatically send one or more files to all new devices found.
ObexSender can be configured with setup application or by editing /etc/obexsender.conf file (see Section 2.4).
The WRAP SMS Gateway server supports Nokia 20, Nokia 30 or Wavecom WMOD2 compatible GSM terminals and the supported GSM/GPRS Compact Flash cards for sending and receiving SMS messages. By default the Compact Flash card is used. The PIN code query of the SIM-card at power-up must be disabled.
The WRAP SMS Gateway Server is disabled by default. To enable it, use the setup application's WWW interface, as described in section Section 2.4. Enabling is done at Setup → Applications → Default bootup applications → smsgw.
To use Nokia terminals the device must be connected to the user serial port when the server starts up and the terminal must be configured to operate in RS-232/AT-command. The Nokia terminals are configured with the N20 or N30 Configurator application.
The WRAP SMS Gateway is configured to use the terminal connected to the user serial port with the setup application or its WWW interface by changing the setting at Setup → Applications → SMS gateway settings → Comport device to /dev/ttyAT1 from the default /dev/ttyS0.
Note: If you are using user serial port you have to disable the Bluetooth Serial Port Profile, as they share the same physical user serial port.
For further information on using smsgw, see the makesms example in Section 5.3.1.
The WRAP User Level Watchdog daemon listens on UDP port 4266 for "id timeout" messages. "id" is an ASCII string, without spaces. If "timeout" equals to 0 (zero), the "id" is removed from the list of processes to wait. If "timeout" is greater than 0 (zero), the "id" is added or updated.
When there is no message for "id" received within the "timeout" seconds, the user level watchdog dies and the WRAP Access Server is rebooted by the kernel watchdog.
The watchdog command can be used to send messages to the watchdog daemon. This is done via command watchdog id timeout, for example watchdog test 5.
The WRAP Access Server contains simple tools that provide base for full and secure remote management of the device.
The basic remote management can be performed using the WWW Setup interface, SSH command line access and SCP and SFTP file transfer protocols.
In addition to them, the Access Server contains the WRAP Remote Management System for transferring management packets over different medium to the Access Server and automatically sending response packets back.
The management packets (*.wpk) are processed automatically when they are transferred to the autoinstall directory in the WRAP Access Server (/tmp/obex by default, configurable with setup application or WWW interface at Setup → Applications → wpkgd settings). Easiest way to transfer a management packet to this directory is to upload it from WWW Setup at Setup → Advanced settings → Upload a software update.
The WRAP Remote Management System top level architecture is shown in Figure 3-2.
A management action is performed using the following protocol:
A management packet (*.wpk) is prepared by the customer system.
The management packet is delivered to Access Server, into packaging daemon's inbox directory. One can currently use Bluetooth, SCP, SFTP and plain FTP to do this. The packet can also be transmitted using a USB memory dongle or via the WWW Setup interface.
The Access Server packaging daemon processes the management packet, possibly generating reply packet.
(optional) Reply packet is delivered to the customer system.
Package name must be of format name.wpk, where "name" can be user defined.
Package must be tar -archive that is compressed with gzip (like files named *.tar.gz or *.tgz).
Package should contain package information file called wpkg.pif in package root (contents described later), otherwise built-in defaults for wpkg.pif are used.
All other files, if exist, should be data files, scripts or executables required for the management operation
The management packet information file (wpkg.pif) consists of tags and their data, described here
%wpkg-version: 2
Contains information for version checking. 2 is currently the only supported version. This is also the default.
%wpkg-prepare: [command line[s]]
One or more commands (all lines until next tag are interpreted as command lines) to execute. Commands may contain parameters, redirections and job control as well.
Built-in default for this is /usr/bin/dpkg -i *.deb || echo ERROR: Installation failed.. This enables the special case of creating .wpk packets from .deb packets simply with tar czf foo.wpk foo.deb. (wpkg.pif is not needed in this special case).
%wpkg-reply: method
Where the generated reply packet is sent. By default it's sent to where it came from. Possible values are:
default
file:///path/filename
scp://remote:file
objp://bdaddr/
none
%wpkg-format: type
What kind of reply packet will be generated. Possible values are:
ascii (the default, everything echoed by prepare-section will be sent).
tgz (all files in current directory will be sent).
vcf (same as ascii, but assume it's vCard).
vmg (same as ascii, but assume it's vMessage).
vnt (same as ascii, but assume it's vNote).
vcs (same as ascii, but assume it's vCalendar).
html (same as ascii, but assume it's HTML).
%wpkg-auth: auth
Optional authentication string required by wpkgd.
The simplest example of wpkg.pif is:
%wpkg-version: 2
%wpkg-prepare:
echo Hello world
|
This will generate reply packet containing text "Hello world". You can generate the wpk-file simply giving the command tar czf hello.wpk wpkg.pif.
More complex example of wpkg.pif is:
%wpkg-version: 2
%wpkg-prepare:
FOO=`pwd`
cd /
tar xzf ${FOO}/files.tar.gz
echo Done.
|
This example will extract files from included files.tar.gz. You can generate wpk-file with command tar czf update.wpk wpkg.pif files.tar.gz.
In this example we build a simple packet that can be used with Bluetooth-enabled phone to retrieve IP Address of the WRAP Access Server. File wpkg.pif is:
%wpkg-version: 2
%wpkg-format: vcf
%wpkg-prepare:
ipaddr() {
echo `ifconfig nap | grep "inet addr" | awk -F [:] \
\\{print\\$2\\} | awk \\{print\\$1\\}`
}
serialno() {
echo `wrapid | grep Hardware | awk \\{print\\$5\\}`
}
echo -e "BEGIN:VCARD\r"
echo -e "VERSION:2.1\r"
echo -e "N:`serialno`\r"
echo -e "TEL:`ipaddr`\r"
echo -e "URL:`hostname`\r"
echo -e "END:VCARD\r"
|
This example will send the reply back as vCard (contact card). Please note that you have to include all required vCard formatting by yourself. You can generate wpk-file simply giving the command tar czf ipquery.wpk wpkg.pif.
To use this example, send the file ipquery.wpk to the inbox of you Bluetooth phone. Check that you have Bluetooth enabled in the phone. Then from the phone's inbox, send the file ipquery.wpk via Bluetooth to the WRAP Access Server.
When an USB memory dongle is inserted, the WRAP Access Server automatically tries to mount it (using VFAT type). When the mount is successful, the root directory is searched for a *.wpk packets and if a packet is found, it will be handled by the WRAP Package daemon. Optional reply packets are saved back to the root folder (if not otherwise stated in the %wpkg-reply tag).
If you enable FTP server then users can use it to log in in anonymously to /tmp/obex directory with download access or as root with password buffy to the root directory with full access. The password and other settings can be changed on the Access Server with setup application or by editing /etc/ftpd.conf file (see Section 2.4).
Note: Do not enable FTP because it's insecure. Use SSH (SCP or SFTP) instead. A nice client with a graphical user interface is for example WinSCP (http://winscp.net/).
The integrated web server in the Access Server supports HTTP/1.0 methods GET and POST, and has light user authentication capabilities. The content can be either static or dynamic - the WWW server is CGI/1.1 compatible.
The web server is always running and the content (http://wrap-ip-address/) is located in the /var/www/html/ directory in the Access Server file system.
The web server is configured to protect the WWW Setup interface with username and password. The default username and password can be changed as instructed in Section 2.4. For further information about using the web server for your own applications, see the web examples in Section 5.3.1.
A separate software update package is available from Bluegiga Techforum (https://www.bluegiga.com/techforum/), which adds the Net-SNMP suite of applications to the WRAP Access Server. Current implementation for the Access Server is limited and will be extended in the future. However, it can be used to poll the basic status of the Access Server.
Configuration details can be found and altered in the configuration file /etc/snmp/snmpd.conf accessible as described in Section 2.4.
For more information about the Net-SNMP suite, see http://net-snmp.sourceforge.net/
A separate software update package is available from Bluegiga Techforum (https://www.bluegiga.com/techforum/), which adds the OpenVPN™, a full-featured SSL VPN solution to the WRAP Access Server.
For more information about the OpenVPN™, see http://openvpn.net/.
The Access Server is basically a small Linux system. Whether logged in from the management console or with SSH, your shell session starts as the root user in the root directory. After that, you have the option to use most of the standard Linux utilities, briefly listed and described in Table 3-3. Most of the commands have a small built-in usage help that can be seen by executing the command with the -h or --help parameter.
Table 3-3. WRAP Access Server Utilities
| Application | Description |
|---|---|
| adduser | Add user to the system. |
| arping | Ping hosts by ARP requests/replies. |
| awk | Pattern scanning and processing language. |
| b2b_class1 | WRAP Board2Board module control script (set basebands to class 1). |
| b2b_class2 | WRAP Board2Board module control script (set basebands to class 2). |
| b2b_class3 | WRAP Board2Board module control script (set basebands to shortest possible range). |
| b2b_default | WRAP Board2Board module control script (restore all factory defaults, class 1). |
| basename | Strip directory and suffix from filenames. |
| bash | Bourne-Again SHell. |
| btcli | WRAP iWRAP Server Command Line Interface utility. |
| btproxy | WRAP iWRAP Proxy for Access Servers (test revision). |
| bunzip2 | Decompress bzip2-compressed files. |
| bzcat | Decompress bzip2-compressed files to stdout. |
| cardctl | Monitor and control the state of PCMCIA sockets. |
| cat | Concatenate files and print on the standard output. |
| chat | Automated conversational script with a modem. |
| chgrp | Change group ownership. |
| chkconfig | Updates and queries runlevel information for system services. |
| chmod | Change file access permissions. |
| chown | Change file owner and group. |
| chroot | Run command or interactive shell with special root directory. |
| clear | Clear the terminal screen. |
| cmp | Compare two files. |
| cp | Copy files and directories. |
| cpio | Copy files to and from archives. |
| crontab | Maintain crontab files for individual users. |
| cut | Remove sections from each line of files. |
| date | Print or set the system date and time. Note: The date command does not store the date into the battery powered real time clock. Use hwclock application instead. |
| dd | Convert and copy a file. |
| deluser | Delete user from the system. |
| df | Report file system disk space usage. |
| dfu | WRAP Board2Board module firmware upgrade tool. |
| dialup | WRAP iWRAP helper application. |
| dirname | Strip non-directory suffix from file name. |
| dmesg | Prints of controls the kernel ring buffer. |
| dpkg | A medium-level package manager for (.deb) packages. |
| dpkg-deb | Debian package archive (.deb) manipulation tool . |
| du | Estimate file space usage. |
| dump_cis | Retrieves and parses the Card Information Structures for inserted PCMCIA devices, or optionally, parses CIS information from a file. |
| dun | WRAP iWRAP helper application. |
| egrep | Print lines matching a pattern. |
| encode_keychange | Produce the KeyChange string for SNMPv3. |
| env | Run a command in a modified environment. |
| expr | Evaluate expressions. |
| false | Do nothing, unsuccessfully. |
| fgrep | Print lines matching pattern. |
| find | Search for files in a directory hierarchy. |
| free | Display the amount of free and used memory in the system. |
| ftp | Internet file transfer program. |
| gdbserver | Remote server for GDB debugger. |
| getty | Opens a tty, prompts for a login name, then invokes /bin/login. |
| grep | Print lines matching a pattern. |
| gunzip | Expand gzip compressed files. |
| gzip | Compress files into gzip format. |
| head | Output the first part of files. |
| hexdump | A filter which displays the specified files, or the standard input, if no files are specified, in a user specified format. |
| hostid | Print out a unique 32-bit identifier for the machine (not yet implemented). |
| hostname | Show or set the system's host name. |
| hwclock | Query and set the hardware clock. |
| id | Print information for username or current user. |
| ide_info | IDE device information. |
| ifconfig | Configure a network interface. |
| ifport | Select the transceiver type for a network interface. |
| ifuser | Checks to see if any of the listed hosts or network addresses are routed through the specified interface. |
| insmod | Loads the specified kernel modules into the kernel. |
| ip | TCP/IP interface configuration and routing utility. |
| iptables, ip6tables | IP packet filter administration. |
| kill | Terminate a program. |
| killall | Kill processes by name. |
| ln | Make links between files. |
| logger | Make entries into the system log. |
| login | Sign on. |
| ls | List directory contents. |
| lsmod | List loaded modules. |
| md5sum | Compute and check MD5 message digest. |
| mkdir | Make directories. |
| mknod | Make block or character special files. |
| mktemp | Make a temporary file name (unique). |
| modprobe | High level handling of loadable modules. |
| more | File perusal filter for crt viewing. |
| mount | Mount a file system. |
| mv | Move (rename) files. |
| net-snmp-config | Net-SNMP tool. |
| nslookup | Queries the nameserver for IP address of given host. |
| ntpclient | Simple NTP client application. |
| obexbrowser | The WRAP obexbrowser. A command line OBEX client interface. |
| obexget | The WRAP OBEX tool for retrieving a file from a remote device with ObjP/FTP support. |
| obexput | The WRAP OBEX tool for sending a file to a remote device with ObjP/FTP support. |
| pack_cis | Convert a text description of a PCMCIA Card Information Structure (CIS) to its packed binary representation. |
| passwd | Update a user's authentication token(s). |
| picocom | Minimal dumb-terminal emulation program. |
| pidof | Find a process ID of a running program. |
| ping, ping6 | Send ICMP ECHO_REQUEST packets to network hosts. |
| ps | Report process status. |
| pwd | Print the name of the current/working directory. |
| rb, rx, rz, sb, sx, sz | Xmodem, Ymodem, Zmodem file receive and send. |
| rdate | Get and possibly set the system date and time from a remote HOST. |
| reboot | Reboot the system. |
| renice | Alter the priority of running processes. |
| reset | Resets the screen. |
| rm | Remove files or directories. |
| rmdir | Remove empty directories. |
| rmmod | Unload loadable modules. |
| route | Show / manipulate the IP routing table. |
| scp | Secure copy (remote file copy program). |
| scsi_info | SCSI device description tool. |
| sed | A Stream EDitor. |
| setup | The WRAP Setup Application. See Section 2.4. |
| sftp | Secure file transfer program. |
| sleep | Delay for a specified amount of time. |
| snmp* | Set of standard SNMP command line applications. |
| sort | Sort lines of text files. |
| ssh, slogin | OpenSSH SSH client (remote login program). |
| ssh-keygen | SSH authentication key generation, management and conversion. |
| strace | Utility to trace system calls and signals. |
| strings | Display printable strings in binary file. |
| stty | Change and print terminal line settings. |
| su | Run a shell with substitute user and group IDs. |
| sulogin | Single-user login. |
| sync | Flush filesystem buffers. |
| tail | Output the last part of files. |
| tar | Tar archiving utility. |
| tcpdump | Utility for dumping traffic on a network. |
| telnet | User interface to the TELNET protocol. |
| test | Check file types and compare values. |
| time | Run command and display it's resource usage information when finished. |
| top | Provides view of processor activity in real time. |
| touch | Change file timestamps. |
| tr | Translate or delete characters. |
| traceroute | Trace the route ip packets follow going to host. |
| true | Do nothing, successfully. |
| tty | Print the filename of the terminal connected to standard input. |
| uartmode | WRAP Uartmode: Change the mode of the user serial port (DTE or DCE). |
| umount | Unmount file systems. |
| uname | Print system information. |
| uniq | Remove duplicate lines from sorted lines. |
| unzip | List, test, and extract compressed files in a ZIP archive. |
| uptime | Tell how long the system has been running. |
| uudecode | Decode a file create by uuencode. |
| uuencode | Encode a binary file. |
| wc | Print the number of bytes, words, and lines in files. |
| vi | A text editor. |
| wget | A utility to retrieve files from the World Wide Web. |
| wrapfinder | Finds other Access Servers in the network. |
| wrapid | The WRAP Access Server identification program. Shows build and hardware configuration information. |
| which | Shows the full path of (shell) commands. |
| whoami | Prints the user name associated with the current effective user id. |
| zcat | Expand gzip compressed files to the standard output. |
| zeroconf | Zero Configuration Networking application. |
| xargs | Build and execute command lines from the standard input. |
The system clock is read from the battery operated real time clock during boot. The time between the system time and the real time clock can synchronized using the hwclock application. Give command hwclock --help for more information.
The default time zone in the WRAP Access Server is UTC. You can change the timezone by replacing the file /etc/localtime with the correct file from your desktop Linux system (using your /etc/localtime or a wanted zone from /usr/share/zoneinfo).
Access Server can be re-installed with the latest software version. The latest software updates and instructions are available at https://www.bluegiga.com/techforum/.
Most of the software updates are delivered as wpk file.
The easiest way to install these is:
Start Access Server.
Copy wpk file or files to an empty USB memory dongle.
Insert the dongle into Access Server
LEDs will turn on, and after 10-60 seconds they will turn off.
Remove the dongle and reboot Access Server.
All done.
See Section 3.5.5 for detailed description for other options and how to create your own wpk files.
The Bluetooth system operates in the license-free 2.4 GHz ISM (Industrial Science Medial) band using frequency hopping spread spectrum (FHSS). In the vast majority of countries around the world this frequency band is 2400 - 2483.5 MHz. Some countries have, however, national limitations on the frequency range. In order to comply with these national limitations, special frequency hopping algorithms have been specified for these countries. It should be noted that products implementing the reduced frequency band will not work with products implementing the full band. Products implementing the reduced frequency band must therefore be considered local versions.
The Bluetooth frequency band is divided into distinct channels with 1 MHz channel spacing. In order to comply with out-of-band regulations in each country, a guard band is used at the lower and upper band edge. The frequency range is 2.400 - 2483.5 MHz, and the corresponding channels are f = 2402 + k MHz; k = 0 - 78. Transmission utilizes channel hopping over the specified range at 1600 kHz hop frequency. When operating in countries that permit the use of only a subset of the overall spectrum, transmission utilizes only the approved portions of the spectrum. The Bluetooth system utilizes Gaussian frequency shift keying (GFSK). The signaling rate is 1 Mbit/s.
The Bluetooth system transceivers are classified into three power classes to support different link ranges.
Power Class 1. Output power is 1 - 100 mW (0 - 20 dBm) with mandatory power control ranging from 4 to 20 dBm.
Power Class 2. Output power is 0.25 - 2.5 mW (-6 - +4 dBm) with optional power control.
Power Class 3. Output power is less than 1 mW (0 dBm) with optional power control.
Bluegiga's WRAP products support a 100 meter link range with Option 1 (Power Class 1).
The radio frequency signal propagates in free space as a spherical wave, from a point source to all directions equally. In reality, the actual signal source always differs from a theoretic isotropic signal source. The power distribution of wireless telecommunication equipment in space is determined by the antenna radiation pattern. In free space the signal propagates with the speed of light and attenuates with 1/r2 relation. In reality, the environment always differs from free space. The propagation environment of wireless telecommunication equipment is restricted by all obstacles.
The basic mechanism of radio propagation is attributed to reflection, diffraction, and scattering depending on existing obstacles. Since the radio frequency signal propagates omnidirectionally, the transmitted signal arrives at the receiver following multiple paths deformed by the aforementioned propagation mechanisms. The received signal is the superposition of attenuated and delayed replicas of the transmitted signal, leading to fading of the transmitted signal and broadening of the duration of the transmitted pulse. The transmitted pulse delay spread leads to inter-symbol interference (ISI) because the subsequent symbols interfere with each other. The ISI leads to a bit error probability (BIT) floor that is independent of the signal to noise ratio (SNR). Depending on the time delay spread of the transmitted pulse or the amount of widening that the transmitted pulse experiences across the radio channel, the multipath interference differs. When the time delay spread of the transmitted signal is very small with respect to the signaling time, the multipath interference essentially leads to the signal fading phenomena of the received signal. When the time delay spread of the transmitted signal is high with respect to the signaling time, the multipath interference leads to the symbol interference phenomena of the received signal as well.
A major difference between indoor and outdoor environments is that the former is considerably more sensitive to changes in the geometry of the environment than the latter. This is because of the differences in distance between obstacles. For example, a door being shut rather than open may have a major impact on an indoor environment whereas a comparable event in an outdoor environment may have a minor impact.
The Bluetooth standard has been designed to operate in noisy radio frequency environments. Transmission utilizes fast frequency hopping and short packages to make the link efficient and robust. Fast hopping and short packages limit the impact of interfering devices on the same frequency band.
This manual describes how to create and use applications using the WRAP Access Server Software Development Environment. The relationships between the applications in the WRAP Access Server Software Platform are shown in Figure 5-1.
Note: The Software Development Environment can be installed only on a PC running the Linux operating system!
The following hardware and software is required to run the WRAP Access Server Development Environment:
PC with
CD-ROM drive
Linux (tested with RedHat Enterprise Linux 3 and above, Fedora Core 2 and above)
Devel libraries (especially zlib-devel and ncurses-devel) must be installed
modutils-2.4.26 or newer must be installed
300MB of available hard disk space
An Ethernet connection to a Local Area Network (also connected to the Access Server board) is highly recommended.
Mount the WRAP Access Server SDK CD-ROM or ISO image, change the current working directory to where it is mounted, and run the install script. If the user running install does not have privileges to create the directory for the toolchain, normally /usr/local/arm, the install scripts prompts for root password.
Example (things you need to type are printed like this):
$ mount /dev/cdrom /mnt/cdrom
$ (or mount -o loop /path/to/sdk2.iso /mnt/cdrom)
$ cd /mnt/cdrom
$ sh install
|
Install will ask you some questions (described below) regarding which components to install and the paths to install them to. If you are not very familiar with Linux, just press enter to these questions (the default values are suitable for most users and systems).
Access Server toolchain directory � (default: /usr/local/arm)
This is the path where you want the WRAP Access Server Software Development tools (arm-linux-gcc, etc.) to be installed.
Note: If you change this value, the WRAP Access Server tools and libc must be recompiled. The recompilation process is very complicated and lengthy, and it may fail, depending on your system. Recompilation is done automatically by the install script, if necessary.
Development directory � (default: [home_of_current_user]/asdk)
This is the path where you want the WRAP Access Server Software Development Environment to be installed.
Development directory owner � (default: [current_user])
(Asked only if run as root) This is the username of the owner of the development directory.
Note: If this is not the username of the developer for whom the Software Development Environment is being installed, the user will not have rights to use the development files and therefore can not develop any WRAP Access Server software.
Install toolchain sources � (default: no - unless the tools directory was changed)
Whether or not the toolchain sources will be installed. These are required only if the WRAP Access Server tools directory was changed from the default target location in step 1.
Install linux headers (default: no - unless libc sources are selected)
Whether or not the Linux header files will be installed. These are required only if the libc sources are being installed (chosen in step 5).
Install example applications � (default: yes)
Whether or not the WRAP Access Server example applications and their sources will be installed.
Compile image after installation � (default: yes)
If set to yes, install will compile the WRAP Access Server filesystem image to test that the installation was successful and that the Development Environment is working correctly.
The fastest way to start developing Access Server applications is to study, change, and recompile the example files in the asdk/examples directory.
To demonstrate the software development features of the Access Server, the WRAP Access Server Software Development Environment comes with several example applications.
The compiled example files are located in WPK packets on the WRAP Access Server SDK tree in the directory asdk/bin/.
The examples can be manually uploaded and installed on the Access Server board by sending them to to the /tmp/obex directory. The wpkgd server automatically installs them. Uploading can be done with Bluetooth, SCP, SFTP or X/Y/Zmodem.
The examples, with their usage and purpose, are described in Table 5-1.
Table 5-1. Examples, Their Usage and Purpose
| Example | Usage | Purpose |
|---|---|---|
| helloworld | /usr/bin/helloworld | The "Hello, world!" application. |
| serial | /usr/bin/serial /dev/ttyAT1 | "Hello, world!" to the serial port. Note: "/dev/ttyAT1" must be free (no WRAP SMS Gatewary or WRAP Bluetooth Serial Port Profile using it). |
| forkserver | SET BLUETOOTH LISTEN 11 /usr/bin/forkserver | Simplest Bluetooth RFCOMM server example, use for example btserver as a client. |
| btserver | /usr/bin/btserver - for server mode (if no forkserver running), /usr/bin/btserver <bdaddr of btserver in server mode or forkserver> 11 for client mode | Advanced iWRAP client example (can run both as RFCOMM server or client). |
| io/ioled | /usr/bin/ioled | I/O: LED/Buzzer example. |
| ledtest | /usr/bin/ledtest | I/O: Another LED example. |
| m2n | echo testmessage | /usr/bin/m2n | Machine 2 Network example. System Logger configuration needed for actual remote connection. Without it, simulates it locally. |
| man2m | /usr/bin/ledserver and browse with Java-enabled browser to http://wrap-ip-adress/man2m/ | Man 2 Machine example. Also demonstrates Java applets. |
| www | Browse to http://wrap-ip-address/example.html | Demonstration of the web server capabilities. |
| makesms | Browse to http://wrap-ip-address/send.html. Note: Assumes WRAP SMS Gateway is up and running (see Section 3.5.3). | Demonstrates WRAP SMS Gateway by sending SMS messages with WRAP SMS Gateway. |
| obexbrowser | Documented in Section 6.10.3. | Demonstrates the usage of the WRAP OBEX libraries implementing Object Push Profile and File Transfer Profile clients. |
To start a new project, you need to create a new subdirectory in your Development Environment's directory (asdk/) and add your application source files and Makefile to that directory.
A project skeleton can be done automatically using WRAP Access Server Project AppWizard. Just give the command make appwiz APP=dir/to/newapp in the Development Environments top level directory (asdk/). A "hello world" example ANSI C project is then created.
To create C++ project, give the command make appwiz APP=dir/to/newcppapp CPP=y.
You can add your directory to the compile queue by inserting it in the file asdk/DIRECTORIES if you want to compile the whole source tree at once from the top level asdk-directory.
You may need to modify the variables in the Makefile for your project. You can see the defaults and their description in the default Makefile created by the AppWizard (asdk/dir/to/newapp/Makefile in our example above).
Makefile variables are:
TOPLEVEL
This should point to the Development Environment source directory, i.e. asdk/.
APPNAME
This is the name of the executable file of the application. In our example, this line should be APPNAME = testapp
APP_DIR
This is the location of the application executable, when installed with the .wpk packet. By default, this is /usr/local/bin
SRC
This variable defines the files to be compiled and linked into APPNAME. In our example, this line could be SRC = testapp.c. Several files are separated with space, like SRC = testapp.c extraobj.c
APP_STRIP
Optional variable. The application symbols are removed by default to reduce application size. For debugging, these are needed, which can be done by APP_STRIP = false.
CFLAGS
Optional extra flags for C compiler. Set CFLAGS = -ggdb if you want to debug application.
CXXFLAGS
Optional extra flags for C++ compiler. Set CXXFLAGS = -ggdb if you want to debug application.
LIBS
Optional additional libraries needed by application. Multihreaded application needs libpthread with LIBS = pthread.
Now you have a new project just waiting for coding. To compile the project, you simply need to run make in the testapp directory.
The build system also creates the installation packet (testapp-timestamp.wpk), which can be transferred to /tmp/obex directory of the Access Server from where it is installed automatically.
The WRAP Access Server Development Environment uses the ARM port of the GNU bintools and compilers to build applications. If you are not very familiar with Linux development, you should use the method explained in the previous section instead of writing your own makefiles.
If you still want to use your very own development environment, there are two minor issues to remember:
Tools are prefixed with arm-linux-, so for calling gcc C-compiler you need to call arm-linux-gcc, etc.
Tools are located in /usr/local/arm/2.95.3/bin/ directory, which is not in PATH by default.
To run an application on the Access Server, it must first be transferred into it. There are several ways of doing this (see Section 2.3.3). The most usable ways while doing software development are discussed in the following subsections.
An SCP transfer is done with a single command. In the following example myapp is transferred to the directory /tmp in the Access Server:
$ scp myapp root@<wrap-ip-address>:/tmp
root@<wrap-ip-address>'s password: buffy (not echoed back)
/path/to/myapp/myapp 100% 20KB 20.0KB/s 00:00
$
|
An SFTP transfer is almost similar, but the command procedure is a bit closer to an FTP session (FTP can also be used if the FTP server is enabled):
$ sftp root@<wrap-ip-address>
Connecting to <wrap-ip-address>...
root@<wrap-ip-address>'s password: buffy (not echoed back)
sftp> cd /tmp
sftp> put myapp
Uploading myapp to /dev/shm/tmp/myapp
/path/to/myapp/myapp 100% 20KB 20.0KB/s 00:00
sftp> quit
$
|
With SSHFS, the filesystem of the WRAP Access Server can be securely mounted to be a part of the development host's filesystem.
To download and install SSHFS, visit http://fuse.sourceforge.net/sshfs.html. After that you can mount the whole filesystem and copy the myapp application to /tmp directory in the Access Server with the following commands:
$ mkdir mnt
$ sshfs root@<wrap-ip-address>: mnt
root@<wrap-ip-address>'s password: buffy (not echoed back)
$ cp myapp mnt/tmp
$ fusermount -u mnt
$
|
If your Access Server is not connected to a LAN, you may use terminal software of your own choice to transfer data to the Access Server.
The Access Server contains an X/Y/Zmodem protocol application, which allows you to transfer data over the console using almost any terminal software available:
Connect your computer to the Access Server management UART using a cross-over serial cable, and start your terminal software (115 200bps, 8 data bits, no parity, 1 stop bit).
Change your working directory to where you want to upload your application, and run the xmodem application with your application name as parameter.
Start Xmodem send from your terminal software.
Example 5-1. Transfering Files with Xmodem
[root@wrap /] cd /tmp
[root@wrap /tmp] rx testapp
rx: ready to receive testapp.
now start xmodem (checksum, not CRC) send from your terminal
[root@wrap /tmp]
|
If you want to save the application to /usr/local/bin (on the flash file system), you will have to replace cd /tmp with cd /usr/local/bin. To examine the directory structure of the Access Server, please see Appendix A.
To run the application you just transferred to the Access Server, you need access to the Access Server console, either using terminal software connected to the Access Server management UART or using the SSH connection (log in as user root and remember the password, which is buffy by default).
After establishing a connection to the Access Server, change the directory to where your application is located and change file permissions so that it can be executed, then run it.
It is possible to use GNU debugger GDB and a graphical user interface, like DDD, for debugging applications in the WRAP Access Server.
You have to compile with debug options and without symbol stripping to make debugging work. As mentioned above, this can be done by adding lines "APP_STRIP=false" and "CFLAGS=-ggdb" to the Makefile below SRC line.
After you have compiled your application with these options and transferred your application to Access Server, you can start debugging the application as follows:
Start gdbserver on the WRAP Access Server
Usage: gdbserver :<port> <your application>
Example: gdbserver :6789 ./hello
Start debugger on the host PC. (example is for DDD)
Example: ddd --debugger /usr/local/arm/2.95.3/bin/arm-linux-gdb hello
Create connection to the WRAP Access Server.
Usage: target remote <node IP>:<port>
Example: target remote 192.168.42.3:6789
Run the program with command continue.
The Bluetooth in the Access Server is controlled via the TCP socket interface called iWRAP. The first iWRAP server is listening on port 10101. In case of Access Server 2293, the second iWRAP server is listening on port 10102 and the third one is listening on port 10103. All commands to a iWRAP server and replies from the server are plain ASCII strings ending in CR+LF ("\r\n"). Commands and replies are not case sensitive.
When connecting to a server you must first wait for the READY. prompt. Do not send any commands prior to this. Some replies are broadcast to all clients of the server. If you see something that you have not requested or that is not intended for your client (identified by the link identifier), simply ignore the reply.
Normally, the iWRAP is protected with a password buffy. The password can be disabled or changed, see the SET command. If the password is enabled, it must be sent first, immediately following the READY. prompt, to the iWRAP server. Otherwise, all commands will fail.
For an example of using the iWRAP, please see asdk/examples/btsend in the SDK directory.
In the following examples, bold lines are commands sent by the client to the iWRAP server and normal lines are replies received from the iWRAP server by the client.
Bluetooth address (bdaddr) is six hex digits separated by a colon. For example, "00:07:80:80:bf:01". With commands requiring Bluetooth address, you can also use Bluetooth friendly name instead.
Bluetooth channels are numbered from 1 to 30. In Access Server, the Serial Port Profile is assigned to channel number two, the Object Push Profile and File Transfer Profile to channel number three and the LAN Access Profile is on channel number four. The other channels are free for user applications.
Link Identifier (link_id) is a number from 0 to 99 used to identify established Bluetooth connections.
Normally, the iWRAP servers are started automatically upon power-up. You can restart the servers manually (for example, to apply the changes made to the iWRAP settings with setup application without rebooting the system). To restart the servers manually, execute the startup script with option restart:
[root@wrap /] /etc/init.d/bluetooth restart |
When the iWRAP servers start up, it uses the settings configured with the setup application. You can put your extra iWRAP commands in the /etc/bluetooth.conf file. The commands in that file are processed as the last task every time iWRAP server is started.
There are two approaches when writing a iWRAP server program (a program accepting incoming calls) for the Access Server, both having different pros and cons:
Forklistener
iWRAP Client
When writing a client program (a program making an outgoing call), you have to use iWRAP.
This is a standard program reading data from standard input and writing output to standard output. See SDK's directory examples/forkserver/ for an example of this kind of program.
Pros:
Easy to write.
Very robust for simple services.
You don't have to know anything about Bluetooth or iWRAP.
Cons:
Your program is started and stopped for every incoming connection.
If there are multiple connections it is not possible to communicate to external program via one socket.
You can't use stdout for debugging, you have to use syslog or a log file.
iWRAP's advanced features are not available: powermodes, MSC, SDP, inquiry, ...
To setup a forklistener see SET command.
iWRAP client is a program communicating with the iWRAP server via control and data sockets. See SDK's directory examples/btserver/ for an example of this kind of program.
Pros:
The cons with forklistener do not apply.
Cons:
More complex than forklistener.
You must have basic knowledge about Bluetooth and iWRAP.
For documentation about iWRAP read this chapter carefully.
INFO is used to retrieve version info of the iWRAP server, in the same format as the READY. prompt when the iWRAP connection is opened.
The SET command allows you to alter various Bluetooth and iWRAP parameters. The supported variables are listed in Table 6-1. Issuing a SET command without parameters will list current settings.
Table 6-1. Supported Parameters for iWRAP SET Command
| Variable | Description |
|---|---|
| BLUETOOTH BDADDR bdaddr | Our bdaddr. This is a read-only value. |
| BLUETOOTH NAME friendly_name | Set your friendly name. Others can request this name with the NAME command. There are following meta characters you can use: $S: Hardware serial number, all ten digits $s: Hardware serial number, last three digits $P: Server port $p: Server port, last digit $H: FQDN $h: hostname $$: $ The default value is $S_$p. |
| BLUETOOTH READABLE mode | If enabled, some SDP result codes will have literal values instead of numeric values. 0: No (always use numeric values) 1: Yes (literal values) |
| BLUETOOTH CLASS value | Set class-of-device value. |
| BLUETOOTH LAP value | Set IAC LAP value. Default: 9e8b33 |
| BLUETOOTH ROLE role {policy {timeout}} | Set master/slave role switch preference, optionally also link policy and link supervision timeout. Possible values for "role" are: 0: allow calling, don't request when answering 1: allow calling, request when answering 2: don't allow calling, request when answering The default link policy is 000f and the default link supervision timeout is 7d00. See Bluetooth Specification for more information on these. |
| BLUETOOTH ENCRYPT value | Whether or not to use Bluetooth encryption. To actually have Bluetooth encryption enabled, the connection has to be authenticated. 0: No 1: Yes |
| BLUETOOTH LAP value | Set IAC LAP value. Default: 9e8b33 |
| BLUETOOTH PAGEMODE mode {page_timeout {page_repetition_mode {scan_activity_interval scan_activity_window {inquiry_activity_interval inquiry_activity_window}}}} | Pagemode controls whether or not other devices can find and call you. There are four different modes: 0: No inquiry, no paging 1: Inquiry, no paging 2: No inquiry, paging 3: Inquiry and paging Page timeout is in hex and the default value is 2000. Default page repetition mode is 2 (R2). Default scan activity is interval 0800 and window 0012 (R1). Default inquiry activity is interval 0800 and window 0012 (R1). See Bluetooth Specification for more information on these. |
| BLUETOOTH AUTOHIDE physical logical | Automatically hide baseband (set pagemode to 0) if there are more than physical ACL links or logical connections. Value 0 means "don't care". Default values: 7 0 |
| BLUETOOTH AUTH * {authflags} | Remove default PIN code. If you are making an outgoing connection and the remote asks for PIN, "1234" will be sent. |
| BLUETOOTH AUTH * pin {authflags} | Set default PIN code. |
| BLUETOOTH AUTH bdaddr {authflags} | Remove PIN code for bdaddr. |
| BLUETOOTH AUTH bdaddr pin {authflags} |
Set PIN code for bdaddr. Authflags are: --NEWPAIR Only if we do not have linkkey yet --REQUEST Request this pin from remote, do not reply with this one --REPLY Reply with this pin to remote requests --CALL Only if making outgoing call --ANSWER Only when answering to incoming call --RFCOMM Call type is RFCOMM (includes FORK/PPP/...) --BNEP Call type is BNEP --L2CAP Call type is L2CAP Default authflags are all but --NEWPAIR enabled. There are three special pins: - Reject without asking pin. -- Reject on the connection open, do not check for call types. + Accept without asking pin. |
| BLUETOOTH PAIR bdaddr linkkey | Manually set linkkey for bdaddr. Note: SET BLUETOOTH AUTH must also be set for some value to enable encrypted connections with previously stored link keys. |
| BLUETOOTH PAIR bdaddr | Manually delete linkkey for bdaddr. |
| BLUETOOTH PAIREXPIRE seconds | Set expiration time, in seconds, for pairing information. |
| BLUETOOTH LISTEN channel cmd {mem {delay}} | Add fork-listener for the channel. When there is an incoming RFCOMM connection to the channel iWRAP server will handle the connection by itself by forking "cmd". At least "mem" kilobytes of free memory must be available, or the connection will be rejected. After forking iWRAP server will wait "delay" timerticks (50ms) before transmitting any data. The client application should modify both the stdout and stdin pipes and set NOECHO, 8BIT and all other necessary modes in the very beginning. The purpose of the "delay" parameter is to give the application enough time to do this. |
| BLUETOOTH LISTEN channel host:port | Add forward-listener for the channel. When there is an incoming RFCOMM connection to the channel iWRAP server will forward it to host:port using raw TCP/IP socket. |
| BLUETOOTH LISTEN psm L2CAP | Add L2CAP-listener for the psm. |
| BLUETOOTH LISTEN channel | Remove fork/forward/L2CAP-listener for the channel/psm. |
| BLUETOOTH LINK mode params | Modify slaves powermode according to "mode". "params" are optional and mode-dependent. Possible values for "mode" are 0, 1, 2, 3, 4: 0: Active. Params: None. 1: Park: Round-robin. Params: max_beacon min_beacon sleep_after_unpark sleep_after_round Defaults: 254 160 5 30 Sleeps are specified by timerticks (50ms). 2: Park: Idle. Params: max_beacon min_beacon max_active Defaults: 512 384 6 max_active is the maximum number of active slaves. 3: Sniff: All. Params: max_interval min_interval attempt timeout Defaults: 640 426 1 8 4: Sniff: Idle. Params: idle_timeout max_interval min_interval attempt timeout Defaults: 400 640 426 1 32 idle_timeout is in timerticks (50ms). See Bluetooth Specification for more information on params. |
| BLUETOOTH QOS service_type token_rate peak_bandwidth latency delay_variation | Set default QoS values for new connection. Parameters are in hex. See Bluetooth Specification for more information on params. Defaults: 01 00000000 00000000 000061a8 ffffffff |
| L2CAP TIMEOUT flushto linkto | Define FlushTimeout and LinkTimeout for L2CAP connections. See Bluetooth Specification for more information on params. Defaults: 65535 40000 |
| PPP AUTH | Don't require any PPP authentication on incoming connections. |
| PPP AUTH username password | Require specified username:password on incoming PPP connections. |
| PPP CHANNEL channel | Our PPP (LAN Access Profile) channel. This channel will be handled internally by the iWRAP server. If you change this, remember to modify the SDP record as well. Use zero value to disable the LAN Access Profile. |
| PPP DEFAULTROUTE value | This setting controls whether or not the iWRAP server should modify the defaultroute setting. There are four different modes: 0: Don't alter defaultroute 1: Set defaultroute according to outgoing PPP 2: Set defaultroute according to incoming PPP 3: Set defaultroute according to all PPP calls |
| PPP WINHANDSHAKE seconds | Timeout to wait for the Windows RAS handshake. |
| PPP IP ipaddr/mask | Set network IP range for PPP clients. |
| PAN ENABLE bitmap |
Controls incoming PAN connections. Bitmap: 1: Allow incoming PAN-PANU connection. 2: Allow incoming PAN-GN connection. 4: Allow incoming PAN-NAP connection. 8: Enable zeroconf for incoming PAN-PANU connections. 16: Enable zeroconf for outgoing PAN-PANU connections. For most cases value "6" (the default) is recommended. |
| CONTROL AUTOEXEC cmd | Run CALL command, and rerun it when call is disconnected. Example: SET CONTROL AUTOEXEC CALL bdaddr PAN-NAP PAN-NAP |
| CONTROL PASSWORD | Don't require password from iWRAP clients |
| CONTROL PASSWORD pass {--LOCAL} | Enable password. iWRAP clients must send this password before giving any other command. The password is case sensitive. With optional --LOCAL parameter clients coming from localhost are accepted without password. |
| CONTROL PING seconds | If enabled (seconds > 0), the iWRAP server will send a PING reply to all iWRAP clients. You have to reply to it with PONG or the connection will be closed. |
| CONTROL AUTOSAVE what filename | Automatically save settings to file when they change. See SAVE command for possible what-values. |
| link_id MSC value | Set MSC for link_id to value. See ETSI TS 101 369 (GSM 07.10) for more information. |
| link_id ACTIVE | Set powermode for link_id to active. |
| link_id PARK params | Set powermode for link_id park. Required "params" are: avg_beacon or max_beacon min_beacon See Bluetooth Specification for more information on params. |
| link_id HOLD params | Set link's powermode to hold. Required "params" are: avg max min See Bluetooth Specification for more information on params. |
| link_id SNIFF params | Set powermode for link_id to sniff. Required "params" are: avg_interval or max_interval min_interval or max_interval min_interval attempt or max_interval min_interval attempt timeout Default attempt is 1, default timeout is 8. See Bluetooth Specification for more information on params. |
| link_id QOS service_type token_rate peak_bandwidth latency delay_variation | Set link's QoS values. Parameters are in hex. See Bluetooth Specification for more information on params. |
| link_id MASTER | Switch role to master. |
| link_id SLAVE | Switch role to slave. |
READY.
SET BLUETOOTH NAME Buffy
SET BLUETOOTH PAGEMODE 3
SET BLUETOOTH READABLE 1
SET BLUETOOTH CLASS 020300
SET BLUETOOTH ROLE 0
SET BLUETOOTH ENCRYPT 0
SET BLUETOOTH PAGEMODE 3
SET BLUETOOTH AUTH * 1234
SET BLUETOOTH AUTH 00:07:80:80:bf:01 4242
SET BLUETOOTH AUTH *
SET BLUETOOTH PAIREXPIRE 600
SET BLUETOOTH LISTEN 1 /bin/login 200
SET BLUETOOTH LISTEN 2 "my/own/command with parameters" 100 5
SET BLUETOOTH LISTEN 3
SET PPP DEFAULTROUTE 0
SET PPP AUTH buffy willow
SET PPP AUTH
SET PPP CHANNEL 4
SET PPP WINHANDSHAKE 10
SET PPP IP 192.168.166.0/24
SET 0 MSC 8d
SET CONTROL PING 60
PING
PONG
SET CONTROL PASSWORD
SET CONTROL PASSWORD buffy
<client reconnects>
READY.
SET
ERROR PASSWORD NEEDED.
<client reconnects>
READY.
buffy
SET
SET BLUETOOTH BDADDR 00:07:80:80:bf:01
SET BLUETOOTH NAME Buffy
SET PPP AUTH
SET CONTROL PASSWORD buffy
SET
|
LOAD command runs commands from a file. This is usually used with SAVE or SET CONTROL AUTOSAVE commands.
The PING command can be used to check that the connection to the iWRAP server is alive.
PING can also be sent by iWRAP to the client application. In that case you have to reply with PONG command.
The PONG command has to be sent back if you see a PING reply from the server. If you do not answer, the connection will be closed after a few seconds.
This command will broadcast it's paramerers to all iWRAP connections, including the one who sent the command.
This command will lock all other iWRAP connections, allowing commands only from this one. This includes all the PINGs and PONGs too, so be polite and do not lock it for a long time.
To close the iWRAP server you can use the SHUTDOWN command. This also immediately closes all active connections.
INQUIRY is used to search for other Bluetooth devices. Timeout is in units of 1.25 seconds. If an optional NAME parameter is provided, the NAME command will be sent automatically to all found devices. LAP specifies used IAC LAP, the default is 9e8b33 (GIAC).
During the inquiry, all devices are listed as soon as they are found with INQUIRY_PARTIAL replies. If the friendly name of the device found has been cached by the iWRAP server, it is also displayed. When the inquiry times out, a summary is displayed (how many devices were found and their information repeated).
INQUIRY_PARTIAL bdaddr_of_dev_1 class_of_dev_1 "friendly name" rssi
INQUIRY_PARTIAL bdaddr_of_dev_2 class_of_dev_2 "friendly name" rssi
...
INQUIRY_PARTIAL bdaddr_of_dev_n class_of_dev_n "friendly name" rssi
INQUIRY number_of_devices_found
INQUIRY bdaddr_of_dev_1 class_of_dev_1 "friendly name"
INQUIRY bdaddr_of_dev_2 class_of_dev_2 "friendly name"
...
INQUIRY bdaddr_of_dev_n class_of_dev_n "friendly name"
|
READY.
INQUIRY 10
INQUIRY 0
INQUIRY 10
INQUIRY_PARTIAL 00:07:80:80:bf:01 120300 "willow" 255
INQUIRY_PARTIAL 00:07:80:80:bf:02 520204 "" 255
INQUIRY 2
INQUIRY 00:07:80:80:bf:01 120300 "willow"
INQUIRY 00:07:80:80:bf:02 520204 ""
INQUIRY 10 NAME
INQUIRY_PARTIAL 00:07:80:80:bf:01 120300 "" 255
INQUIRY_PARTIAL 00:07:80:80:bf:02 520204 "buffy" 255
INQUIRY 2
INQUIRY 00:07:80:80:bf:01 120300 ""
INQUIRY 00:07:80:80:bf:02 520204 "buffy"
NAME 00:07:80:80:bf:01 "willow"
NAME 00:07:80:80:bf:02 "buffy"
|
CALL {bdaddr} SDP
CALL {bdaddr} {psm} L2CAP
CALL {bdaddr} {channel} RFCOMM
CALL {bdaddr} {uuid} RFCOMM
CALL {bdaddr} {channel} PPP [username password]
CALL {bdaddr} {uuid} PPP [username password]
CALL {bdaddr} {channel} WINPPP [username password]
CALL {bdaddr} {uuid} WINPPP [username password]
CALL {bdaddr} {channel} FORK {"/full/path/to/command and parameters"}
CALL {bdaddr} {uuid} FORK {"/full/path/to/command and parameters"}
CALL {bdaddr} {channel} FORK {host:port}
CALL {bdaddr} {uuid} FORK {host:port}
CALL {bdaddr} {PAN-destUUID} [PAN-destUUID]
The CALL command is used to make a connection to other Bluetooth devices. It returns the link identifier (with an immediate reply), which will be used in subsequent commands and replies.
Always make sure you check for a correct link_id before processing replies further.
You can use the special FORK call type to create an RFCOMM connection and automatically launch an application which gets the RFCOMM connection bound to its standard input and output. The client application should modify both the stdout and stdin pipes and set NOECHO, 8BIT and all other necessary modes in the very beginning.
Note: There can be only one pending CALL at any time. You have to wait for RINGING before issuing another CALL. The RINGING event comes almost immediately after CALL - you get ERROR 008 if you try to do second call too quickly. In that case, wait some tens of milliseconds and retry. Receiving CONNECT or NO CARRIER may take some time, for example when the user is keying the PIN code.
Note: PPP is "raw" PPP without any special handshaking. WINPPP is a Windows RAS handshake followed by raw PPP. If you are unsure, use WINPPP.
READY.
CALL 00:07:80:80:bf:01 SDP
CALL 0
RINGING 0
CONNECT 0 SDP
CALL 00:07:80:80:bf:01 4 PPP
CALL 1
RINGING 1
CONNECT 1 PPP
CALL NameOfOtherDevice LAN PPP
CALL 1
RINGING 1
CONNECT 1 PPP
CALL 00:07:80:80:bf:02 4 WINPPP buffy willow
CALL 2
RINGING 2
CONNECT 2 PPP
CALL 00:07:80:80:bf:01 1 RFCOMM
CALL 3
RINGING 3
CONNECT 3 RFCOMM 1042
CALL 00:07:80:80:bf:01 2 FORK /bin/login
CALL 4
RINGING 4
CONNECT 4 FORK
CALL 00:07:80:80:bf:01 PAN-NAP
CALL 5
RINGING 5
CONNECT 5 PAN-NAP
CALL 00:07:80:80:bf:02 PAN-NAP PAN-NAP
CALL 6
RINGING 6
CONNECT 6 PAN-NAP
CALL 00:07:80:80:bf:02 2 FORK 127.0.0.1:23
CALL 7
RINGING 7
CONNECT 7 FORK
|
CONNECT is not a command, but rather a reply broadcast to you when CALL successfully makes the connection. Remember to check that the link_id matches your CALL!
On RFCOMM/L2CAP connections, there is an additional parameter called port. It is the TCP socket port number, which is used to send and receive data to and from the remote device. Connect to the port just like you connected to the iWRAP server. The connection is "raw", which means that no processing of incoming or outgoing data is made.
Note: In case of L2CAP connections, the data is handled as packets. Therefore both the incoming and outgoing data must follow the format "HDR+L2CAPDATA", where HDR is two bytes; first the low byte and then the high byte of the length of the L2CAPDATA packet and L2CAPDATA contains the actual L2CAP-packet.
CONNECT link_id SDP
CONNECT link_id RFCOMM port
CONNECT link_id L2CAP port
CONNECT link_id PPP
CONNECT link_id FORK
CONNECT link_id PAN-PANU
CONNECT link_id PAN-GN
CONNECT link_id PAN-NAP
|
READY.
CALL 00:07:80:80:bf:01 SDP
CALL 0
RINGING 0
CONNECT 0 SDP
CALL 00:07:80:80:bf:01 LAN PPP
CALL 1
RINGING 1
CONNECT 1 PPP
CALL 00:07:80:80:bf:01 1 RFCOMM
CALL 2
RINGING 2
CONNECT 2 RFCOMM 1042
<Client can open socket connection to port 1042>
CALL 00:07:80:80:bf:01 2 FORK /bin/login
CALL 3
RINGING 3
CONNECT 3 FORK
CALL 00:07:80:80:bf:01 PAN-NAP
CALL 5
RINGING 5
CONNECT 5 PAN-NAP
CALL 00:07:80:80:bf:02 PAN-NAP PAN-NAP
CALL 6
RINGING 6
CONNECT 6 PAN-NAP
|
NO CARRIER reply indicates that you or the remote device closed the active connection, or that your CALL failed for some reason.
See Section 6.9 for the list of reason codes. Field "more_info" is optional. If present it gives you a human readable error code or some statistics about the closed connection.
READY.
CALL 00:07:80:80:bf:01 4 PPP
CALL 0
RINGING 0
NO CARRIER 0 ERROR 104 HCI_ERR_PAGE_TIMEOUT
CALL 00:07:80:80:bf:01 1 RFCOMM
CALL 1
RINGING 0
CONNECT 1 RFCOMM 1042
NO CARRIER 1 ERROR 000 IN=42,OUT=66,ELAPSED=69
|
The RING reply indicates an incoming call from a remote device. As with CONNECT, on RFCOMM/L2CAP calls there is an additional port parameter. Open a socket to it if you want to serve this call. PPP and PAN calls are handled internally so you don't have to do anything on them. The iWRAP server closes the connection if nobody grabs the call within 30 seconds. Special type REJECTED is used for information only: Somebody tried to call you but was rejected, usually because of failing authentication.
RING link_id bdaddr channel PPP
RING link_id bdaddr channel RFCOMM port
RING link_id bdaddr psm L2CAP port
RING link_id bdaddr PAN-PANU
RING link_id bdaddr PAN-GN
RING link_id bdaddr PAN-NAP
RING link_id bdaddr REJECTED
|
READY.
RING 0 00:07:80:80:bf:01 4 PPP
RING 1 00:07:80:80:bf:01 1 RFCOMM 1042
<Client can open socket connection to port 1042>
RING 2 00:07:80:80:bf:01 PAN-GN
|
The RINGING reply indicates that previously initiated outgoing CALL is in the state where a new outgoing CALL can be made.
READY.
CALL 1 00:07:80:80:bf:01 1 RFCOMM
<Making new CALL is not allowed but generates BUSY error>
CALL 1
<Making new CALL is not allowed but generates BUSY error>
RINGING 1
<Making new CALL is allowed>
CALL 2 00:07:80:80:bf:02 2 RFCOMM
<Making new CALL is not allowed but generates BUSY error>
CALL 2
<Making new CALL is not allowed but generates BUSY error>
RINGING 2
<Making new CALL is allowed>
CONNECT 1 RFCOMM 1042
<Client can open socket connection to port 1042>
CONNECT 2 RFCOMM 1043
<Client can open socket connection to port 1043>
|
The CLOSE command closes an active connection started with CONNECT or RING. Note that closing the RFCOMM data socket connection also closes the Bluetooth connection.
READY.
CALL 00:07:80:80:bf:01 4 PPP
CALL 1
RINGING 1
CONNECT 1 PPP
CLOSE 1
NO CARRIER 1 ERROR 000
|
LIST number_of_connections
LIST link_id status type blocksize bytes_in bytes_out elapsed_time our_msc
remote_msc bdaddr channel direction powermode role crypt child_pid hcihandle
LIST link_id status type blocksize bytes_in bytes_out elapsed_time our_msc
remote_msc bdaddr channel direction powermode role crypt child_pid hcihandle
...
LIST link_id status type blocksize bytes_in bytes_out elapsed_time our_msc
remote_mscbdaddr channel direction powermode role crypt child_pid hcihandle
|
READY.
LIST
LIST 1
LIST 0 CONNECTED RFCOMM 666 4242 100 30 8d 8d 00:07:80:80:bf:01 4
OUTGOING ACTIVE MASTER PLAIN 0 2a
|
Status values are: WAITING (iWRAP server is waiting someone to connect to the datasocket created with RFCOMM CONNECT or RING event), CONNECTED (data connection is up and running), and CLOSING (datasocket has been closed, Bluetooth connection shutdown in progress).
Type is SDP, RFCOMM, PPP, PAN-PANU, PAN-GN, PAN-NAP, FORK or L2CAP.
Blocksize is the maximum transfer unit of the Bluetooth link, only for statistics.
Bytes_in and bytes_out are numbers of bytes transferred.
Elapsed_time is the number of seconds the connection has been up.
Msc is the link's MSC value for both ends.
Bdaddr is the Bluetooth address of the connected device.
Channel is the service channel of the connection.
Direction is either OUTGOING or INCOMING.
Powermode is ACTIVE, SNIFF, PARK or HOLD.
Role is MASTER or SLAVE.
Crypt is PLAIN or ENCRYPTED.
Child_pid is the PID of the child process for types PPP and FORK, zero for others.
Hcihandle is the HCI handle for this connection.
The STATUS reply is used to inform you about changes in connection status. See also the SET command.
This section describes the commands used for Bluetooth service discovery and local SDP record manipulation. The commands and their replies make use of SDP UUID and attribute values, which are listed in the Bluetooth Assigned Numbers documentation. In the commands documented below, the most useful UUID and attribute values can, however, be replaced with keywords listed in Table 6-3. The same keywords are used in the command replies instead of numeric values, if the parameter SET BLUETOOTH READABLE is set to 1.
Table 6-3. Supported Keywords for Replacing SDP UUIDs or Attributes
| Keyword(s) | Value | Hex Value |
|---|---|---|
| SDP | UUID_SDP | 0001 |
| RFCOMM | UUID_RFCOMM | 0003 |
| OBEX | UUID_OBEX | 0008 |
| BNEP | UUID_BNEP | 000F |
| L2CAP | UUID_L2CAP | 0100 |
| PUBLICBROWSEGROUP, BROWSE, ROOT | UUID_PUBLIC_BROWSE_GROUP | 1002 |
| SERIALPORT, SPP | UUID_SERIALPORT | 1101 |
| LANACCESS, LAN | UUID_LANACCESS | 1102 |
| DIALUPNETWORKING, DUN | UUID_DIALUPNETWORKING | 1103 |
| OBEXOBJECTPUSH, OBJP, OPP | UUID_OBEXOBJECTPUSH | 1105 |
| OBEXFILETRANSFER, FTP | UUID_OBEXFILETRANSFER | 1106 |
| PAN-PANU, PANU | UUID_PANU | 1115 |
| PAN-NAP, NAP | UUID_NAP | 1116 |
| PAN-GN, GN | UUID_GN | 1117 |
| PROTOCOLDESCRIPTORLIST, DESCLIST, DESC | ATTR_PROTOCOLDESCRIPTORLIST | 0004 |
| SERVICENAME, NAME | ATTR_SERVICENAME + BASE_LANG_OFFSET | 0000 + 0100 |
| SECURITYDESCRIPTION | ATTR_SECURITYDESCRIPTION | 030A |
| NETACCESSTYPE | ATTR_ NETACCESSTYPE | 030B |
| MAXNETACCESSRATE | ATTR_ MAXNETACCESSRATE | 030C |
The SDPSEARCH command is used to send a Service Search Request to a connected SDP server, identified with link_id. The command only supports searching for one UUID at a time (specified with the uuid parameter, 4 hex digits, or with a keyword), but several requests can be sent during the same SDP connection. However, you must wait for the reply to the previous reply before issuing new SDPSEARCH command.
SDPSEARCH link_id number_of_handles
SDPSEARCH link_id handle_1
SDPSEARCH link_id handle_2
...
SDPSEARCH link_id handle_n
|
READY.
CALL 00:07:80:80:bf:01 SDP
CALL 0
RINGING 0
CONNECT 0 SDP
SDPSEARCH 0 LANACCESS
SDPSEARCH 0 1
SDPSEARCH 0 00010000
CLOSE 0
NO CARRIER 0 ERROR 000
|
The SDPATTR command is used to send a Service Attribute Request to a connected SDP server, identified with link_id. The command supports requesting for one attribute value (specified with the attribute parameter, 4 hex digits, or a keyword) in one (previously retrieved) service entry (specified with the handle parameter, 8 hex digits), but several requests can be sent during the same SDP connection. However, you must wait for the reply to the previous reply before issuing new SDPATTR command.
The reply contains the response from the SDP server in encoded form. The code characters are described in Table 6-1.
Table 6-1. SDP Response Formatting Characters
| Char | Description |
|---|---|
| I | Unsigned integer (2, 4, or 8 hexadecimal digits) follows. Often handle, attribute, or attribute value. Attribute values are shown as text if BLUETOOTH READABLE is set to 1. |
| I | Signed integer byte (2 hexadecimal digits) follows. |
| U | UUID (4 or 8 hexadecimal digits) follows. Shown as text if BLUETOOTH READABLE is set to 1. |
| S | String follows. |
| B | Boolean follows. |
| < | Start of sequence. |
| > | End of sequence. |
| A | Alternative follows. |
| R | Universal Resource Locator follows. |
READY.
CALL 00:07:80:80:bf:01 SDP
CALL 0
CONNECT 0 SDP
SDPSEARCH 0 LAN
SDPSEARCH 0 1
SDPSEARCH 0 00010000
SDPATTR 0 00010000 DESCLIST
SDPATTR 0 < I 0004 < < U 0100 > < U 0003 I 04 > > >
CLOSE 0
NO CARRIER 0 ERROR 000
|
The SDPQUERY command is used to send a Service Search Attribute Request to a connected SDP server, identified with link_id. The command supports requesting for one attribute value (specified with the attribute parameter, 4 hex digits, or a keyword) in all service entries containing one UUID (specified with the uuid parameter, 4 hex digits, or a keyword), but several requests can be sent during the same SDP connection. However, you must wait for the reply to the previous reply before issuing new SDPQUERY command.
READY.
CALL 00:07:80:80:bf:01 SDP
CALL 0
RINGING 0
CONNECT 0 SDP
SDPQUERY 0 LAN DESCLIST
SDPQUERY 0 < < I 0004 < < U 0100 > < U 0003 I 04 > > > >
SDPQUERY 0 1102 0100
SDPQUERY 0 < < I 0100 S "Lan Access using PPP" > >
CLOSE 0
NO CARRIER 0 ERROR 000
|
The SDP bddaddr command is the most useful command for retrieving SDP information from the remote device. The command opens the SDP connection, does the SDP query, closes the connection and replies to the client in encrypted form. The format is described with SDPATTR command.
SDP bdaddr 0 ERROR reason
SDP bdaddr number_of_entries
SDP bdaddr info
SDP bdaddr info
...
SDP bdaddr info
|
READY.
SDP 00:07:80:80:bf:01 SERIALPORT
SDP 00:07:80:80:bf:01 1
SDP 00:07:80:80:bf:01 < I SERVICENAME S "Serial Port" >
< I PROTOCOLDESCRIPTORLIST < < U 0100 > < U RFCOMM I 0b > > >
|
READY.
SDP ADD LANACCESS 4 "Lan access"
SDP 65536
SDP ADD SERIALPORT 10 "Serial port"
SDP 65537
SDP ADD PAN-NAP 0 "PAN Network Access Point"
SDP 65538
SDP ADD L2CAP:1201 4099 "Private L2CAP for networking"
SDP 65539
|
Outgoing RFCOMM Call:
READY.
CALL 00:07:80:80:bf:01 1 RFCOMM
CALL 2
RINGING 2
CONNECT 2 RFCOMM 1042
STATUS 2 MSC 8d
<Client opens socket connection to port 1042 and transfers data>
CLOSE 2
NO CARRIER 2 ERROR 000
|
Incoming RFCOMM Call:
READY.
RING 2 00:07:80:80:bf:01 1 RFCOMM 1042
STATUS 2 MSC 8d
<Client opens socket connection to port 1042 and transfers data>
NO CARRIER 2 ERROR 000
|
Some commands may reply with an error code. The human-readable name of the error is displayed as well, if the SET BLUETOOTH READABLE setting has a value of 1. Error code 8 indicates that the iWRAP server is busy executing any number of commands; there can be several client applications using the stack. Just wait a few seconds and try again. Other error codes indicate unexpected, but often only temporary, communication problems.
You can analyze the error from the numeric code. Values bigger than or equal to 900 are iWRAP errors, described in Table 6-5.
Table 6-5. iWRAP Errors
| Code | Textual Form | Reason |
|---|---|---|
| 900 | SERVICE_NOT_FOUND | Tried to CALL a device whose SDP records doesn't include requested service. |
| 901 | ALREADY_CONNECTED | Tried to CALL a device and a service channel that is already connected. |
| 902 | OUT_OF_HANDLES | Tried to CALL but there are too many open connections. |
| 903 | INVALID_ADDRESS_<addr> | Tried to CALL a device with a friendly name that couldn't be found with inquiry. |
| 904 | REJECTED | Incoming call was rejected by the iWRAP server. |
| 905 | BUSY | Tried to issue SDPATTR but another SDP request was in progress. |
| 906 | BUSY | Tried to issue SDPQUERY but another SDP request was in progress. |
| 907 | NOT_CONNECTED | Tried to CLOSE a connection handle that is not active. |
| 908 | BUSY | Tried to issue SDPSEARCH but another SDP request was in progress. |
| 909 | INVALID_ADDRESS | Tried to NAME a device with a friendly name that can't be found with inquiry. |
| 90a | BUSY | Tried to issue NAME but another NAME was in progress. |
Other error codes can be analyzed as follows. For example NO CARRIER ERROR 465: The number 465 is hexadecimal, sum of 0x400 and 0x65, where 0x400 is a mask which means this is an RFCOMM level error and 0x65 (decimal 101) that the RFCOMM error was connection timeout.
The error codes for each mask are listed in the following tables.
Table 6-7. HCI Error Codes
| HCI Error | Code |
|---|---|
| HCI_SUCCESS | 0 |
| HCI_ERR_UNKNOWN_COMMAND | 1 |
| HCI_ERR_NOCONNECTION | 2 |
| HCI_ERR_HARDWARE_FAIL | 3 |
| HCI_ERR_PAGE_TIMEOUT | 4 |
| HCI_ERR_AUTHENTICATION_FAILED | 5 |
| HCI_ERR_KEY_MISSING | 6 |
| HCI_ERR_MEMORY_FULL | 7 |
| HCI_ERR_CONNECTION_TIMEOUT | 8 |
| HCI_ERR_MAX_NUM_CONNECTIONS | 9 |
| HCI_ERR_MAX_NUM_SCO_CONNECTIONS | 10 |
| HCI_ERR_ACL_CONN_ALREADY_EXISTS | 11 |
| HCI_ERR_COMMAND_DISALLOWED | 12 |
| HCI_ERR_HOST_REJECTED_0D | 13 |
| HCI_ERR_HOST_REJECTED_0E | 14 |
| HCI_ERR_HOST_REJECTED_0F | 15 |
| HCI_ERR_HOST_TIMEOUT | 16 |
| HCI_ERR_UNSUPPORTED_PARAM_VALUE | 17 |
| HCI_ERR_INVALID_HCI_PARAMETER_VALUE | 18 |
| HCI_ERR_OTHER_END_TERMINATE_13 | 19 |
| HCI_ERR_OTHER_END_TERMINATE_14 | 20 |
| HCI_ERR_OTHER_END_TERMINATE_15 | 21 |
| HCI_ERR_CONNECTION_TERMINATE_LOCALLY | 22 |
| HCI_ERR_REPEATED_ATTEMPTS | 23 |
| HCI_ERR_PARING_NOT_ALLOWED | 24 |
| HCI_ERR_UNKNOWN_LMP_PDU | 25 |
| HCI_ERR_UNSUPPORTED_REMOTE_FEATURE | 26 |
| HCI_ERR_SCO_OFFSET_REJECTED | 27 |
| HCI_ERR_SCO_INTERVAL_REJECTED | 28 |
| HCI_ERR_SCO_AIR_MODE_REJECTED | 29 |
| HCI_ERR_INVALID_LMP_PARAMETERS | 30 |
| HCI_ERR_UNSPECIFIED_ERROR | 31 |
| HCI_ERR_UNSUPPORTED_LMP_PARAMETER_VAL | 32 |
| HCI_ERR_ROLE_CHANGE_NOT_ALLOWED | 33 |
| HCI_ERR_LMP_RESPONSE_TIMEOUT | 34 |
| HCI_ERR_LMP_ERROR_TRANSACTION_COLLISION | 35 |
| HCI_ERR_LMP_PDU_NOT_ALLOWED | 36 |
| HCI_ERR_ENCRYPTION_MODE_NOT_ACCEPTABLE | 37 |
| HCI_ERR_UNIT_KEY_USED | 38 |
| HCI_ERR_QOS_NOT_SUPPORTED | 39 |
| HCI_ERR_INSTANT_PASSED | 40 |
| HCI_ERR_PAIRING_WITH_UNIT_KEY_NOT_SUPP | 41 |
| HCI_ERR_ILLEGAL_HANDLE | 100 |
| HCI_ERR_TIMEOUT | 101 |
| HCI_ERR_OUTOFSYNC | 102 |
| HCI_ERR_NO_DESCRIPTOR | 103 |
Table 6-8. L2CAP Error Codes
| L2CAP Error | Code |
|---|---|
| L2CAP_NO_CAUSE | 0 |
| L2CAP_ERR_PENDING | 1 |
| L2CAP_ERR_REFUS_INV_PSM | 2 |
| L2CAP_ERR_REFUS_SEC_BLOCK | 3 |
| L2CAP_ERR_REFUS_NO_RESOURCE | 4 |
| L2CAP_ERR_TIMEOUT_EXTERNAL | 0xee |
Table 6-9. SDP Error Codes
| SDP Error | Code |
|---|---|
| SDP_ERR_RESERVED | 0 |
| SDP_ERR_UNSUPPORTED_SDP_VERSION | 1 |
| SDP_INVALID_SERVICE_RECORD_HANDLE | 2 |
| SDP_INVALID_REQUEST_SYNTAX | 3 |
| SDP_INVALID_PDU_SIZE | 4 |
| SDP_INVALID_CONTINUATION_STATE | 5 |
| SDP_INSUFFICIENT_RESOURCES | 6 |
| SDP_ERR_UNHANDLED_CODE | 100 |
| SDP_ERR_TIMEOUT | 101 |
| SDP_ERR_NOTFOUND | 102 |
| SDP_INVALID_RESPONSE_SYNTAX | 103 |
| SDP_NOT_FOUND (not really an error) | 200 |
Table 6-10. RFCOMM Error Codes
| RFCOMM Error | Code |
|---|---|
| RFCOMM_SUCCESS | 0 |
| RFCOMM_ERR_NORESOURCES | 1 |
| RFCOMM_ERR_ILL_PARAMETER | 2 |
| RFCOMM_ERR_REJECTED (Connection setup was rejected by remote side) | 100 |
| RFCOMM_ERR_TIMEOUT (Connection timed out) | 101 |
| RFCOMM_ERR_NSC (Non supported command received) | 102 |
| RFCOMM_ERR_ILLPARAMETER | 103 |
If the problems persist after restarting the communication parties, please contact Bluegiga Technologies as instructed in Section 1.2.
WRAP Access Server SDK contains libraries for making OBEX clients. However, before starting to implement a new client, it is strongly recommended to try out the obexput and obexget applications. It is very easy to call these applications from your own code, often removing completely the need to use the low level OBEX libraries.
The obexput application can be called with special parameters (- as bdaddr and 1 as channel) from the iWRAP interface, for example like this:
CALL bdaddr OBJP FORK "/usr/bin/obexput - 1 filename.ext" |
There are two libraries for making your own OBEX clients. See include/obex.h. libobex contains mostly low level functions and libobexclient high level functions. Their usage in practice can be studied using the source code of the obexbrowser application found in asdk/examples/obexbrowser/ directory.
| Warning |
If you write your own ObjP/FTP program using OBEX libraries, you have to get a Bluetooth profile certificate for it! obexput, obexget, obexserver and obexbrowser are already certified. |
| Warning |
OBEX libraries are not thread safe! You have to fork separate process for each connection. |
Initialize the OBEX library. Must be the first function called. s_in and s_out are data handles for reading and writing.
Deinitialize the OBEX library. Must be the last function called.
Receive one OBEX packet. You have to free() the received packet! If NULL is returned, you have to disconnect next (timeout, dead socket, ...). If timeout is zero, wait forever. If timeout is nonzero, wait up to timeout seconds.
Send one packet. Does not call free().
Initialize an OBEX packet to empty command type packet.
Add byte/long/unicode-string/binary/ascii data to an OBEX packet.
Find header data from an OBEX packet. Returns -1 if not found, otherwise the length of the data.
Return mime type for filename.
Connect to target UUID. Target can be NULL (Object Push connect). Returns 0 if no errors, -1 if timeout, -2 if broken socket, >0 if OBEX error (see IrDA Object Exchange Protocol by Infrared Data Association for OBEX response codes).
Disconnect. Returns 0 if no errors, -1 if timeout, -2 if broken socket, >0 if OBEX error (see IrDA Object Exchange Protocol by Infrared Data Association for OBEX response codes).
int obex_put(char * name, char * type, char * data, long * length, FILE * fdata, obex_progress_t
progress, void *
progressarg);
Put local file / data block to remote.
name is remote file name. Can be NULL.
type is remote MIME type. Can be NULL.
data/length are pointer to data block and length. Can be NULL/0.
fdata is file handle for local file, if data was NULL.
progress is a function to be called after each data block. Can be NULL. progressarg will be passed as parameter.
Returns 0 if no errors, -1 if timeout, -2 if broken socket, >0 the OBEX error code (see IrDA Object Exchange Protocol by Infrared Data Association for OBEX response codes).
int obex_get(char * name, char * type, char * data, long max_length, FILE * fdata, obex_progress_t
progress, void *
progressarg);
Get remote file to local.
name is remote file name. Can be NULL.
type remote MIME type. Can be NULL.
data/max_length are pointer to data block and length. Can be NULL/0.
fdata is file handle for local file, if data was NULL.
progress is a function to be called after each data block. Can be NULL. progressarg will be passed as parameter.
Returns >=0 (number of bytes received) if no errors, -1 if timeout, -2 if broken socket, <0 if OBEX error (see IrDA Object Exchange Protocol by Infrared Data Association for OBEX response codes).
Setpath to name with flags. Returns 0 if no errors, -1 if timeout, -2 if broken socket, >0 if OBEX error (see IrDA Object Exchange Protocol by Infrared Data Association for OBEX response codes).
The application obexbrowser is an Object Push Profile (ObjP) and File Transfer Profile (FTP) client, and is shipped with Access Server in both binary form (as it is part of the Access Server platform) and in source form (at it is a good example of using the OBEX libraries).
For an outgoing ObjP/FTP call you need to:
Make the outgoing RFCOMM call from iWRAP.
For example: CALL 00:07:80:80:bf:01 FTP RFCOMM
Run obexbrowser from the command line. It takes two parameters: hostname and port number. Hostname is usually localhost and port number can be read from the iWRAP server's CONNECT reply.
For example: obexbrowser localhost 1024
obexbrowser itself supports all the OBEX commands. See the source code and the IrDA Object Exchange Protocol by Infrared Data Association. The commands obexbrowser accepts are described in Table 6-11.
Table 6-11. obexbrowser Commands
| Command | Description |
|---|---|
| connect | Makes default INBOX connect (Object Push). |
| connect-ftp | Makes connect to FTP UUID. |
| disconnect | Disconnect. |
| cd/ | Setpath to root. |
| cd path | Setpath to path. |
| cd.. | Setpath with backup. |
| md path | Create subdirectory path. |
| put local remote | Put local to remote. Use - for local name to delete remote file. |
| get local remote | Get remote to local. |
| cat remote | Cat remote. |
| ls | Get mime x-obex/folder-listing without filename. |
Example:
iWRAP server:
READY.
CALL 00:07:80:80:bf:01 3 RFCOMM
CALL 0
RINGING 0
CONNECT 0 RFCOMM 1024
Command line:
obexbrowser localhost 1024
connect
connect=00
get remote.vcf -
get=143
put default.vcf
put=00
disconnect
disconnect=00
Ctrl-D
iWARP server:
NO CARRIER 0 ERROR 000
|
The Bluegiga I/O API defines how to access the Access Server's LEDs, buzzer and general purpose I/O and contains functions to accomplish this.
The I/O API is accessed by using functions, macros, and constants defined in the header file bgio.h. You can use the macros by including the file.
Example:
#include <bgio.h> |
Access Server's LEDs are controlled by using the following macros and functions. You need to add an extra linker flag LDFLAGS = -lbgio to your Makefile when using the LED API.
BGIO_LED returns ledmask for lednum. lednum is the number of LED in the range 0 to BGIO_LED_MAX.
bgio_led_status reads LEDs and returns current ledmask.
bgio_led_set sets LEDs in ledmask ON.
bgio_led_clr sets LEDs in ledmask OFF.
ledmask is a bit mask where bit 0 is LED 0, bit 1 is LED 1, etc..
See asdk/examples/io/led/ for a LED API example.
LEDs and the buzzer can also be accessed via /dev/led. You can check the status of the LEDs and buzzer with cat /dev/led command and set LEDs or buzzer with echo abcde > /dev/led command. A letter in upper case means that the LED or buzzer is ON, lower case means that the LED or buzzer is OFF. Letter "a" is the buzzer, letters "b".."e" are LEDs 1..4.
The Digital I/O pins of the Access Server can be controlled write-only using the device /dev/io in a same way that the LEDs and buzzer described above.
The letter-to-I/O mapping of the 16 pins is as follows, when looking at the connector:
hgfedcba
Xijklmno
|
X is the ground pin (and cannot be set).
o is the voltage sense pin (user can use any voltage from 3.3V to 5.0V).
The I/O must first be enabled by echo Z > /dev/io. After that, pins can be driven up by echoing corresponding upper case letter (A-N) or down by echoing lower case letter (a-n) to the device /dev/io.
Example:
[root@wrap /] modprobe io
[root@wrap /] echo ZaBcD > /dev/io
|
This chapter will give you advanced use cases for Access Server. The cases listed here are not so trivial, the simple cases are already listed mostly in Chapter 6.
Access Server will support most of the digital pens. The examples below are for Nokia Digital Pen SU-1B but they should apply to other pens too.
To setup Access Server for digital pens you have to give following iWRAP commands. The best way to do this is to edit /etc/bluetooth.conf file from the command prompt or with the setup application.
# Emulate a phone
SET BLUETOOTH CLASS 500204
SET BLUETOOTH LISTEN 1 "*/usr/sbin/dun"
SDP ADD DUN 1 "Digital Pen DUN"
# Add two pens and their pin codes
SET BLUETOOTH AUTH 00:07:cf:51:f6:8e 9079 --REPLY
SET BLUETOOTH AUTH 00:07:cf:51:d5:2b 6603 --REPLY
# Note: See pen's manual for correct bluetooth address and pin code
# Optionally reject all other incoming connections
SET BLUETOOTH AUTH * - --NEWPAIR
|
After these settings you can pair and use the digital pen with Access Server just like you would use it with a phone. Both modes, receiving pictures to Access Server, and external server via dialup, are supported.
Access Server can automatically forward an incoming connection to an external server via TCP/IP. This is mostly used to forward incoming SPP connections, but is not limited to that.
To setup Access Server to do this you have to give following iWRAP commands. The best way to do this is to edit /etc/bluetooth.conf file from the command prompt or with the setup application.
# Forward incoming connection to IP 192.168.42.99 socket 7444
SET BLUETOOTH LISTEN 1 192.168.42.99:7444
# Add SDP record for SPP
SDP ADD SPP 1 "SPP to External Server"
|
In addition to those commands you have to disable Serial Port Profile from the setup application. For more information see Section 2.4.
After these settings all incoming RFCOMM connections to channel 1 (SPP) will be forwarded to IP 192.168.42.99 socket 7444 using TCP connection.
WRAP Access Server is CE approved and Bluetooth qualified v.1.1 and v.1.2. It has been measured against the following specification standards: Radio spectrum Matters (R&TTE, Article 3.2) ETSI EN 300 328-2 v1.3.1. / EN 301 489-1/17, and FCC part 15.247. Supported Bluetooth profiles are: GAP, SDAP, LAN client and server, SPP A and B, FTP client and server, ObjP client and server, PAN-PANU, PAN-GN and PAN-NAP.
Hereby, Bluegiga Technologies declares that this WRAP Access Server is in compliance with the essential requirements and other relevant provisions of Directive 1999/5/EC.
This device complies with Part 15 of the FCC Rules.
Operation is subject to the following two conditions:
This device may not cause harmful interference, and
This device must accept any interference received, including interference that may cause undesired operation.
This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation.
If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by 1 or more of the following measures:
Reorient or relocate the receiving antenna
Increase the separation between the equipment and receiver
Connect the equipment into an outlet on a circuit different from that to which the receiver is connected
Consult the dealer or an experienced radio or television technician for help
Warning: Changes or modifications made to this equipment not expressly approved by Bluegiga Technologies Inc. may void the FCC authorization to operate this equipment.
The radiated output power of the WRAP Access Server is far below the FCC radio frequency exposure limits. Nevertheless, the WRAP Access Server should be used in such a manner that the potential for human contact during normal operation is minimized.
To meet the FCC's exposure rules and regulations:
The antenna(s) used for this transmitter must be installed to provide a separation distance of at least 20 cm from all the persons.
Any transmitter installed in the CF card slot must not exceed 4 W of e.i.r.p. To check if a particular equipment complies with this restriction you need to know its FCC ID number and visit the searching engine in FCC web site in the following Internet address, where you can find the output power by the equipment in the grant of the equipment https://gullfoss2.fcc.gov/prod/oet/cf/eas/reports/GenericSearch.cfm
If this link does not work properly please visit FCC website http://www.fcc.gov and follow the following steeps to find the searching engine:
FCC website → Office of Engineering Technology → Equipment Authorization Electronic Filing → Generic Search
Please notice that the output power listed in the grant uses different units depending on the type of the equipment, e.g.:
The output power for 802.11a/b/g/h equipment or similar equipment approved under �15.247 or �15.407 is listed as Conducted RF power. �15.247 or �15.407 limit the e.i.r.p. to 4 W, so this restriction is fulfilled.
The output power for Part 22 cellular equipment is listed as e.r.p. The relationship between e.r.p. and e.i.r.p. is the following one:
e.i.r.p. = 1.64 x e.r.p.
The output power for Part 24 PCS equipment is listed as e.i.r.p.
For other type of equipment please consult the distributor in order to assure the restriction is fulfilled.
Effective Radiated Power (e.r.p.) (in a given direction): The product of the power supplied to the antenna and its gain relative to half-wave dipole in a given direction.
Equivalent Isotropically Radiated Power (e.i.r.p.) (in a given direction): The product of the power supplied to the antenna and its gain relative to an isotropic antenna.
The table below is excerpted from Table 1B of 47 CFR 1.1310 titled Limits for Maximum Permissible Exposure (MPE), Limits for General Population/Uncontrolled Exposure:
Table 9-1. Limits for Maximum Permissible Exposure (MPE), Limits for General Population/Uncontrolled Exposure
| Frequency Range (MHz) | Power Density (mW/cm�) |
|---|---|
| 300 - 1500 | f/1500 |
| 1500 - 100 000 | 1.0 |
The equipment WRAP Access Server transmits in the 2400 - 2483.5 MHz frequency range, so the applicable MPE limit is 1 mW/cm�. The equipment can be provided with up to 4 Bluetooth modules WRAP THOR 2022-1-B2B (FCC ID: QOQWRAP2022-1-B2B):
Under the conditions stated above MPE limits can be guaranteed as the calculation below shows:
Example 9-1. 15.247 or 15.407 Compact Flash Card with maximum allowed e.i.r.p. of 4W
Using equation from page 18 of OET Bulletin 65, Edition 97-01:
S = P⋅G/4nR� = Prad (e.i.r.p.)/4nR�
Where,
S = power density in mW/cm� (1 mW/cm� used for G)
P = power input to the antenna
G = power gain of the antenna in the direction of interest relative to an isotropic radiator
R = distance to the centre of radiation of the antenna in cm (20cm Prediction distance)
S Compact Flash card = Prad (e.i.r.p.) Compact Flash card /4nR� = 4000mW/4n(20cm)�
we obtain the following results:
S Compact Flash card = 0.795774mW/cm�
S Total = 4 x S module + S Compact Flash card = 4 x 0.003579mW/cm� + 0.795774mW/cm�
S Total = 0.014316mW/cm� + 0.795774mW/cm� = 0.795774mW/cm� < 1mW/cm�
Example 9-2. Part 22 Compact Flash Card with maximum e.r.p. of 1.5 W (Category excluded of MPE evaluation according to �2.1091)
Using equation from page 18 of OET Bulletin 65, Edition 97-01 and considering that e.i.r.p. = 1.64 x e.r.p.:
S Compact Flash card = Prad (e.i.r.p.) Compact Flash card /4nR� = 1500 x 1.64mW / 4n(20cm)�
S Compact Flash card = 0.489401mW/cm�
S Total = 4 x S module + S Compact Flash card = 4 x 0.003579mW/cm� + 0.489401mW/cm�
S Total = 0.014316mW/cm� + 0.489401mW/cm� = 0.503717mW/cm� < 1 mW/cm�
Example 9-3. Part 24 Compact Flash Card with maximum e.r.p. of 3 W (Category excluded of MPE evaluation according to �2.1091)
Using equation from page 18 of OET Bulletin 65, Edition 97-01 and considering that e.i.r.p. = 1.64 x e.r.p.:
S Compact Flash card = Prad (e.i.r.p.) Compact Flash card /4nR� = 3000 x 1.64mW / 4n(20cm)�
S Compact Flash card = 0.978803 mW/cm�
S Total = 4 x S module + S Compact Flash card = 4 x 0.003579mW/cm� + 0.978803 mW/cm�
S Total = 0.014316mW/cm� + 0.978803mW/cm� = 0.993119mW/cm� < 1mW/cm�
The crossed-out wheeled bin means that within the European Union the product must be taken to separate collection at the product end-of-life. Do not dispose of these products as unsorted municipal waste.
Bluegiga Technologies Ltd. provides wireless local area networks and communication systems based on Bluetooth technology.
Bluegiga connects Bluetooth enabled devices with corporate networks and the Internet. In addition, Bluegiga products create easy-to-use and secure wireless links between Bluetooth devices and applications.
Bluetooth technology has become a new standard functionality in cell phones, PDAs, laptops and an increasing number of other devices. With GSM-level security and low power drain, Bluetooth links are utilized to enable cost efficient wireless connectivity.
For many, Bluetooth technology is first encountered as a flexible replacement to infrared links and cables, and as convenient hands-free accessories to mobile phones. With the introduction of intelligent access servers and Bluetooth modules that provide a connection between Bluetooth devices and other network technologies, the way is paved for more demanding business and industrial applications.
Using a Bluetooth access server, content and applications in both the Internet and corporate intranets can be wirelessly accessed and synchronized using smart phones and other Bluetooth enabled devices. With significantly lower power drain and superior flexibility compared to WiFi technologies, Bluetooth is an ideal link between small battery-operated wireless devices and data networks.
Versatile and cost-efficient network access from any device with a Bluetooth link provides a platform for a wide variety of new wireless services - in marketing, promotion, retail, sports, wellness, and more. First business applications include distribution and synchronization of content; near future opportunities include - among many others - the use of Bluetooth enabled smartphones as VoIP terminals.
Bluegiga products are software configurable for versatile integration. Bluegiga access products link wireless devices as integral and secure parts of corporate networks and provide an ideal solution for remote monitoring applications. In addition, Bluegiga range includes products to replace cables in various industrial, M2M and telemetry applications, enhancing flexibility and decreasing costs.
Bluegiga WRAP Access Server enables the deployment of Bluetooth connectivity as a new virtue of existing networks without network reconfiguration. Bluegiga's first-generation access products have been on the market since 2002, and the new Access Server, the first device to integrate multiple Bluetooth modules with WiFi, GSM, GPRS and Ethernet LAN connectivities, was commercially launched in February 2004.
Bluegiga WRAP THOR Bluetooth modules with 100 meter range are robust, lightweight and flexibly embeddable. The modules enable device manufacturers to easily add secure and robust wireless communications links in both new and existing applications. Bluegiga also offers a range of development tools, software versions and flexible production models from low to high-volume applications with customized or standard Bluegiga software options.
A pioneering innovator in Bluetooth technology, Bluegiga has developed an easy-to-use, secure and cost-efficient solution to connect Bluetooth devices to the Internet, corporate intranets and other devices, enabling a wide range of new wireless services.
Founded in 2000, Bluegiga is headquartered in Espoo, Finland and privately held. Bluegiga is an associate member of the Bluetooth Special Interest Group. Bluegiga products are globally available via a network of qualified distributors, original equipment and design manufacturers, and system integrators.
Directory Tree Type Note
============== ==== ====
/ f whole filesystem is root writable
|-- bin f
|-- boot f
|-- dev d
| |-- [other devices] d
| `-- shm d resizable ramdisk
| |-- etc w resolv.conf
| |-- tmp w /tmp
| | |-- in w smsgw dir (if enabled)
| | |-- logo w smsgw dir (if enabled)
| | |-- obex w obexserver dir
| | |-- out w smsgw dir (if enabled)
| | |-- tone w smsgw dir (if enabled)
| `-- var w ramdisk part of /var
| |-- lock w
| | `-- subsys w
| |-- log w
| |-- run w
| `-- tmp w
|-- etc f system config and init scripts
| |-- init.d -> rc.d/init.d l
| |-- pcmcia f
| | `-- cis f
| |-- ppp f
| | `-- peers f
| |-- rc.d f
| | |-- init.d f
| | `-- rc3.d f
| |-- rc3.d -> rc.d/rc3.d l
| |-- snmp f
| |-- ssh f
| `-- sysconfig f
|-- lib f system libraries
| |-- iptables f
| `-- modules f
| `-- [module directories] f
|-- mnt f mount points
| |-- mtd f2 second flash, 8MB for user use
| |-- nfs f empty mount point
| `-- usb f empty mount point
|-- opt f
|-- proc p proc filesystem
|-- sbin f system binaries
|-- tmp -> dev/shm/tmp l temporary data (ramdisk)
|-- usr f
| |-- bin f
| |-- include f
| |-- lib f
| |-- local f
| | |-- bin f user binaries
| | |-- games f
| | |-- include f
| | |-- lib f
| | |-- man f
| | |-- sbin f
| | |-- share f
| | `-- src f
| |-- sbin f
| `-- share f
| |-- man f
| |-- misc f
| `-- terminfo f
| |-- a f
| |-- l f
| |-- v f
| `-- x f
`-- var f
|-- cache f
|-- empty f
|-- lib f
| |-- b2b f
| |-- dpkg f
| `-- info f
| |-- misc f
| `-- setup f
|-- local f
|-- lock -> ../dev/shm/var/lock l
|-- log -> ../dev/shm/var/log l log files
|-- opt f
|-- run -> ../dev/shm/var/run l
|-- spool f
| `-- cron f
| `-- crontabs f
|-- tmp -> ../dev/shm/var/tmp l
`-- www f
`-- html f WWW pages
Types
=====
d = device file system, can be used to configure Linux
f = FLASH file system, read/write, files will be saved on power-down
l = link, symbolic link
p = PROC file system, can be used to configure Linux
w = RAM file system, read/write, files will be lost on power-down
|
Submenu containing most important security settings, like passwords. |
New root password []
Password of "root" user. If you write something here, the default password "buffy" will be changed. Empty means do not change. Please note that once you set it, there is no way to uncrypt it. You either have to remember it or change it again to something you do remember. |
iWRAP password [buffy]
The password required to be entered before any commands when discussing with iWRAP. Can be empty. |
Do not require iWRAP password from local clients [Yes]
Ask iWRAP password from remote clients only, not from local (127.0.0.1). |
Bluetooth PIN code []
The PIN code used when establishing connections. Up to 16 characters are significant. If there is no default PIN code, the Access Server does not require a PIN code when establishing connections. If in this case the other device requests a PIN code, the default PIN code 1234 is sent, following the Bluetooth specification. |
Root user password for FTP [buffy]
Password of the "root" user for FTP connections. Use "*" to allow everything (aka anonymous user). |
Allow anonymous FTP login [Yes]
Allow anonymous FTP login or not. |
WWW passwords [/etc/httpd.conf]
Enables editing of the WWW Server configuration file. It consists of lines in format "/dir:username:password" which specify the username and password required on URLs starting with "/dir". More than one username:password can be defined for same "/dir" by adding multiple lines. |
Submenu containing generic settings. |
New root password []
Password of "root" user. If you write something here, the default password "buffy" will be changed. Empty means do not change. Please note that once you set it, there is no way to uncrypt it. You either have to remember it or change it again to something you do remember. |
Size of the ramdisk in kilobytes [16384]
The size of the ramdisk (/dev/shm/). Sizes below minimum (currently 256) and above maximum (currently 20480) are not allowed. The Linux kernel adjusts the size of the ramdisk dynamically. |
Use local syslog service [Yes]
This option determines whether or not the System Logger (syslogd) should log locally to /var/log/messages. |
IP address of the remote syslog server [192.168.42.1]
The IP address of the device in the network to which the System Logger should log to. The remote device must be configured to accept syslogd connections from the WRAP Access Server. See the system logger documentation on the remote device for more information on how to accomplish that. |
Submenu containing network settings. |
Hostname of the unit [wrap]
The hostname of the WRAP Access Server. Local applications will see this name. May be changed by dynamic network configuration. |
Domain of the unit [localdomain]
The domain name of the WRAP Access Server. Local applications will see this name. May be changed by dynamic network configuration. |
Enable ethernet cable interface [Yes]
Enable ethernet cable interface. |
Enable WiFi hostap interface [No]
Enable WiFi hostap interface |
Enable WiFi hermes interface [No]
Enable WiFi hermes interface |
Enable GPRS interface [No]
Enable GPRS interface |
Time server (NTP) []
Hostname or IP address of the time server connected at system boot to retrieve correct time using the Network Time Protocol. The ntp client is also started to keep the clock in correct time while Access Server is powered. |
Time server (rdate) []
Hostname or IP address of the time server connected at system boot to retrieve correct time using the Time Protocol (RFC 868). If possible, please use NTP instead. |
Zeroconf interface [nap]
Possible interface names are "nap", "gn" and "none". |
Default interface settings. |
Use dynamic network configuration [Yes]
This option determines whether or not automatic configuration of the default network interface (nap) using DHCP should be attempted at boot. If set to no, you have to manually enter IP address and other network settings. |
IP address [192.168.42.3]
The IP address of the Access Server. |
Subnet mask [255.255.255.0]
The network mask of the Access Server. |
IP address of the default gateway [192.168.42.254]
The IP address of the default gateway in the LAN to which the Access Server is connected. |
List of name server IPs [192.168.42.1 192.168.42.2]
The IP address(es) of the name servers, separated by space. |
WiFi hostap settings |
Use AP master mode [No]
Use AP master mode |
Extra commands for AP master mode [/etc/sysconfig/ifup-wlan0]
Extra commands for AP master mode |
ESSID []
ESSID |
Nickname [Bluegiga]
Nickname |
WEP encryption key []
WEP encryption key |
Assign to default interface [Yes]
Assign to default interface |
Use dynamic network configuration [Yes]
Use dynamic network configuration |
IP address [192.168.44.3]
IP address |
Subnet mask [255.255.255.0]
Subnet mask |
GPRS settings |
Dial on demand [Yes]
Dial on demand |
SIM card PIN code []
SIM card PIN code |
Username [blue]
Username for GPRS network. Contact your GSM operator for correct value. Some examples: Elisa/Finland: blue Sonera/Finland: blue Wataniya/Kuwait: blue Etisalat/UAE: Mnet See also: http://www.kh-gps.de/gprsset.htm |
Password [giga]
Password for GPRS network. Contact your GSM operator for correct value. Some examples: Elisa/Finland: giga Sonera/Finland: giga Wataniya/Kuwait: giga Etisalat/UAE: Mnet See also: http://www.kh-gps.de/gprsset.htm |
Internet APN [internet]
Internet APN for GPRS network. Contact your GSM operator for correct value. Some examples: Elisa/Finland: internet Sonera/Finland: internet Wataniya/Kuwait: action.wataniya.com Etisalat/UAE: mnet See also: http://www.kh-gps.de/gprsset.htm |
Extra parameters for pppd []
Extra parameters for pppd |
Submenu containing all bluetooth related settings. |
iWRAP password [buffy]
The password required to be entered before any commands when discussing with iWRAP. Can be empty. |
Do not require iWRAP password from local clients [Yes]
Ask iWRAP password from remote clients only, not from local (127.0.0.1). |
Friendly name [W$S_$p]
The name shown when this device is found when inquired about by other Bluetooth devices. Following meta tags are available: $S : Hardware serial number, all ten digits $s : Hardware serial number, last three digits $P : Server port $p : Server port, last digit $H : Fully Qualified Domain Name (FQDN) $h : hostname $$ : $ |
Connectable and discoverable mode [3]
The setting specifying whether this device is connectable and/or discoverable or not by other Bluetooth devices. When a device is connectable, other Bluetooth devices can make a Bluetooth connection to it. Before making a connection, the calling device must know the Bluetooth address of the device it is connecting to. The Bluetooth addresses can be found by making an inquiry. When a device is discoverable, it shows up in inquiries. Possible values for all combinations of these settings are: 0 : Not connectable, not discoverable 1 : Not connectable, discoverable 2 : Connectable, not discoverable 3 : Connectable and discoverable (default) |
Master/slave role switch policy [1]
The setting specifying how the connecting Bluetooth devices should decide their roles. When a device is calling another Bluetooth device, it originally is the master and the answering device is the slave. When the connection is being built, a role switch can be made. Normally, access point devices want to be the master for all their slaves, and therefore they require a master-slave switch when a new device is connecting. This is also how the Access Server is configured by default. Other possible combinations are: 0 : Allow switch when calling, don't request when answering 1 : Allow switch when calling, request when answering (default) 2 : Don't allow switch when calling, request when answering If you have problems with connecting to the Access Server, it might be due to the fact that your client device does not support a master/slave switch. In this case, set this setting to 0. |
Default PIN code []
The PIN code used when establishing connections. Up to 16 characters are significant. If there is no default PIN code, the Access Server does not require a PIN code when establishing connections. If in this case the other device requests a PIN code, the default PIN code 1234 is sent, following the Bluetooth specification. |
Power save mode and parameters [4]
The power save mode used by default for all connections. 0 : Active 1 : Park: Round-robin 2 : Park: Idle 3 : Sniff: All 4 : Sniff: Idle (default) |
Use literal replies in SDP [Yes]
If enabled, some SDP result codes will have literal values instead of numeric values. |
Optional command line parameters []
Additional command line parameters when starting iWRAP. |
Edit startup script [/etc/bluetooth.conf]
Enables editing of the /etc/bluetooth.conf file, which can contain extra commands that iWRAP servers process each time they start. |
Submenu containing lan access profile settings. |
Enable lan access profile [No]
Whether or not the LAN Access Profile is enabled. |
Login name and password []
The login name and password required from LAN access clients. Must be entered as a single string, separated with a space. For example: guest buffy If empty (default), no login is required. |
Service name (shown in SDP) [Lan Access]
The name of this service as shown in the Service Discovery. |
Defaultroute modification policy [0]
How the Bluetooth server should modify the defaultroute in routing tables: 0: Do not alter defaultroute 1: Set defaultroute according to outgoing PPP 2: Set defaultroute according to incoming PPP 3: Set defaultroute according to all PPP calls |
Submenu containing personal area network user profile settings. |
Enable PAN user profile [No]
Whether or not the PAN User Profile is enabled. |
Service name (shown in SDP) [PAN User]
The name of this service as shown in the Service Discovery. |
Enable zeroconf when calling [No]
Enable ZeroConf protocol for outgoing PANU connections. |
Enable zeroconf when answering [No]
Enable ZeroConf protocol for incoming PANU connections. |
Submenu containing personal area network generic networking profile settings. |
Enable PAN generic networking profile [Yes]
Whether or not the PAN Generic Networking Profile is enabled. |
Service name (shown in SDP) [Generic Networking]
The name of this service as shown in the Service Discovery. |
Use dynamic network configuration for local IP address [No]
Whether or not DHCP is used for configuring Local IP Address. Enable only if you are connecting this PAN-GN to another PAN-GN that will provide the IP configuration. |
Local GN interface IP address [192.168.161.1]
The IP address for the local GN interface. |
Local GN interface subnet mask [255.255.255.0]
The netmask for the local GN interface. |
Start DHCP server for remote users [Yes]
Whether or not this device should start DHCP for remote devices connecting to this PAN-GN. Disabled if "Use dynamic network configuration for local IP address" is used. |
First IP for lease block [192.168.161.2]
First IP for lease block |
Last IP for lease block [192.168.161.254]
Last IP for lease block |
Subnet of lease block [255.255.255.0]
Subnet of lease block |
Lease time [86400]
Lease time |
Submenu containing personal area network network access point profile settings. |
Submenu containing settings for object push and file transfer profiles. |
Enable object push profile [Yes]
Whether or not the Object Push Profile is enabled. |
Service name (shown in SDP) [Object Push]
The name of this service as shown in the Service Discovery. |
Enable file transfer profile [Yes]
Whether or not the File Transfer Profile is enabled. |
Service name (shown in SDP) [File Transfer]
The name of this service as shown in the Service Discovery. |
Submenu containing settings for serial port profile. The profile itself is enabled and disabled by switching "serialport" application "on" or "off" in the menu Setup -> Applications -> Default bootup applications. |
Act as the calling device [No]
Whether this device should act as the calling device (DevA) or the answering device (DevB). |
BPS rate [115200]
The bits-per-second rate of the connection. Possible values are 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, and 460800. |
Data bits [8]
The number of data bits in the connection. Possible values are 5, 6, 7, and 8. |
Parity [0]
The parity bit setting of the connection. Possible values are: 0: No Parity (default) 1: Odd Parity 2: Even Parity |
Stop bits [1]
The number of stop bits in the connection. Possible values are 1 and 2. |
Hardware flow control (RTS/CTS) [Yes]
Whether or not the hardware flow control is used in the connection. |
Software flow control (XON/XOFF) [No]
Whether or not the software flow control is used in the connection. |
Bluetooth address of the remote device [00:07:80:80:bf:01]
The Bluetooth address of the device to be contacted. |
Service channel [2]
If caller mode: The Bluetooth server channel of the device to be contacted. If answer mode: The Bluetooth server channel for incoming connections. |
Service name (shown in SDP) [Serial Port]
The name of this service as shown in the Service Discovery. |
Optional command line parameters []
Optional extra parameters for the Access Server Serial Port Profile application. Currently the supported parameters are: --device dev Device if not user port (/dev/ttyS0 for CF Card) --msc Enables transmitting of DCD/DSR status in MSC. --nobuffer Discard data if no Bluetooth connection. |
Submenu containing various applications. |
Submenu containing settings for FTP server application. |
Root user password [buffy]
Password of the "root" user for FTP connections. Use "*" to allow everything (aka anonymous user). |
Root user directory [/]
Root directory of the "root" user for FTP connections. |
Root user instances [5]
Maximum number of simultaneous logins of the "root" user for FTP connections. |
Allow anonymous login [Yes]
Allow anonymous FTP login or not. |
Anonymous user password [*]
Password of the "anonymous" user for FTP connections. Use "*" to allow everything (aka anonymous user). |
Anonymous user directory [/tmp/obex]
Root directory of the "anonymous" user for FTP connections. |
Anonymous user instances [5]
Maximum number of simultaneous logins of the "anonymous" user for FTP connections. |
Allow anonymous user to do everything [No]
Allow user to do everything. |
Allow anonymous user to download [Yes]
Allow user to download files. |
Allow anonymous user to upload [No]
Allow user to upload files and make directories. |
Allow anonymous user to overwrite [No]
Allow user to overwrite existing files. |
Allow anonymous user to multiple login [No]
Allow user to multiple logins. |
Allow anonymous user to erase [No]
Allow user to erase files and directories. |
Edit configuration file [/etc/ftpd.conf]
Edit the self documented configuration file of the FTP server. |
Submenu containing settings for ObexSender application. |
Bluetooth friendly name [W$S_$p]
The name shown when this device is found when inquired about by other Bluetooth devices. Following meta tags are available: $S : Hardware serial number, all ten digits $s : Hardware serial number, last three digits $P : Server port $p : Server port, last digit $H : Fully Qualified Domain Name (FQDN) $h : hostname $$ : $ |
Delay between inquiries [10]
Delay between inquiry. |
Delay between multiple files [40]
Delay between multiple files. |
If previous was ok, timeout before sending again [36000]
Timeout before sending to same device again, if previous was ok. |
If previous was failure, timeout before trying again [86400]
Timeout before sending to same device again, if previous was failure. |
Minimum RSSI value before sending [-128]
RSSI must be above this limit to start automatic sending. Note that this number is negative: -128 means all, -30 means "very close to us", and so on. |
Logfile name [-]
Logfile name, IP address of the log server or "-" for syslog. |
Log prefix [-]
Sender's ID to be added to log entries. |
If sending was failure, log it too [Yes]
If sending was failure, log it too. |
iWRAP password [-]
iWRAP password. "-" for none. |
Edit configuration file [/etc/obexsender.conf]
Edit the self documented configuration file of the ObexSender. |
Upload a new file [/mnt/mtd]
Upload a new file to Access Server (usually a jpg or gif file). |
List files [/mnt/mtd]
List files currently saved to Access Server. |
View log [-]
View ObexSender log file in summary or detailed mode. |
Submenu containing settings for SMS gateway application. |
Comport device [/dev/ttyS0]
Comport device for SMS gateway. /dev/ttySA1 for user uart /dev/ttyS0 for CF card |
Log file name [/dev/null]
The file to which the SMS gateway (smsgw) logs all traffic. Use /dev/null for none, /dev/console for console output and, for example, /var/log/smsgw.log if you want to save this information. Be careful, however, not to fill the RAM file system (use a cron job to free disk space from time to time). |
SMSC number [+358405202000]
SMSC number. Contact your local GSM operator if you don't know the correct value. +358405202000 for Sonera in Finland +358508771010 for Elisa in Finland |
Parse incoming messages [0]
What SMS gateway should do to incoming SMS messages: 0: Save them to disk (use this if don't know what you're doing!) 1: Parse them internally for keywords |
Edit configuration file [/etc/smsgw.conf]
Edit the self documented configuration file of the SMS gateway. |
Submenu containing settings for wpkgd application. |
wpkgd's autoinstall directory [/tmp/obex]
wpkgd will automatically check this directory for wpk files containing software update packets. Use "/tmp/obex" if you want to allow updates via Bluetooth Object Push. |
Extra parameters for wpkgd []
Optional extra command line parameters for wpkgd. For example, insert "--auth password" here to require the auth directive in wpk files. |
Submenu containing advanced settings. |
User startup script [/etc/rc.d/rc.local]
This is the last init script executed at system startup. By default, the script /etc/rc.d/rc.local just turns off all LEDs to indicate the startup has finished. If you want to initialize something automatically at every boot, or start up your own applications, for example, you should add the required commands to this file. Remember to start your programs to run at background (example: /usr/local/bin/myapp &) or you cannot get the shell prompt at the management console anymore. |
Default user profile [/etc/profile]
Edit the file containing the default user profile settings. |
WWW passwords [/etc/httpd.conf]
Enables editing of the WWW Server configuration file. It consists of lines in format "/dir:username:password" which specify the username and password required on URLs starting with "/dir". More than one username:password can be defined for same "/dir" by adding multiple lines. |
Setup access [/etc/setup.conf]
Enables editing of the setup access configuration file. It consists of lines in format "tag +user1 +user2 -user3 -user4" which allows (+) or denies (-) access to tag for user. You can find the tags from the HTML source of the WWW setup pages or from *.menu files in the /var/lib/setup directory. For example, the tag of this setting is advanced.setupconf |
Edit other configuration files []
Via this menu you can edit any configuration file. You can for example create /etc/crontab file for configuring the cron daemon. |
List installed software components [/usr/bin/dpkg -l]
List currenty installed software components and their version number. |
Upload a software update [/tmp/obex]
Upload a software update file (*.wpk). |
Browse files []
Browse files stored in the Access Server. |
Hardware information
Displaying hardware and software identification information. |
Find other Access Servers [/usr/bin/wrapfinder]
Find other Access Servers. |
List running processes [/bin/ps ww]
List running processes. |
Show system log file [/var/log/messages]
Show system log file. |
Security settings
New root password []
iWRAP password [buffy]
Do not require iWRAP password from local clients [Yes]
Bluetooth PIN code []
Root user password for FTP [buffy]
Allow anonymous FTP login [Yes]
WWW passwords [/etc/httpd.conf]
Generic settings
New root password []
Size of the ramdisk in kilobytes [16384]
Use local syslog service [Yes]
IP address of the remote syslog server [192.168.42.1]
Network settings
Hostname of the unit [wrap]
Domain of the unit [localdomain]
Default interface settings
Use dynamic network configuration [Yes]
IP address [192.168.42.3]
Subnet mask [255.255.255.0]
IP address of the default gateway [192.168.42.254]
List of name server IPs [192.168.42.1 192.168.42.2]
Enable ethernet cable interface [Yes]
Ethernet cable settings
Assign to default interface [Yes]
Use dynamic network configuration [Yes]
IP address [192.168.43.3]
Subnet mask [255.255.255.0]
Enable WiFi hostap interface [No]
WiFi hostap settings
Use AP master mode [No]
Extra commands for AP master mode [/etc/sysconfig/ifup-wlan0]
ESSID []
Nickname [Bluegiga]
WEP encryption key []
Assign to default interface [Yes]
Use dynamic network configuration [Yes]
IP address [192.168.44.3]
Subnet mask [255.255.255.0]
Enable WiFi hermes interface [No]
WiFi hermes settings
ESSID []
Nickname [Bluegiga]
WEP encryption key []
Assign to default interface [Yes]
Use dynamic network configuration [Yes]
IP address [192.168.45.3]
Subnet mask [255.255.255.0]
Enable GPRS interface [No]
GPRS settings
Dial on demand [Yes]
SIM card PIN code []
Username [blue]
Password [giga]
Internet APN [internet]
Extra parameters for pppd []
Time server (NTP) []
Time server (rdate) []
Zeroconf interface [nap]
Bluetooth settings
iWRAP password [buffy]
Do not require iWRAP password from local clients [Yes]
Friendly name [W$S_$p]
Connectable and discoverable mode [3]
Master/slave role switch policy [1]
Default PIN code []
Power save mode and parameters [4]
Use literal replies in SDP [Yes]
Optional command line parameters []
Edit startup script [/etc/bluetooth.conf]
Lan access profile settings
Enable lan access profile [No]
Login name and password []
Service name (shown in SDP) [Lan Access]
Defaultroute modification policy [0]
Personal area network user profile settings
Enable PAN user profile [No]
Service name (shown in SDP) [PAN User]
Enable zeroconf when calling [No]
Enable zeroconf when answering [No]
Personal area network generic networking profile settings
Enable PAN generic networking profile [Yes]
Service name (shown in SDP) [Generic Networking]
Use dynamic network configuration for local IP address [No]
Local GN interface IP address [192.168.161.1]
Local GN interface subnet mask [255.255.255.0]
Start DHCP server for remote users [Yes]
First IP for lease block [192.168.161.2]
Last IP for lease block [192.168.161.254]
Subnet of lease block [255.255.255.0]
Lease time [86400]
Personal area network network access point profile settings
Enable PAN network access point profile [Yes]
Service name (shown in SDP) [Network Access]
Object push and file transfer profile settings
Enable object push profile [Yes]
Service name (shown in SDP) [Object Push]
Enable file transfer profile [Yes]
Service name (shown in SDP) [File Transfer]
Serial port profile settings
Act as the calling device [No]
BPS rate [115200]
Data bits [8]
Parity [0]
Stop bits [1]
Hardware flow control (RTS/CTS) [Yes]
Software flow control (XON/XOFF) [No]
Bluetooth address of the remote device [00:07:80:80:bf:01]
Service channel [2]
Service name (shown in SDP) [Serial Port]
Optional command line parameters []
Applications
Default bootup applications []
FTP server settings
Root user password [buffy]
Root user directory [/]
Root user instances [5]
Allow anonymous login [Yes]
Anonymous user password [*]
Anonymous user directory [/tmp/obex]
Anonymous user instances [5]
Allow anonymous user to do everything [No]
Allow anonymous user to download [Yes]
Allow anonymous user to upload [No]
Allow anonymous user to overwrite [No]
Allow anonymous user to multiple login [No]
Allow anonymous user to erase [No]
Edit configuration file [/etc/ftpd.conf]
ObexSender settings
Bluetooth friendly name [W$S_$p]
Delay between inquiries [10]
Delay between multiple files [40]
If previous was ok, timeout before sending again [36000]
If previous was failure, timeout before trying again [86400]
Minimum RSSI value before sending [-128]
Logfile name [-]
Log prefix [-]
If sending was failure, log it too [Yes]
iWRAP password [-]
Edit configuration file [/etc/obexsender.conf]
Upload a new file [/mnt/mtd]
List files [/mnt/mtd]
View log [-]
Delete log (confirm)
Delete log now! [/bin/true]
SMS gateway settings
Comport device [/dev/ttyS0]
Log file name [/dev/null]
SMSC number [+358405202000]
Parse incoming messages [0]
Edit configuration file [/etc/smsgw.conf]
wpkgd settings
wpkgd's autoinstall directory [/tmp/obex]
Extra parameters for wpkgd []
Advanced settings
User startup script [/etc/rc.d/rc.local]
Default user profile [/etc/profile]
WWW passwords [/etc/httpd.conf]
Setup access [/etc/setup.conf]
Edit other configuration files []
List installed software components [/usr/bin/dpkg -l]
Upload a software update [/tmp/obex]
Browse files []
Hardware information
Find other Access Servers [/usr/bin/wrapfinder]
List running processes [/bin/ps ww]
Show system log file [/var/log/messages]
Reboot (confirm)
Reboot now! [/sbin/reboot]
|
In addition to the components that are licensed under Bluegiga's License Agreement (BGT), some software components are licensed under the terms and conditions of one or more open source licenses, listed in Table C-1 below.
Table C-1. Open Source Licenses in Access Server Software Components
| License Appreviation | Description | URL |
|---|---|---|
| CMU/UCD | Carnegie Mellon University & Regents of the University of California's BSD style license (in net-snmp) | |
| GPL1 | GNU General Public License Version 1, February 1989 | http://www.fsf.org/licenses/ info/GPLv1.html |
| GPL2 | GNU General Public License Version 2, June 1991 | http://www.opensource.org/ licenses/gpl-license.php |
| LGPL2 | GNU Library General Public License Version 2, June 1991 | http://www.gnu.org/copyleft/ lgpl.html |
| LGPL2.1 | GNU Lesser General Public License Version 2.1, February 1999 | http://www.opensource.org/ licenses/lgpl-license.php |
| BSD | Revised BSD License (without the advertising clause) | http://www.opensource.org/ licenses/bsd-license.php |
| BSDorig | Original BSD License (with the advertising clause) | http://www.fsf.org/licenses/ info/BSD_4Clause.html |
| MIT | MIT License (only one version exist, also known as X11 style license) | |
| MPL1.1 | Mozilla Public License Version 1.1 | http://www.mozilla.org/MPL/ |
| OpenSSL | OpenSSL License (similar to BSDorig) | http://www.openssl.org/source/ license.html |
| SSLeay | SSLeay License (similar to BSDorig) | http://www.openssl.org/source/ license.html |
| ZLIB | ZLIB License (only one version exist) | http://www.gzip.org/zlib/ zlib_license.html |
The details of the software components and the license (BGT or open source license) under which they are distributed are listed below in Table C-2.
Table C-2. Access Server Software Components and Their Licences
| Software Component | Version | License | Source URL |
|---|---|---|---|
| Bootloader | |||
| Dock U-Boot loader | 1.1.0 | BGT | n/a |
| The low level bootloader. Initializes memories, swithes management console to the user UART if wanted, loads the U-Boot and launches it. | |||
| Das U-Boot | 1.0.0 | GPL2 | http://sourceforge.net/projects/u-boot/ |
| The bootloader. Initialized system, holds system configuration, loads and launches the Linux kernel. | |||
| Kernel | |||
| Linux kernel | 2.4.21 | GPL2 | http://www.kernel.org/ |
| The kernel of the Access Server, responsible for resource allocation, low-level hardware interfaces, security etc. | |||
| kernel rmk1 patches | rmk1 | GPL2 | http://www.arm.linux.org.uk/ |
| ARM-Linux patches for the Linux kernel. | |||
| kernel BlueZ patches | mh8 | GPL2 | http://www.bluez.org/ |
| Newest Bluegiga-tested patches for the BlueZ part of the Linux kernel. | |||
| kernel MTD patches | 20040109 | GPL2 | http://www.linux-mtd.infradead.org/ |
| Newest Bluegiga-tested patches for the MTD part of the Linux kernel. | |||
| kernel BGT patches | 2.2 | GPL2 | delivered upon request |
| Bluegiga's Access Server hardware-specific modifications for the Linux kernel. | |||
| Userland | |||
| bash | 1.14.7 | GPL1 & GPL2 | http://www.gnu.org/software/bash/ bash.html |
| GNU Project's Bourne Again SHell, interactive shell with Bourne shell syntax. | |||
| bridge-utils | 0.9.6 | GPL2 | http://bridge.sourceforge.net/ |
| Linux Ethernet bridging utilities, needed to manage bridging for WRAP Bluetooth PAN profiles and WLAN Access Point functionality. | |||
| busybox | 1.1.1 | GPL2 | http://www.busybox.net/ |
| Provides tens of general userland utilities. | |||
| e3 | 2.6.2 | GPL2 | http://www.sax.de/~adlibit/ |
| Small text editor with different keybindings. | |||
| hostap-driver | 0.3.9 | GPL2 | http://hostap.epitest.fi/ |
| Linux driver for wireless LAN cards based on Intersil's Prism2/2.5/3 chipset. | |||
| hostap-utils | 0.3.7 | GPL2 | http://hostap.epitest.fi/ |
| Utility programs for managing hostap-driver. | |||
| iptables | 1.2.8 | GPL2 | http://www.netfilter.org/ |
| Administration tool for the Linux kernel IP packet filter. | |||
| libpcap | 0.7.2 | BSD | http://www.tcpdump.org/ |
| Provides portable framework for low-level network monitoring. Needed by tcpdump. | |||
| linux-wlan-ng | 0.2.1pre23 | MPL1.1 & GPL2 | http://www.linux-wlan.com/ |
| Linux device driver and subsystem package intending to provide full range of IEEE 802.11 MAC management capabilities for use in user mode utilities and scripts. | |||
| lrzsz | 0.12.20 | GPL2 | http://www.ohse.de/uwe/software/ lrzsz.html |
| Provides X/Y/Zmodem download/upload tools. | |||
| netkit-ftp | 0.17 | BSDorig | ftp://ftp.uk.linux.org/pub/linux/ Networking/netkit/ |
| FTP client application. | |||
| net-snmp | 5.2.rc4 | CMU/USD & BSD | http://www.net-snmp.org/ |
| Suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6. | |||
| ntpclient | 2003_194 | GPL2 | http://doolittle.faludi.com/ntpclient/ |
| NTP (RFC-1305) client. | |||
| openssh | 4.0p1 | BSD | http://www.openssh.com/ |
| OpenSSH suite; server and client utilities. | |||
| openvpn | 2.0.5 | GPL2 | http://openvpn.net/ |
| An Open Source VPN daemon. | |||
| pcmcia-cs | 3.2.7 | MPL1.1 & GPL2 | http://pcmcia-cs.sourceforge.net/ |
| PCMCIA support package providing a set of loadable kernel modules, client drivers and a card manager daemon. | |||
| picocom | 1.4 | GPL2 | http://efault.net/npat/hacks/picocom/ |
| Minimal dumb-terminal emulation program. | |||
| ppp | 2.4.3 | BSD & BSDorig & GPL2 & ZLIB | http://ppp.samba.org/ |
| Point-to-Point Protocol userland driver. | |||
| strace | 4.5.3 | GPL2 | http://www.liacs.nl/~wichert/strace/ |
| System call trace, i.e. a debugging tool. | |||
| stupid-ftpd | 1.4beta | GPL2 | http://stupid-ftpd.sourceforge.net/ |
| Simple FTP server. | |||
| tcpdump | 3.7.2 | BSD | http://www.tcpdump.org/ |
| Utility to monitor network traffic. | |||
| wireless_tools | 27 | GPL2 | http://www.hpl.hp.com/personal/ Jean_Tourrilhes/Linux/Tools.html |
| Package containing utilities to manage Wireless LAN specific parameters. | |||
| zeroconf | 1.5 | LGPL2.1 | http://www.zeroconf.org/ |
| Simple IPv4 Link-Local addressing. | |||
| userland BGT patches | 2.2 | GPL2 & BSD & MPL | delivered upon request |
| Bluegiga's Access Server hardware-specific modifications for the open source userland programs. | |||
| Bluetooth Stack | 2.2 | BGT | n/a |
| The WRAP Bluetooth stack core (iWRAP) containing upper HCI, L2CAP, RFCOMM, BNEP and the Service Discovery Protocol. It also provides a command line interface that can be accessed interactively by connecting to the stack using a telnet client or from an application using it as an API by making a socket connection to it. | |||
| Bluetooth PAN | 2.2 | BGT | n/a |
| WRAP Bluetooth PAN profiles. Includes Bluegiga's BNEP module. Uses open source tools like bridge-utils. | |||
| Bluetooth ObjP, FTP | 2.2 | BGT | n/a |
| WRAP Bluetooth Object Push and File Transfer Profiles. Includes obexserver userland server. | |||
| Bluetooth LAP | 2.2 | BGT | n/a |
| WRAP Bluetooth Lan Access Profile. Uses open source components like pppd. | |||
| Bluetooth SPP | 2.2 | BGT | n/a |
| WRAP Bluetooth Serial Port Profile. | |||
| bstool | 2.2 | BGT | n/a |
| Utility to read and write firmware parameters of the Bluetooth baseband, used by b2b_classX scripts. | |||
| btcli | 2.2 | BGT | n/a |
| Utility to send commands to the Bluetooth server. | |||
| btproxy | 2.2 | BGT | n/a |
| Utility to control several iWRAP servers from a single control connection. | |||
| installpoint | 2.2 | BGT | n/a |
| WRAP Install Point server provides users service based on a business card or other file sent via Bluetooth. If the packet is a management packet, it is forwarded to the WRAP Remote Management System daemon. | |||
| io driver | 2.2 | BGT | n/a |
| WRAP device driver kernel module for accessing the digital I/O port. | |||
| io library | 2.2 | BGT | n/a |
| WRAP I/O library for accessing the Access Server's hardware configuration. Contains also wrapper functions for accessing the led driver. | |||
| led driver | 2.2 | BGT | n/a |
| WRAP device driver kernel module for accessing the LEDs. | |||
| obexget/put | 2.2 | BGT | n/a |
| WRAP utility applications for performing OBEX file transfers with remote Bluetooth devices using Object Push and File Transfer Profile. | |||
| serialbluetooth | 2.2 | BGT | n/a |
| WRAP utility application for forwarding iWRAP to the user serial port. | |||
| setup | 2.2 | BGT | n/a |
| WRAP utility application for configuring the key system settings. | |||
| smsgw | 2.2 | BGT | n/a |
| WRAP SMS Gateway server. Enables sending and receiving SMS messages using Compact Flash GSM/GPRS card or GSM/GPRS modem connected to the user serial port. | |||
| uartmode | 2.2 | BGT | n/a |
| WRAP utility for switching the user serial port between DCE and DTE modes. | |||
| watchdog | 2.2 | BGT | n/a |
| WRAP Watchdog server -- user level watchdog. | |||
| wpkgd | 2.2 | BGT | n/a |
| WRAP Remote Management System daemon and package processing utility. | |||
| wrapfinder | 2.2 | BGT | n/a |
| Finds other Access Servers in the network. | |||
| wrapid | 2.2 | BGT | n/a |
| WRAP utility application for displaying hardware and software identification information. | |||
| Toolchain | |||
| binutils | 2.13.2.1 | GPL2 & LGPL2 | http://www.gnu.org/software/binutils/ |
| GNU Binutils, collection of binary tools, like GNU linker and GNU assembler. | |||
| gcc | 2.95.3 | GPL2 & LGPL2 | http://gcc.gnu.org/ |
| GNU C/C++ compiler and related tools. | |||
| gdb | 20040120 | GPL2 & LGPL2 | http://www.gnu.org/software/gdb/ gdb.html |
| GNU debugger (gdbserver for remote debugging of Access Server applications). | |||
| glibc | 2.2.5 | GPL2 & LGPL2.1 | http://www.gnu.org/software/libc/ libc.html |
| GNU C Library. | |||
| linuxthreads | 0.9 | LGPL2 | http://pauillac.inria.fr/~xleroy/ linuxthreads/ |
| LinuxThreads, a BiCapitalized implementation of the Posix 1003.1c "phtread" interface for Linux. | |||
| modutils | 2.4.26 | GPL2 | ftp://ftp.kernel.org/pub/linux/utils/ kernel/modutils/ |
| Utility applications for controlling Linux kernel modules. | |||
| ncurses | 5.3 | MIT | http://www.gnu.org/software/ ncurses/ncurses.html |
| Library for displaying and updating text on text-only terminals. | |||
| openssl | 0.9.7i | OpenSSL & SSLeay | http://www.openssl.org/ |
| Toolkit implementing SSL v2/v3, TLS v1 and general purpose cryptography library. | |||
| readline | 4.3 | GPL2 | http://cnswww.cns.cwru.edu/php/ chet/readline/rltop.html |
| GNU Readline library, providing set of functions for use by applications that allow users to edit command lines as they are typed in. | |||
| termcap | 2.0.8 | GPL2 | https://www.redhat.com/fedora/ |
| Basic system library needed to access the termcap database. | |||
| zlib | 1.2.1 | ZLIB | http://www.gzip.org/zlib/ |
| General purpose compression library. | |||
| toolchain BGT patches | 2.2 | GPL2 | delivered upon request |
| Bluegiga's Access Server specific modifications for the toolchain. | |||
Table D-1. Supported Hardware by the Access Server
| Connector | Type | Card | Note |
|---|---|---|---|
| CF | GPRS | Anycom GS-320 Tri-Band GPRS CF Card | Multislot class 10. |
| CF | GPRS | AudioVox RTM 8000 | Multislot class 8, "same" HW as Fujitsu. |
| CF | GPRS | Fujitsu Siemens Connect2Air 3GSM | Multislot class 8, "same" HW as Audiovox. |
| CF | GPS | Pretec CompactGPS™ | |
| CF | WiFi | D-Link Air Wireless Network DCF-660W | Seen shipping with 1.7.4 firmware (can be access point without upgrade) |
| CF | WiFi | Linksys Instant Wireless WCF-12 | |
| CF | WiFi | SMC Networks WLAN EZ Connect | Does not support firmware upgrade |