ece 411 final presentation
TRANSCRIPT
Assisted Living
Device Overview and Software Implementation
Cham Oh
December 5, 2005
TOPICS
Medical Devices Overview RFID Devices Overview Cell Phone Programming
Medical Devices
Criteria Wireless Technology Medical Features Pluggability Programmability Design Cost
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
RFID Devices
Long-range detection Tracking/locationing Programmability Design Cost
RFID Products
RFIDeas Xtag IAutomate
RFID Issue
Is it possible to exactly locate the tag?
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
BREW vs. J2ME
BREW J2ME
C/C++
Better for complex apps.
Qualcomm-specific
Device-dependent
Costly
Java
Runs on VM (Slow)
Platform-independent
Device-independent
Free
Deal We don’t need a complex program. We want freedom in programming. We want it for free!
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
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
Bluetooth Stack
Bluetooth Application
Initialization
... private LocalDevice localDevice; // local Bluetooth Managerprivate 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 agentdiscoveryAgent = localDevice.getDiscoveryAgent(); }
...
DiscoveryAgent / DiscoveryListener
Device Discovery State
Service Discovery State
Discovering Nearby Dervicespublic 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...
}
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...
}
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
SDDB and ServiceRecord Class
Device ManagementLocalDevice Class
RemoteDevice Class
Bluetooth Communication
Network APIs
CommConnection for serial interface HTTP connection HTTPS connection Socket Support UDP SSL
Socket Connection
Socket Connection
References
Sun’s 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