VT CheckMe O2 integrated

dev_3.3_BLE
haroon amjad 2 years ago
parent 55b447926e
commit e59734ce43

@ -15,11 +15,16 @@ var userNotificationCenterDelegate:UNUserNotificationCenterDelegate? = nil
GeneratedPluginRegistrant.register(with: self) GeneratedPluginRegistrant.register(with: self)
initializePlatformChannels() initializePlatformChannels()
if let _ = launchOptions?[.location] { if let _ = launchOptions?[.location] {
HMG_Geofence.initGeofencing() HMG_Geofence.initGeofencing()
} }
// // Prepare channel
// FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;
// self->channel = [FlutterEventChannel eventChannelWithName:@"events" binaryMessenger:controller];
// [self->channel setStreamHandler:[EventHandler new]];
UNUserNotificationCenter.current().delegate = self UNUserNotificationCenter.current().delegate = self
return super.application(application, didFinishLaunchingWithOptions: launchOptions) return super.application(application, didFinishLaunchingWithOptions: launchOptions)
} }
@ -29,11 +34,13 @@ var userNotificationCenterDelegate:UNUserNotificationCenterDelegate? = nil
if let mainViewController = window.rootViewController as? MainFlutterVC{ // platform initialization suppose to be in foreground if let mainViewController = window.rootViewController as? MainFlutterVC{ // platform initialization suppose to be in foreground
flutterViewController = mainViewController flutterViewController = mainViewController
HMGPlatformBridge.initialize(flutterViewController: flutterViewController) HMGPlatformBridge.initialize(flutterViewController: flutterViewController)
BLEPlatformBridge.initialize(flutterViewController: flutterViewController)
OpenTokPlatformBridge.initialize(flutterViewController: flutterViewController, registrar: self.registrar(forPlugin: "open-tok")) OpenTokPlatformBridge.initialize(flutterViewController: flutterViewController, registrar: self.registrar(forPlugin: "open-tok"))
}else if let mainViewController = initialViewController(){ // platform initialization suppose to be in background }else if let mainViewController = initialViewController(){ // platform initialization suppose to be in background
flutterViewController = mainViewController flutterViewController = mainViewController
HMGPlatformBridge.initialize(flutterViewController: flutterViewController) HMGPlatformBridge.initialize(flutterViewController: flutterViewController)
BLEPlatformBridge.initialize(flutterViewController: flutterViewController)
OpenTokPlatformBridge.initialize(flutterViewController: flutterViewController, registrar: self.registrar(forPlugin: "open-tok")) OpenTokPlatformBridge.initialize(flutterViewController: flutterViewController, registrar: self.registrar(forPlugin: "open-tok"))
} }
} }
@ -57,14 +64,14 @@ extension AppDelegate{
/* /*
let dart = FlutterDartProject(precompiledDartBundle: .main) let dart = FlutterDartProject(precompiledDartBundle: .main)
let engine = FlutterEngine(name: "com.hmg.cs", project: dart, allowHeadlessExecution: true) let engine = FlutterEngine(name: "com.hmg.cs", project: dart, allowHeadlessExecution: true)
if engine.run(){ if engine.run(){
flutterMethodChannel = FlutterMethodChannel(name: "HMG-Platform-Bridge", binaryMessenger: engine.binaryMessenger) flutterMethodChannel = FlutterMethodChannel(name: "HMG-Platform-Bridge", binaryMessenger: engine.binaryMessenger)
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { (timer) in Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { (timer) in
FlutterText.with(key: "alreadyConnectedHmgNetwork"){ localized in FlutterText.with(key: "alreadyConnectedHmgNetwork"){ localized in
print(localized) print(localized)
} }
} }
} }
*/ */

@ -105,14 +105,14 @@ class MainFlutterVC: FlutterViewController {
// Register Geofence // Register Geofence
func registerHmgGeofences(result: @escaping FlutterResult){ func registerHmgGeofences(result: @escaping FlutterResult){
flutterMethodChannel?.invokeMethod("getGeofencePreferenceKey", arguments: nil){ geoFencesJsonString in // flutterMethodChannel?.invokeMethod("getGeofencePreferenceKey", arguments: nil){ geoFencesJsonString in
if let jsonString = geoFencesJsonString as? String{ // if let jsonString = geoFencesJsonString as? String{
let allZones = GeoZoneModel.list(from: jsonString) // let allZones = GeoZoneModel.list(from: jsonString)
HMG_Geofence().register(geoZones: allZones) // HMG_Geofence().register(geoZones: allZones)
//
}else{ // }else{
} // }
} // }
} }
} }

@ -6,6 +6,7 @@
// //
import UIKit import UIKit
import Flutter
class FlutterConstants{ class FlutterConstants{
static var LOG_GEOFENCE_URL:String? static var LOG_GEOFENCE_URL:String?

@ -8,11 +8,13 @@
import UIKit import UIKit
import NetworkExtension import NetworkExtension
import SystemConfiguration.CaptiveNetwork import SystemConfiguration.CaptiveNetwork
import Flutter
var flutterMethodChannel:FlutterMethodChannel? = nil var flutterMethodChannel:FlutterMethodChannel? = nil
fileprivate var mainViewController:MainFlutterVC! fileprivate var mainViewController:MainFlutterVC!
class HMGPlatformBridge{ class HMGPlatformBridge{
private let channelName = "HMG-Platform-Bridge" private let channelName = "HMG-Platform-Bridge"
private static var shared_:HMGPlatformBridge? private static var shared_:HMGPlatformBridge?
@ -60,7 +62,7 @@ class HMGPlatformBridge{
func connectHMGInternetWifi(methodCall:FlutterMethodCall ,result: @escaping FlutterResult){ func connectHMGInternetWifi(methodCall:FlutterMethodCall ,result: @escaping FlutterResult){
guard let pateintId = (methodCall.arguments as? [Any])?.first as? String guard let pateintId = (methodCall.arguments as? [Any])?.first as? String
else { return assert(true, "Missing or invalid arguments (Must have one argument 'String at 0'") } else { return assert(true, "Missing or invalid arguments (Must have one argument 'String at 0'") }
HMG_Internet.shared.connect(patientId: pateintId) { (status, message) in HMG_Internet.shared.connect(patientId: pateintId) { (status, message) in
@ -136,5 +138,5 @@ class HMGPlatformBridge{
HMG_Geofence.shared().unRegisterAll() HMG_Geofence.shared().unRegisterAll()
result(true) result(true)
} }
} }

@ -8,6 +8,7 @@
import UIKit import UIKit
import NetworkExtension import NetworkExtension
import SystemConfiguration.CaptiveNetwork import SystemConfiguration.CaptiveNetwork
import Flutter
fileprivate var openTok:OpenTok? fileprivate var openTok:OpenTok?

@ -1 +1,3 @@
#import "GeneratedPluginRegistrant.h" #import "GeneratedPluginRegistrant.h"
#import "VTBLEUtils.h"
#import "VTDevice.h"

@ -20,8 +20,8 @@ var PACKAGES_ORDERS = '/api/orders';
var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_ORDER_HISTORY = '/api/orders/items';
var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
// var BASE_URL = 'http://10.50.100.198:2018/'; // var BASE_URL = 'http://10.50.100.198:2018/';
var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://uat.hmgwebservices.com/';
// var BASE_URL = 'https://hmgwebservices.com/'; var BASE_URL = 'https://hmgwebservices.com/';
// var BASE_URL = 'https://orash.cloudsolutions.com.sa/'; // var BASE_URL = 'https://orash.cloudsolutions.com.sa/';
// var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/';

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:diplomaticquarterapp/viatom_ble/ble_connect.dart'; import 'package:diplomaticquarterapp/viatom_ble/ble_connect.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -26,13 +28,6 @@ class _Oxymeter_BLEState extends State<Oxymeter_BLE> {
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
eventChannel.receiveBroadcastStream().listen((event) {
print('Received event---: $event');
oxymeterValueNotifier.value = event;
// O2M response: RtParam{spo2=0, pr=0, steps=0, battery=72, batteryState=0, vector=0, pi=0.0, state=0, countDown=0, invalidIvState=0, spo2IvState=0, hrIvState=0, vectorIvState=0}
// POD-1W response: RtParam{spo2=98, pr=104, pi=5.8, isProbeOff=false, isPulseSearching=false}
});
} }
@override @override
@ -65,25 +60,32 @@ class _Oxymeter_BLEState extends State<Oxymeter_BLE> {
valueListenable: oxymeterValueNotifier, valueListenable: oxymeterValueNotifier,
builder: (context, value, _) { builder: (context, value, _) {
return value != "start" return value != "start"
? Column( ? Platform.isAndroid
children: [ ? Column(
Text( children: [
getSPO2( Text(
value.toString().replaceAll("RtParam", ""), getSPO2(
), value.toString().replaceAll("RtParam", ""),
), ),
Text( ),
getPR( Text(
value.toString().replaceAll("RtParam", ""), getPR(
), value.toString().replaceAll("RtParam", ""),
), ),
// Text( ),
// getPI( // Text(
// value.toString().replaceAll("RtParam", ""), // getPI(
// ), // value.toString().replaceAll("RtParam", ""),
// ), // ),
], // ),
) ],
)
: Column(
children: [
Text(getSPO2iOS(value.toString())),
Text(getPRiOS(value.toString())),
],
)
: Text(value); : Text(value);
}, },
), ),
@ -96,6 +98,15 @@ class _Oxymeter_BLEState extends State<Oxymeter_BLE> {
void checkBLEPermissions() async { void checkBLEPermissions() async {
[Permission.location, Permission.storage, Permission.bluetooth, Permission.bluetoothConnect, Permission.bluetoothScan].request().then((status) async { [Permission.location, Permission.storage, Permission.bluetooth, Permission.bluetoothConnect, Permission.bluetoothScan].request().then((status) async {
// startBLEConnection(); // startBLEConnection();
eventChannel.receiveBroadcastStream().listen((event) {
print('Received event---: $event');
oxymeterValueNotifier.value = event;
// O2M response: RtParam{spo2=0, pr=0, steps=0, battery=72, batteryState=0, vector=0, pi=0.0, state=0, countDown=0, invalidIvState=0, spo2IvState=0, hrIvState=0, vectorIvState=0}
// POD-1W response: RtParam{spo2=98, pr=104, pi=5.8, isProbeOff=false, isPulseSearching=false}
});
await BleChannel.getScanningResult("oximeter"); await BleChannel.getScanningResult("oximeter");
}); });
} }
@ -112,6 +123,14 @@ class _Oxymeter_BLEState extends State<Oxymeter_BLE> {
return "Perfusion Index: " + value.split(",")[2].replaceAll("pi=", "") + "%"; return "Perfusion Index: " + value.split(",")[2].replaceAll("pi=", "") + "%";
} }
String getSPO2iOS(String value) {
return "SpO2: " + value.split(",")[0];
}
String getPRiOS(String value) {
return "Pulse Rate: " + value.split(",")[1];
}
// List<String> setResult(String value) { // List<String> setResult(String value) {
// List<String> values = value.split(","); // List<String> values = value.split(",");
// //

Loading…
Cancel
Save