import 'package:ef/base/widget/flutterflow/FlutterFlowTheme.dart'; import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/component/tool/ClickableContainer.dart'; import 'package:vbvs_app/controller/theme_controller/ThemeController.dart'; import 'package:vbvs_app/model/BleDeviceData.dart'; import 'package:vbvs_app/pages/device_bind/blueteeth_device_page.dart'; import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart'; class SingleBlueteethDeviceCompoentWidget extends StatefulWidget { // final BleDeviceData device; final bleDevice; const SingleBlueteethDeviceCompoentWidget({ super.key, // required this.device, required this.bleDevice, }); @override State createState() => _SingleBlueteethDeviceCompoentWidgetState(); } class _SingleBlueteethDeviceCompoentWidgetState extends State { @override Widget build(BuildContext context) { var bleDevice = widget.bleDevice; List rawData = widget.bleDevice.advertisementData.manufacturerData[0xFFED]!; BleDeviceData deviceData = parseBleData(rawData); deviceData.name = widget.bleDevice.advertisementData.advName; deviceData.rssi = widget.bleDevice.rssi; deviceData.mac = deviceData.deviceId.replaceAll(':', ''); BleDeviceData device = deviceData; ThemeController themeController = Get.find(); return ClickableContainer( backgroundColor: themeController.currentColor.sc5, highlightColor: Colors.white, borderRadius: 20.rpx, padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 36.rpx, 0, 52.rpx), onTap: () async { //todo 请求绑定 print(device.mac); // try { // await bleDevice.device.connect(autoConnect: false); // List services = // await bleDevice.device.discoverServices(); // BluetoothCharacteristic? wifiListChar; // BluetoothCharacteristic? wifiSsidChar; // BluetoothCharacteristic? wifiPasswordChar; // BluetoothCharacteristic? startProvisionChar; // for (BluetoothService service in services) { // for (BluetoothCharacteristic c in service.characteristics) { // if (c.uuid.toString() == 'YOUR_WIFI_LIST_UUID') { // wifiListChar = c; // } else if (c.uuid.toString() == 'YOUR_WIFI_SSID_UUID') { // wifiSsidChar = c; // } else if (c.uuid.toString() == 'YOUR_WIFI_PWD_UUID') { // wifiPasswordChar = c; // } else if (c.uuid.toString() == 'YOUR_WIFI_START_UUID') { // startProvisionChar = c; // } // } // } // } catch (e) { // print("蓝牙连接失败"); // } // // Get.toNamed('/wifiPage', arguments: bleDevice.device); showBindDoubleDialog(context,[]); // showHaveBindDialog(context); }, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [ Text( device.name ?? '蓝牙绑定.默认设备名称'.tr, style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFF6FAFD), fontSize: 30.rpx, letterSpacing: 0.0, ), ), Row( children: [ Text( "蓝牙绑定.信号强度".tr + ':${device.rssi ?? '-'}dBm', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFEBF2F8), fontSize: 26.rpx, letterSpacing: 0.0, ), ), SizedBox(width: 40.rpx), Text( "蓝牙绑定.SN".tr + ':${device.sn ?? '-'}', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFF5F9FD), fontSize: 26.rpx, letterSpacing: 0.0, ), ), ], ), Text( "蓝牙绑定.蓝牙地址".tr + ':${device.deviceId ?? '-'}', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFF6FAFD), fontSize: 26.rpx, letterSpacing: 0.0, ), ), Text( "蓝牙绑定.mac".tr + ':${device.mac ?? '-'}', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFF6FAFD), fontSize: 26.rpx, letterSpacing: 0.0, ), ), Row( children: [ Text( "蓝牙绑定.网络".tr + ':${device.isOnline == true ? '蓝牙绑定.在线'.tr : '蓝牙绑定.离线'.tr}', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFEBF2F8), fontSize: 26.rpx, letterSpacing: 0.0, ), ), SizedBox(width: 145.rpx), Row( children: [ Text( "蓝牙绑定.传感器".tr + ":", style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFEBF2F8), fontSize: 26.rpx, letterSpacing: 0.0, ), ), Text( device.status == 1 ? '蓝牙绑定.可绑定'.tr : '蓝牙绑定.已被绑定'.tr, style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFF1AD2B5), fontSize: 26.rpx, letterSpacing: 0.0, ), ), ], ), ], ), Text( '版本:${device.version ?? '-'}', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Inter', color: const Color(0xFFF6FAFD), fontSize: 26.rpx, letterSpacing: 0.0, ), ), ].divide(SizedBox(height: 37.rpx)), ), ); } }