ece 411 final presentation

28
Assisted Living Device Overview and Software Implementation Cham Oh December 5, 2005

Upload: petersam67

Post on 19-May-2015

842 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ECE 411 Final Presentation

Assisted Living

Device Overview and Software Implementation

Cham Oh

December 5, 2005

Page 2: ECE 411 Final Presentation

TOPICS

Medical Devices Overview RFID Devices Overview Cell Phone Programming

Page 3: ECE 411 Final Presentation

Medical Devices

Criteria Wireless Technology Medical Features Pluggability Programmability Design Cost

Page 4: ECE 411 Final Presentation

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

Page 5: ECE 411 Final Presentation

RFID Devices

Long-range detection Tracking/locationing Programmability Design Cost

Page 6: ECE 411 Final Presentation

RFID Products

RFIDeas Xtag IAutomate

Page 7: ECE 411 Final Presentation

RFID Issue

Is it possible to exactly locate the tag?

Page 8: ECE 411 Final Presentation

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

Page 9: ECE 411 Final Presentation

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!

Page 10: ECE 411 Final Presentation

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

Page 11: ECE 411 Final Presentation

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

Page 12: ECE 411 Final Presentation

Bluetooth Stack

Page 13: ECE 411 Final Presentation

Bluetooth Application

Page 14: ECE 411 Final Presentation

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(); }

...

Page 15: ECE 411 Final Presentation

DiscoveryAgent / DiscoveryListener

Page 16: ECE 411 Final Presentation

Device Discovery State

Page 17: ECE 411 Final Presentation

Service Discovery State

Page 18: ECE 411 Final Presentation

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...

}

Page 19: ECE 411 Final Presentation

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...

}

Page 20: ECE 411 Final Presentation

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

Page 21: ECE 411 Final Presentation

SDDB and ServiceRecord Class

Page 22: ECE 411 Final Presentation

Device ManagementLocalDevice Class

Page 23: ECE 411 Final Presentation

RemoteDevice Class

Page 24: ECE 411 Final Presentation

Bluetooth Communication

Page 25: ECE 411 Final Presentation

Network APIs

CommConnection for serial interface HTTP connection HTTPS connection Socket Support UDP SSL

Page 26: ECE 411 Final Presentation

Socket Connection

Page 27: ECE 411 Final Presentation

Socket Connection

Page 28: ECE 411 Final Presentation

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