E N D
1. Assisted Living Cham Oh
December 5, 2005
3. Medical Devices Criteria
Wireless Technology
Medical Features
Pluggability
Programmability
Design
Cost
4. Nonin Pulse Oximeter Bluetooth (30 ft range)
SpO2, heart rate, plethysmographic data
Can be connected to any bluetooth-enabled device
Open communication protocols
Development kit support
$495
www.nonin.com
5. RFID Devices Long-range detection
Tracking/locationing
Programmability
Design
Cost
6. RFID Products RFIDeas
Xtag
IAutomate
7. RFID Issue Is it possible to exactly locate the tag?
8. Cell Phone Programming Embedded Runtime Environments
BREW (Binary Runtime Environment for Wireless)
Developed by Qualcomm
C/C++
J2ME (Java 2 Platform Micro Edition)
Developed by Sun
Java
9. BREW vs. J2ME
10. Cell Phone Programming Which cell phone do we need to purchase?
Bluetooth
J2ME
SDK support
Motorola
Bluetooth-enabled
J2ME support
Motorola SDK v5.2.1 for J2ME
Device emulator support
11. J2ME Development J2ME IDE
JDK 5.0 Update 6
NetBeans with Mobility Pack (http://www.netbeans.org/downloads/index.html)
CodeWarrior Wireless Studio 7.0 (http://www.metrowerks.com) pay toolkit
Java APIs
Bluetooth Wireless Technology (JABWT), JSR082
Network APIs
12. Bluetooth Stack
13. Bluetooth Application
14. Initialization ...
private LocalDevice localDevice; // local Bluetooth Manager
private DiscoveryAgent discoveryAgent; // discovery agent ...
/** * Initialize */
public void btInit() throws BluetoothStateException
{
localDevice = null;
discoveryAgent = null;
// Retrieve the local device to get to the Bluetooth Manager localDevice = LocalDevice.getLocalDevice();
// Servers set the discoverable mode to GIAC localDevice.setDiscoverable(DiscoveryAgent.GIAC);
// Clients retrieve the discovery agent
discoveryAgent = localDevice.getDiscoveryAgent(); }
...
15. DiscoveryAgent / DiscoveryListener
16. Device Discovery State
17. Service Discovery State
18. Discovering Nearby Dervices public class BtClient implements DiscoveryListener {
...
Vector discoveredDevices = new Vector();
...
// DiscoveryListener Callbacks ///////////////////////
/**
* deviceDiscovered() is called by the DiscoveryAgent when
* it discovers a device during an inquiry.
*/
public void deviceDiscovered( javax.bluetooth.RemoteDevice remoteDevice, javax.bluetooth.DeviceClass deviceClass) {
// Keep track of discovered remote devices by inserting
// them into a Vector
...
}
/**
* inquiryCompleted() is called by the DiscoveryAgent when
* a device discovery cycle finishes.
*/
public void inquiryCompleted(int param) {
// Now that the inquiry has been completed, if any
// devices were discovered trigger the search for services
...
}
19. Discovering Nearby Services /**
* servicesDiscovered() is called by the DiscoveryAgent when
* a service search finds services.
* transID identifies the service search that returned results.
* serviceRecord holds references to the services found.
*/
public void servicesDiscovered(int transID, javax.bluetooth.ServiceRecord[] serviceRecord) {
// Keep track of discovered services, adding them
// to a Vector
...
}
/**
* serviceSearchCompleted() is called by the DiscoveryAgent
* implementation when a service search finishes.
* transID identifies a particular service search.
* responseCode indicates why the service search ended.
*/
public void serviceSearchCompleted (int transID, int responseCode) {
// Now that the service discovery has been completed,
// dispatch thread to handle the discovered services
...
}
20. UUID Class Universally Unique Identifier required for each service
Represents short (16 or 32-bit) and long (128-bit) UUIDs
Use command uuidgen (Windows), or uuidgen t (Linux)
Ex) 2d266186-01fb-47c2-8d9f-10b8ec891363
21. SDDB and ServiceRecord Class
22. Device ManagementLocalDevice Class
23. RemoteDevice Class
24. Bluetooth Communication
25. Network APIs CommConnection for serial interface
HTTP connection
HTTPS connection
Socket Support
UDP
SSL
26. Socket Connection
27. Socket Connection
28. References Suns J2ME: http://java.sun.com/j2me
Bluetooth Development Article: http://developers.sun.com/techtopics/mobility/apis/articles/bluetoothintro/index.html
Network Implementation: http://developers.sun.com/techtopics/mobility/midp/articles/midp2network/
Motorola Developer Program: http://www.motocoder.com