ECE 411 Final Presentation

Post on 19-May-2015

842 views 0 download

Tags:

Transcript of ECE 411 Final Presentation

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