Code a react native app to manage Bluetooth medical devices
Sun Apr 02 2023 05:03:55 GMT+0000 (Coordinated Universal Time)
Saved by @nickyhero965 #javascript #nodejs
import React, { useState, useEffect } from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import BleManager from 'react-native-ble-manager';
const App = () => {
const [devices, setDevices] = useState([]);
const [connectedDevice, setConnectedDevice] = useState(null);
const [deviceData, setDeviceData] = useState(null);
useEffect(() => {
BleManager.start({ showAlert: false });
BleManager.enableBluetooth();
}, []);
const scanDevices = () => {
BleManager.scan([], 5, true)
.then((results) => {
setDevices(results);
})
.catch((error) => {
console.log(error);
});
};
const connectDevice = (device) => {
BleManager.connect(device.id)
.then(() => {
setConnectedDevice(device);
BleManager.startNotification(
device.id,
'serviceUUID',
'characteristicUUID'
).then(() => {
console.log('Notification started');
});
})
.catch((error) => {
console.log(error);
});
};
const disconnectDevice = () => {
BleManager.disconnect(connectedDevice.id)
.then(() => {
setConnectedDevice(null);
setDeviceData(null);
})
.catch((error) => {
console.log(error);
});
};
const readDeviceData = () => {
BleManager.read(
connectedDevice.id,
'serviceUUID',
'characteristicUUID'
)
.then((data) => {
setDeviceData(data);
})
.catch((error) => {
console.log(error);
});
};
return (
<View style={styles.container}>
<Text style={styles.title}>Bluetooth Medical Devices Manager</Text>
{connectedDevice ? (
<View style={styles.connectedDevice}>
<Text style={styles.deviceName}>{connectedDevice.name}</Text>
<Button
title="Disconnect"
onPress={() => disconnectDevice()}
/>
<Button title="Read Data" onPress={() => readDeviceData()} />
{deviceData ? (
<Text style={styles.deviceData}>{deviceData}</Text>
) : null}
</View>
) : (
<View style={styles.deviceList}>
<Text style={styles.subtitle}>Available Devices:</Text>
{devices.map((device) => (
<View style={styles.deviceItem} key={device.id}>
<Text>{device.name}</Text>
<Button
title="Connect"
onPress={() => connectDevice(device)}
/>
</View>
))}
<Button title="Scan" onPress={() => scanDevices()} />
</View>
)}
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#F5FCFF',
},
title: {
fontSize: 20,
fontWeight: 'bold',
marginBottom: 20,
},
subtitle: {
fontSize: 16,
fontWeight: 'bold',
marginBottom: 10,
},
connectedDevice: {
alignItems: 'center',
justifyContent: 'center',
},
deviceName: {
fontSize: 18,
fontWeight: '



Comments