From 76f6b544b5645d078f57dd3eb5d904be6841056d Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Wed, 16 Jul 2025 23:17:22 +0530 Subject: [PATCH 1/9] ported sensors screen --- lib/main.dart | 2 + lib/view/instruments_screen.dart | 12 ++ lib/view/sensors_screen.dart | 219 +++++++++++++++++++++++++++++++ 3 files changed, 233 insertions(+) create mode 100644 lib/view/sensors_screen.dart diff --git a/lib/main.dart b/lib/main.dart index 6a7ac6458..be0aa94d2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -14,6 +14,7 @@ import 'package:pslab/view/luxmeter_screen.dart'; import 'package:pslab/view/multimeter_screen.dart'; import 'package:pslab/view/oscilloscope_screen.dart'; import 'package:pslab/view/robotic_arm_screen.dart'; +import 'package:pslab/view/sensors_screen.dart'; import 'package:pslab/view/settings_screen.dart'; import 'package:pslab/view/about_us_screen.dart'; import 'package:pslab/view/software_licenses_screen.dart'; @@ -71,6 +72,7 @@ class MyApp extends StatelessWidget { '/luxmeter': (context) => const LuxMeterScreen(), '/barometer': (context) => const BarometerScreen(), '/soundmeter': (context) => const SoundMeterScreen(), + '/sensors': (context) => const SensorsScreen() }, ); } diff --git a/lib/view/instruments_screen.dart b/lib/view/instruments_screen.dart index 57d5b7b66..4af45e9d1 100644 --- a/lib/view/instruments_screen.dart +++ b/lib/view/instruments_screen.dart @@ -57,6 +57,18 @@ class _InstrumentsScreenState extends State { ); } break; + case 3: + if (Navigator.canPop(context) && + ModalRoute.of(context)?.settings.name == '/sensors') { + Navigator.popUntil(context, ModalRoute.withName('/sensors')); + } else { + Navigator.pushNamedAndRemoveUntil( + context, + '/sensors', + (route) => route.isFirst, + ); + } + break; case 6: if (Navigator.canPop(context) && ModalRoute.of(context)?.settings.name == '/luxmeter') { diff --git a/lib/view/sensors_screen.dart b/lib/view/sensors_screen.dart new file mode 100644 index 000000000..e6843f072 --- /dev/null +++ b/lib/view/sensors_screen.dart @@ -0,0 +1,219 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:pslab/view/widgets/common_scaffold_widget.dart'; +import '../../providers/board_state_provider.dart'; +import '../theme/colors.dart'; + +class SensorsScreen extends StatefulWidget { + const SensorsScreen({super.key}); + + @override + State createState() => _SensorsScreenState(); +} + +class _SensorsScreenState extends State { + bool _hasScanned = false; + List _detectedSensors = []; + Map _sensorAddresses = {}; + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, boardProvider, child) { + return CommonScaffold( + title: 'Sensors', + onGuidePressed: () { + // TODO + }, + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + SizedBox( + width: double.infinity, + height: 50, + child: ElevatedButton( + onPressed: () { + _performAutoscan(boardProvider); + }, + style: ElevatedButton.styleFrom( + backgroundColor: primaryRed, + foregroundColor: Colors.white, + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(4), + ), + ), + child: const Text( + 'AUTOSCAN', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + const SizedBox(height: 20), + Container( + width: double.infinity, + padding: + const EdgeInsets.symmetric(vertical: 16, horizontal: 24), + decoration: BoxDecoration( + color: Colors.grey[100], + borderRadius: BorderRadius.circular(25), + border: Border.all( + color: Colors.grey[300]!, + width: 1, + ), + ), + child: Text( + _getStatusText(boardProvider), + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 16, + color: Colors.black87, + ), + ), + ), + if (_hasScanned) ...[ + const SizedBox(height: 30), + const Text( + 'SELECT SENSOR', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + const SizedBox(height: 20), + Expanded( + child: _buildSensorList(), + ), + ], + ], + ), + ), + ); + }, + ); + } + + String _getStatusText(BoardStateProvider boardProvider) { + if (!boardProvider.pslabIsConnected) { + return 'Not Connected'; + } + + if (!_hasScanned) { + return 'Use Autoscan button to find connected sensors to PSLab device'; + } + + if (_detectedSensors.isEmpty) { + return 'No sensors detected'; + } + + String result = ''; + for (String sensor in _detectedSensors) { + String address = _sensorAddresses[sensor] ?? ''; + result += '$address: [$sensor]\n'; + } + return result.trim(); + } + + void _performAutoscan(BoardStateProvider boardProvider) { + setState(() { + _hasScanned = true; + + if (boardProvider.pslabIsConnected) { + _detectedSensors = [ + 'HMC5883L', + 'VL53L0X', + 'TSL2561', + 'APDS9960', + 'SHT21', + 'ADS1115', + 'MLX90614', + 'CCS811', + 'MPU6050', + 'MPU925X', + 'BMP180', + ]; + _sensorAddresses = { + 'HMC5883L': '30', + 'VL53L0X': '41', + 'TSL2561': '57', + 'APDS9960': '57', + 'SHT21': '64', + 'ADS1115': '72', + 'MLX90614': '90', + 'CCS811': '90', + 'MPU6050': '104', + 'MPU925X': '105', + 'BMP180': '119', + }; + } else { + _detectedSensors = []; + _sensorAddresses = {}; + } + }); + } + + Widget _buildSensorList() { + final sensors = [ + 'ADS1115', + 'APDS9960', + 'BMP180', + 'CCS811', + 'HMC5883L', + 'MLX90614', + 'MPU6050', + 'MPU925X', + 'SHT21', + 'TSL2561', + 'VL53L0X', + ]; + + return ListView.builder( + itemCount: sensors.length, + itemBuilder: (context, index) { + final sensor = sensors[index]; + final isDetected = _detectedSensors.contains(sensor); + + return Container( + margin: const EdgeInsets.only(bottom: 1), + child: Material( + color: primaryRed, + child: InkWell( + onTap: () { + _onSensorTap(sensor); + }, + child: Container( + width: double.infinity, + padding: + const EdgeInsets.symmetric(vertical: 18, horizontal: 16), + decoration: BoxDecoration( + color: primaryRed, + border: isDetected + ? Border.all(color: Colors.white, width: 2) + : null, + ), + child: Text( + sensor, + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: isDetected ? FontWeight.w600 : FontWeight.w500, + ), + ), + ), + ), + ), + ); + }, + ); + } + + void _onSensorTap(String sensorName) { + // TODO + } +} From 18737ce7cb5267a54ea0520df7ad39a55cf855f5 Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sat, 2 Aug 2025 01:14:18 +0530 Subject: [PATCH 2/9] BMP180 sensor screen implementation --- assets/images/bmp180.jpg | Bin 0 -> 295051 bytes lib/communication/sensors/bmp180.dart | 257 ++++++++++++++++ lib/models/chart_data_points.dart | 42 +++ lib/providers/bmp180_provider.dart | 195 +++++++++++++ lib/view/sensors_screen.dart | 27 +- lib/view/widgets/bmp180_screen.dart | 307 +++++++++++++++++++ lib/view/widgets/sensor_chart_widget.dart | 340 ++++++++++++++++++++++ lib/view/widgets/sensor_controls.dart | 303 +++++++++++++++++++ 8 files changed, 1467 insertions(+), 4 deletions(-) create mode 100644 assets/images/bmp180.jpg create mode 100644 lib/communication/sensors/bmp180.dart create mode 100644 lib/models/chart_data_points.dart create mode 100644 lib/providers/bmp180_provider.dart create mode 100644 lib/view/widgets/bmp180_screen.dart create mode 100644 lib/view/widgets/sensor_chart_widget.dart create mode 100644 lib/view/widgets/sensor_controls.dart diff --git a/assets/images/bmp180.jpg b/assets/images/bmp180.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04d88c01f759ad7c7a7aa7a2c98426998a9d6aac GIT binary patch literal 295051 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�RjUA1_THP3KS^;Zx(mW`d0B*x5++xc(c7p^V`K;>QA2DF68Be{WexyP2+8muSJ!E zP4xWsR*5>SjT-e^WOAMs*&lb#me`+n&-|^jF0uLTu|Dsg`CG-$tUi^J8O7a7{Htt> zy4wSk)>5{}y2t0X#JjDrUbMEwdeX|tCrVplR@pCFTV%ayZJN$gOKjG1pV=?rvV^xP zm&vxwz1G_$>q~6=*XXUbYuEJ`?zYK#(%T<9?AaM5Sxqgm^S;X4W8d|EJ0v-->08Ci zy*^F6P`hJog3eRN)mwP6cl{N&i zyimJeWUbU#cOVZGH#Tf z3DRBGZ^3>YQnJ!0g`VOVM!{wC+x*xe>6>~)`G4Wtr`59fFS4qm_rmD&DtMs(02P

A~`xk>NT^IZPpXhD={);bzGXpR5``hvS5OaNh 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

6!* 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 ANzNwrKXY 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⁡XIt7?m{B251Zb z80W9PLTSM{ovI4^S&JF>XEB;oK)Mjk4{eG1>=<({jT8Z9el{r& zW<8Ul=j#!6K&^D?V(TqMWq2I~)INE?F%3t6@Mh2>HLse`6@3IGK^SBXdlube63WJ= z=H8Gf=ynh=1N)OsJp}bs{rM+tJadKcx zL^>;re>G!uVeWG2>{se&OqD57BN!EeaR|MbXahna7OWnkY`R&60qqKuOV(&<5AAO~K%zmK7DLG>51|5klmbM?4;}8FCD2q@pRXeIL3hz6v!`3`Jj2x8a;X zgl=fGs30icIh+La#8&LrObSWQ!@bd^|AP%FoUIgx!6UN%;qK6$h3ORc{ z0@?L7&?Wv96=1VMbZnpw<^|fS2^&ENhO(ShKDSs>b}WzXx}|_1t`#gGvYIA?w;4WT zkoaS;Z9gIzTJ^cmL`W3*HNRLgooHZ3NC6|qsmnphteT_%v-z-NR0S(F8W4?ENDF|I z)1tpGHG&Vpe#HL(T|f#A`YjHEn*{$V52zu~w{b;I0x78(iHTNf-(M7P_Z+ z9c)9a5F1I!;5&zivjD{!7~4UN=1o^6!izKoKCXdBz}5xK6*(2w7U@O3%c%-avw5hR z1gr`hPJ!{IQdF*l2E<4TMA+5>ji9yDCm-2{O0%kKBFRt{)XP{v6d0nY*gg+}nh<$} zYPa?gz?dQ|vQV*0Q3qX?m^R3S_)WyUn4!ho_jQpeGb)DxQKHrd@m@>{m7IA{uWfKJ{O%H6%LWU^>a$ZuRN4jNgVr~`foBX!2^?w=AfXUK0w|9 z=`uDo0BQ!IuQ(oz7B)!~P@gg~lOimPSV{I>Xz&T5tcW2$!CQgT35N;cN z2T!aT3o1)*K) zp8^ygDKQ2Z7)WG<-H1Of<`^FU{e$`hEg&fP#(oHz%#{_RCVb2R(gF%Z)Bx-HjJgUadeBwzZ;SN06Tz{!*A$Jx6)?8JPeM6ie_-XyDwx-anu?E*i zz>eGVdr?|u-kaOJ2sZ^%jTd4(ANPpWJ{tDZz`LKuX@J{B5E`=5B@XKYC7}66XzVGo z*-PAOX)VA+=tTPCus0*R}hD(EF2}&KHNB)@jWD<2b8vX)i?&>6~l!IeT@!nK6 zqNE{&=}+awHc5uRAfmo|{>!XpI}|8%2yoqF0SE+}R0bNpn7I-IrTy8w_ssc%Pl}K} z8K=L#Q_w#o82k5tkRl=g(tr(&`F^-;iJ@ycKeHL^KnaDpNrzYwb$V$$bNu;>)UMq> zrn&zBE_AOY^jCfR_mHd;)`3w;3&1(NSP@VGKB)Ew_hUJn1$l1UsQMkqiM6^^bQ7Pb z#ix>_^tZPB8prKJxmw-@=m*4P4t1XGCuW@b-cXY73*DiA1Kgf98*MEMUTuHh000OH zL3lAPm-2TBtV4rziql+qkc2dz>_-oI3vOLDf6QP&E*Ad)HxMFU-`v|;6Lb-Q}Kgnc!=JPyYad(EkAc E+14LLeE(); + + static const String tag = "BMP180"; + + static const int address = 0x77; + + static const int ultraLowPower = 0; + static const int standard = 1; + static const int highRes = 2; + static const int ultraHighRes = 3; + + static const int calAC1 = 0xAA; + static const int calAC2 = 0xAC; + static const int calAC3 = 0xAE; + static const int calAC4 = 0xB0; + static const int calAC5 = 0xB2; + static const int calAC6 = 0xB4; + static const int calB1 = 0xB6; + static const int calB2 = 0xB8; + static const int calMB = 0xBA; + static const int calMC = 0xBC; + static const int calMD = 0xBE; + static const int control = 0xF4; + static const int tempData = 0xF6; + static const int pressData = 0xF6; + + static const int readTempCmd = 0x2E; + static const int readPressureCmd = 0x34; + + int mode = highRes; + int oversampling = highRes; + + static const int numPlots = 3; + static const List plotNames = ["Temperature", "Pressure", "Altitude"]; + static const String name = "Altimeter BMP180"; + + final I2C i2c; + late int ac1, ac2, ac3, ac4, ac5, ac6, b1, b2, mb, mc, md; + double temperature = 0.0; + double pressure = 0.0; + + static const double seaLevelPressure = 101325.0; + + BMP180._(this.i2c); + bool _validateCalibrationValues() { + if (ac1 == 0 || ac2 == 0 || ac3 == 0 || ac4 == 0 || ac5 == 0 || ac6 == 0) { + return false; + } + if (ac1 < -32768 || ac1 > 32767) return false; + if (ac2 < -32768 || ac2 > 32767) return false; + if (ac3 < -32768 || ac3 > 32767) return false; + if (ac4 < 0 || ac4 > 65535) return false; + if (ac5 < 0 || ac5 > 65535) return false; + if (ac6 < 0 || ac6 > 65535) return false; + if (b1 < -32768 || b1 > 32767) return false; + if (b2 < -32768 || b2 > 32767) return false; + if (mb < -32768 || mb > 32767) return false; + if (mc < -32768 || mc > 32767) return false; + if (md < -32768 || md > 32767) return false; + return true; + } + + static Future create(I2C i2c, ScienceLab scienceLab) async { + final bmp180 = BMP180._(i2c); + await bmp180._initializeCalibrationValues(scienceLab); + if (!bmp180._validateCalibrationValues()) { + throw Exception('BMP180 calibration values are invalid or out of range.'); + } + return bmp180; + } + + Future _initializeCalibrationValues(ScienceLab scienceLab) async { + if (!scienceLab.isConnected()) { + throw Exception("ScienceLab not connected"); + } + + try { + ac1 = await readInt16(calAC1); + ac2 = await readInt16(calAC2); + ac3 = await readInt16(calAC3); + ac4 = await readUInt16(calAC4); + ac5 = await readUInt16(calAC5); + ac6 = await readUInt16(calAC6); + b1 = await readInt16(calB1); + b2 = await readInt16(calB2); + mb = await readInt16(calMB); + mc = await readInt16(calMC); + md = await readInt16(calMD); + + logger.d( + "Calibration values: [$ac1, $ac2, $ac3, $ac4, $ac5, $ac6, $b1, $b2, $mb, $mc, $md]"); + } catch (e) { + logger.e("Error initializing BMP180 calibration values: $e"); + rethrow; + } + } + + Future readInt16(int registerAddress) async { + try { + List data = await i2c.readBulk(address, registerAddress, 2); + if (data.length < 2) { + throw Exception( + "Expected 2 bytes but got ${data.length} from register $registerAddress"); + } + int value = ((data[0] & 0xFF) << 8) | (data[1] & 0xFF); + if (value >= 0x8000) value -= 0x10000; + return value; + } catch (e) { + logger.e("Error reading int16 from register $registerAddress: $e"); + rethrow; + } + } + + Future readUInt16(int registerAddress) async { + try { + List data = await i2c.readBulk(address, registerAddress, 2); + if (data.length < 2) { + throw Exception( + "Expected 2 bytes but got ${data.length} from register $registerAddress"); + } + return ((data[0] & 0xFF) << 8) | (data[1] & 0xFF); + } catch (e) { + logger.e("Error reading uint16 from register $registerAddress: $e"); + rethrow; + } + } + + Future readRawTemperature() async { + try { + await i2c.write(address, [readTempCmd], control); + await Future.delayed(const Duration(milliseconds: 5)); + int raw = await readUInt16(tempData); + return raw; + } catch (e) { + logger.e("Error reading raw temperature: $e"); + rethrow; + } + } + + Future readTemperature({int? rawTemp}) async { + try { + int ut = rawTemp ?? await readRawTemperature(); + + int x1 = ((ut - ac6) * ac5) >> 15; + int x2 = (mc << 11) ~/ (x1 + md); + int b5 = x1 + x2; + temperature = ((b5 + 8) >> 4) / 10.0; + + return temperature; + } catch (e) { + logger.e("Error reading temperature: $e"); + rethrow; + } + } + + void setOversampling(int num) { + oversampling = num; + } + + Future readRawPressure() async { + try { + List delays = [5, 8, 14, 26]; + int safeOversampling = oversampling.clamp(0, 3); + await i2c.write(address, [readPressureCmd + (mode << 6)], control); + await Future.delayed(Duration(milliseconds: delays[safeOversampling])); + + List data = await i2c.readBulk(address, pressData, 3); + if (data.length < 3) { + throw Exception( + "Expected 3 bytes but got ${data.length} from pressure data"); + } + int msb = data[0] & 0xFF; + int lsb = data[1] & 0xFF; + int xlsb = data[2] & 0xFF; + + return ((msb << 16) + (lsb << 8) + xlsb) >> (8 - mode); + } catch (e) { + logger.e("Error reading raw pressure: $e"); + rethrow; + } + } + + Future readPressure({int? rawTemp}) async { + try { + int ut = rawTemp ?? await readRawTemperature(); + int up = await readRawPressure(); + + int x1 = ((ut - ac6) * ac5) >> 15; + int x2 = (mc << 11) ~/ (x1 + md); + int b5 = x1 + x2; + + int b6 = b5 - 4000; + x1 = (b2 * (b6 * b6) >> 12) >> 11; + x2 = (ac2 * b6) >> 11; + int x3 = x1 + x2; + int b3 = (((ac1 * 4 + x3) << mode) + 2) ~/ 4; + + x1 = (ac3 * b6) >> 13; + x2 = (b1 * ((b6 * b6) >> 12)) >> 16; + x3 = ((x1 + x2) + 2) >> 2; + int b4 = (ac4 * (x3 + 32768)) >> 15; + int b7 = (up - b3) * (50000 >> mode); + + int p; + if (b7 < 0x80000000) { + p = (b7 * 2) ~/ b4; + } else { + p = (b7 ~/ b4) * 2; + } + + x1 = (p >> 8) * (p >> 8); + x1 = (x1 * 3038) >> 16; + x2 = (-7357 * p) >> 16; + pressure = (p + ((x1 + x2 + 3791) >> 4)).toDouble(); + + return pressure; + } catch (e) { + logger.e("Error reading pressure: $e"); + rethrow; + } + } + + double altitude() { + return 44330.0 * (1 - pow(pressure / seaLevelPressure, 1 / 5.255)); + } + + double seaLevel(double pressure, double altitude) { + return pressure / pow(1 - (altitude / 44330.0), 5.255); + } + + Future> getRawData() async { + try { + int rawTemp = await readRawTemperature(); + temperature = await readTemperature(rawTemp: rawTemp); + pressure = await readPressure(rawTemp: rawTemp); + double alt = altitude(); + + return { + 'temperature': temperature, + 'pressure': pressure, + 'altitude': alt, + }; + } catch (e) { + logger.e("Error getting raw data: $e"); + rethrow; + } + } +} diff --git a/lib/models/chart_data_points.dart b/lib/models/chart_data_points.dart new file mode 100644 index 000000000..0ff8e773c --- /dev/null +++ b/lib/models/chart_data_points.dart @@ -0,0 +1,42 @@ +class ChartDataPoint { + final double x; + final double y; + + ChartDataPoint(this.x, this.y); + + @override + String toString() => 'ChartDataPoint(x: $x, y: $y)'; + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + return other is ChartDataPoint && other.x == x && other.y == y; + } + + @override + int get hashCode => Object.hash(x, y); + + factory ChartDataPoint.fromMap(Map map) { + return ChartDataPoint( + map['x']?.toDouble() ?? 0.0, + map['y']?.toDouble() ?? 0.0, + ); + } + + Map toMap() { + return { + 'x': x, + 'y': y, + }; + } + + ChartDataPoint copyWith({ + double? x, + double? y, + }) { + return ChartDataPoint( + x ?? this.x, + y ?? this.y, + ); + } +} diff --git a/lib/providers/bmp180_provider.dart b/lib/providers/bmp180_provider.dart new file mode 100644 index 000000000..e1a7e5b4a --- /dev/null +++ b/lib/providers/bmp180_provider.dart @@ -0,0 +1,195 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:pslab/communication/peripherals/i2c.dart'; +import 'package:pslab/communication/science_lab.dart'; +import '../communication/sensors/bmp180.dart'; +import '../models/chart_data_points.dart'; +import 'package:pslab/others/logger_service.dart'; + +class BMP180Provider extends ChangeNotifier { + BMP180? _bmp180; + Timer? _dataTimer; + + double _temperature = 0.0; + double _pressure = 0.0; + double _altitude = 0.0; + + final List _temperatureData = []; + final List _pressureData = []; + final List _altitudeData = []; + + bool _isRunning = false; + bool _isLooping = false; + int _timegapMs = 1000; + int _numberOfReadings = 100; + int _collectedReadings = 0; + + double _currentTime = 0.0; + static const int maxDataPoints = 1000; + + double get temperature => _temperature; + double get pressure => _pressure; + double get altitude => _altitude; + + List get temperatureData => + List.unmodifiable(_temperatureData); + List get pressureData => List.unmodifiable(_pressureData); + List get altitudeData => List.unmodifiable(_altitudeData); + + bool get isRunning => _isRunning; + bool get isLooping => _isLooping; + int get timegapMs => _timegapMs; + int get numberOfReadings => _numberOfReadings; + int get collectedReadings => _collectedReadings; + + BMP180Provider(); + + Future initializeSensors({ + required Function(String) onError, + required I2C? i2c, + required ScienceLab? scienceLab, + }) async { + try { + if (i2c == null || scienceLab == null) { + onError('I2C or ScienceLab not available'); + return; + } + + if (!scienceLab.isConnected()) { + onError('ScienceLab not connected'); + return; + } + + _bmp180 = await BMP180.create(i2c, scienceLab); + notifyListeners(); + } catch (e) { + logger.e('Error initializing BMP180: $e'); + onError('Failed to initialize BMP180 sensor: $e'); + } + } + + void toggleDataCollection() { + if (_isRunning) { + _stopDataCollection(); + } else { + _startDataCollection(); + } + } + + void _startDataCollection() { + if (_bmp180 == null) return; + + _isRunning = true; + _collectedReadings = 0; + + _dataTimer = + Timer.periodic(Duration(milliseconds: _timegapMs), (timer) async { + try { + await _fetchSensorData(); + _collectedReadings++; + + if (!_isLooping && _collectedReadings >= _numberOfReadings) { + _stopDataCollection(); + } + + if (_isLooping && _temperatureData.length >= maxDataPoints) { + _removeOldestDataPoints(); + } + } catch (e) { + logger.e('Error fetching sensor data: $e'); + } + }); + notifyListeners(); + } + + void _stopDataCollection() { + _isRunning = false; + _dataTimer?.cancel(); + _dataTimer = null; + notifyListeners(); + } + + Future _fetchSensorData() async { + if (_bmp180 == null) return; + + try { + final rawData = await _bmp180!.getRawData(); + + _temperature = rawData['temperature'] ?? 0.0; + _pressure = rawData['pressure'] ?? 0.0; + _altitude = rawData['altitude'] ?? 0.0; + + _currentTime += _timegapMs / 1000.0; + + _addDataPoint(_temperatureData, _temperature); + _addDataPoint(_pressureData, _pressure); + _addDataPoint(_altitudeData, _altitude); + + notifyListeners(); + } catch (e) { + logger.e('Error in _fetchSensorData: $e'); + rethrow; + } + } + + void _addDataPoint(List dataList, double value) { + dataList.add(ChartDataPoint(_currentTime, value)); + if (dataList.length > 50) { + dataList.removeAt(0); + } + } + + void _removeOldestDataPoints() { + const keepPoints = 800; + + if (_temperatureData.length > keepPoints) { + final removeCount = _temperatureData.length - keepPoints; + _temperatureData.removeRange(0, removeCount); + _pressureData.removeRange(0, removeCount); + _altitudeData.removeRange(0, removeCount); + } + } + + void toggleLooping() { + _isLooping = !_isLooping; + notifyListeners(); + } + + void setTimegap(int timegapMs) { + _timegapMs = timegapMs; + + if (_isRunning) { + _stopDataCollection(); + _startDataCollection(); + } + + notifyListeners(); + } + + void setNumberOfReadings(int numberOfReadings) { + _numberOfReadings = numberOfReadings; + notifyListeners(); + } + + void clearData() { + _temperatureData.clear(); + _pressureData.clear(); + _altitudeData.clear(); + _pressure = 0; + _altitude = 0; + _temperature = 0; + _currentTime = 0.0; + _collectedReadings = 0; + notifyListeners(); + } + + bool get isCollectionComplete { + return !_isLooping && _collectedReadings >= _numberOfReadings; + } + + @override + void dispose() { + _stopDataCollection(); + super.dispose(); + } +} diff --git a/lib/view/sensors_screen.dart b/lib/view/sensors_screen.dart index e6843f072..196318db7 100644 --- a/lib/view/sensors_screen.dart +++ b/lib/view/sensors_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:pslab/view/widgets/bmp180_screen.dart'; import 'package:pslab/view/widgets/common_scaffold_widget.dart'; import '../../providers/board_state_provider.dart'; import '../theme/colors.dart'; @@ -22,9 +23,6 @@ class _SensorsScreenState extends State { builder: (context, boardProvider, child) { return CommonScaffold( title: 'Sensors', - onGuidePressed: () { - // TODO - }, body: Padding( padding: const EdgeInsets.all(16.0), child: Column( @@ -214,6 +212,27 @@ class _SensorsScreenState extends State { } void _onSensorTap(String sensorName) { - // TODO + Widget? targetScreen; + + switch (sensorName) { + case 'BMP180': + targetScreen = const BMP180Screen(); + break; + default: + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('$sensorName screen not implemented yet'), + duration: const Duration(seconds: 2), + ), + ); + return; + } + + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => targetScreen!, + ), + ); } } diff --git a/lib/view/widgets/bmp180_screen.dart b/lib/view/widgets/bmp180_screen.dart new file mode 100644 index 000000000..7ac619abb --- /dev/null +++ b/lib/view/widgets/bmp180_screen.dart @@ -0,0 +1,307 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:pslab/view/widgets/common_scaffold_widget.dart'; +import 'package:pslab/view/widgets/sensor_controls.dart'; +import 'package:pslab/communication/peripherals/i2c.dart'; +import 'package:pslab/communication/science_lab.dart'; +import 'package:pslab/providers/locator.dart'; +import 'package:pslab/others/logger_service.dart'; +import '../../theme/colors.dart'; +import '../widgets/sensor_chart_widget.dart'; +import '../../providers/bmp180_provider.dart'; + +class BMP180Screen extends StatefulWidget { + const BMP180Screen({super.key}); + + @override + State createState() => _BMP180ScreenState(); +} + +class _BMP180ScreenState extends State { + I2C? _i2c; + ScienceLab? _scienceLab; + late BMP180Provider _provider; + + @override + void initState() { + super.initState(); + _initializeScienceLab(); + } + + void _initializeScienceLab() async { + try { + _scienceLab = getIt.get(); + if (_scienceLab != null && _scienceLab!.isConnected()) { + _i2c = I2C(_scienceLab!.mPacketHandler); + } + } catch (e) { + logger.e('Error initializing ScienceLab: $e'); + } + } + + void _showSensorErrorSnackbar(String message) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + backgroundColor: Colors.red, + duration: const Duration(seconds: 4), + behavior: SnackBarBehavior.floating, + ), + ); + } + } + + void _showSuccessSnackbar(String message) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + backgroundColor: Colors.green, + duration: const Duration(seconds: 2), + behavior: SnackBarBehavior.floating, + ), + ); + } + } + + @override + Widget build(BuildContext context) { + return ChangeNotifierProvider( + create: (context) { + _provider = BMP180Provider() + ..initializeSensors( + onError: _showSensorErrorSnackbar, + i2c: _i2c, + scienceLab: _scienceLab, + ); + return _provider; + }, + child: Consumer( + builder: (context, provider, child) { + return CommonScaffold( + title: 'BMP180', + body: Column( + children: [ + Expanded( + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildRawDataSection(provider), + const SizedBox(height: 24), + SensorChartWidget( + title: 'Plot - Temperature', + yAxisLabel: 'Temp. (°C)', + data: provider.temperatureData, + lineColor: Colors.blue, + unit: '°C', + maxDataPoints: provider.numberOfReadings, + showDots: true, + ), + const SizedBox(height: 20), + SensorChartWidget( + title: 'Plot - Altitude', + yAxisLabel: 'Alt. (m)', + data: provider.altitudeData, + lineColor: Colors.green, + unit: 'm', + maxDataPoints: provider.numberOfReadings, + showDots: true, + ), + const SizedBox(height: 20), + SensorChartWidget( + title: 'Plot - Pressure', + yAxisLabel: 'Pressure (Pa)', + data: provider.pressureData, + lineColor: Colors.red, + unit: ' Pa', + maxDataPoints: provider.numberOfReadings, + showDots: true, + ), + const SizedBox(height: 100), + ], + ), + ), + ), + SensorControlsWidget( + isPlaying: provider.isRunning, + isLooping: provider.isLooping, + timegapMs: provider.timegapMs, + numberOfReadings: provider.numberOfReadings, + onPlayPause: () { + if (provider.isCollectionComplete && !provider.isRunning) { + _showSuccessSnackbar('Data collection completed!'); + } + provider.toggleDataCollection(); + }, + onLoop: provider.toggleLooping, + onTimegapChanged: provider.setTimegap, + onNumberOfReadingsChanged: provider.setNumberOfReadings, + onClearData: () { + provider.clearData(); + _showSuccessSnackbar('Data cleared successfully'); + }, + ), + ], + ), + ); + }, + ), + ); + } + + Widget _buildRawDataSection(BMP180Provider provider) { + return Container( + width: double.infinity, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.zero, + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(50), + blurRadius: 10, + offset: const Offset(0, 2), + ), + ], + ), + child: Column( + children: [ + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 20), + decoration: BoxDecoration( + color: primaryRed, + borderRadius: const BorderRadius.only( + topLeft: Radius.zero, + topRight: Radius.zero, + ), + ), + child: Row( + children: [ + const Text( + 'Raw Data', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ), + const Spacer(), + if (provider.isRunning) + Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.white, + shape: BoxShape.circle, + ), + ), + ], + ), + ), + Container( + width: double.infinity, + padding: const EdgeInsets.all(24), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + flex: 2, + child: Column( + children: [ + _buildDataCard( + 'Temperature', + provider.temperature.toStringAsFixed(2), + '°C', + ), + const SizedBox(height: 16), + _buildDataCard( + 'Altitude', + provider.altitude.toStringAsFixed(2), + 'm', + ), + const SizedBox(height: 16), + _buildDataCard( + 'Pressure', + provider.pressure.toStringAsFixed(0), + 'Pa', + ), + ], + ), + ), + const SizedBox(width: 24), + SizedBox( + width: 120, + height: 120, + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Image.asset( + 'assets/images/bmp180.jpg', + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + return Icon( + Icons.sensors, + size: 40, + color: Colors.grey.shade400, + ); + }, + ), + ), + ), + ], + ), + ), + ], + ), + ); + } + + Widget _buildDataCard(String label, String value, String unit) { + return Row( + children: [ + SizedBox( + width: 100, + child: Text( + label, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.black87, + ), + ), + ), + const SizedBox(width: 8), + Expanded( + flex: 3, + child: Container( + height: 36, + padding: const EdgeInsets.symmetric(horizontal: 12), + decoration: BoxDecoration( + border: Border.all(color: Colors.grey.shade400), + borderRadius: BorderRadius.circular(4), + color: Colors.white, + ), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + value, + style: const TextStyle( + fontSize: 14, + color: Colors.black87, + ), + ), + ), + ), + ), + ], + ); + } + + @override + void dispose() { + _provider.dispose(); + super.dispose(); + } +} diff --git a/lib/view/widgets/sensor_chart_widget.dart b/lib/view/widgets/sensor_chart_widget.dart new file mode 100644 index 000000000..145356114 --- /dev/null +++ b/lib/view/widgets/sensor_chart_widget.dart @@ -0,0 +1,340 @@ +import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; +import '../../models/chart_data_points.dart'; +import '../../theme/colors.dart'; + +class SensorChartWidget extends StatelessWidget { + final String title; + final String yAxisLabel; + final String? xAxisLabel; + final List data; + final Color lineColor; + final Color? backgroundColor; + final double? minY; + final double? maxY; + final double? minX; + final double? maxX; + final bool showGrid; + final bool showDots; + final bool isCurved; + final double lineWidth; + final String? unit; + final int? maxDataPoints; + final Widget? customNoDataWidget; + + const SensorChartWidget({ + super.key, + required this.title, + required this.yAxisLabel, + required this.data, + this.xAxisLabel = 'Time (sec)', + this.lineColor = Colors.blue, + this.backgroundColor, + this.minY, + this.maxY, + this.minX, + this.maxX, + this.showGrid = true, + this.showDots = false, + this.isCurved = true, + this.lineWidth = 2.0, + this.unit, + this.maxDataPoints, + this.customNoDataWidget, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + width: double.infinity, + child: Column( + children: [ + _buildHeader(), + _buildChart(), + ], + ), + ); + } + + Widget _buildHeader() { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16), + decoration: BoxDecoration( + color: primaryRed, + borderRadius: const BorderRadius.only( + topLeft: Radius.zero, + topRight: Radius.zero, + ), + ), + child: Row( + children: [ + Expanded( + child: Text( + title, + style: const TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ), + ); + } + + Widget _buildChart() { + return Container( + width: double.infinity, + height: 220, + decoration: BoxDecoration( + color: backgroundColor ?? Colors.black, + border: Border.all(color: Colors.grey.shade300), + borderRadius: const BorderRadius.only( + bottomLeft: Radius.zero, + bottomRight: Radius.zero, + ), + ), + child: data.isEmpty ? _buildNoDataView() : _buildLineChart(), + ); + } + + Widget _buildNoDataView() { + return Stack( + children: [ + _buildAxisLabels(), + Center( + child: customNoDataWidget ?? + const Text( + 'No Data Available', + style: TextStyle( + color: Colors.yellow, + fontSize: 14, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ); + } + + Widget _buildLineChart() { + return Stack( + children: [ + _buildAxisLabels(), + Padding( + padding: + const EdgeInsets.only(left: 50, right: 16, top: 16, bottom: 40), + child: LineChart( + LineChartData( + backgroundColor: Colors.transparent, + gridData: FlGridData( + show: showGrid, + drawVerticalLine: showGrid, + drawHorizontalLine: showGrid, + horizontalInterval: _calculateGridInterval(), + getDrawingHorizontalLine: (value) => FlLine( + color: Colors.grey.withAlpha(77), + strokeWidth: 0.8, + ), + getDrawingVerticalLine: (value) => FlLine( + color: Colors.grey.withAlpha(77), + strokeWidth: 0.8, + ), + ), + titlesData: FlTitlesData(show: false), + borderData: FlBorderData( + show: true, + border: Border.all( + color: Colors.grey.withAlpha(120), + width: 1, + ), + ), + minX: _getMinX(), + maxX: _getMaxX(), + minY: _getMinY(), + maxY: _getMaxY(), + lineBarsData: [ + LineChartBarData( + spots: data.map((point) => FlSpot(point.x, point.y)).toList(), + isCurved: isCurved, + color: lineColor, + barWidth: lineWidth, + isStrokeCapRound: true, + dotData: FlDotData( + show: showDots, + getDotPainter: (spot, percent, barData, index) { + return FlDotCirclePainter( + radius: 2, + color: lineColor, + strokeWidth: 1, + strokeColor: Colors.white, + ); + }, + ), + belowBarData: BarAreaData( + show: false, + color: lineColor.withAlpha(26), + ), + ), + ], + lineTouchData: LineTouchData( + enabled: true, + touchTooltipData: LineTouchTooltipData( + getTooltipItems: (touchedSpots) { + return touchedSpots.map((spot) { + return LineTooltipItem( + '$yAxisLabel: ${spot.y.toStringAsFixed(2)}${unit ?? ''}\n${xAxisLabel ?? 'Time'}: ${spot.x.toStringAsFixed(1)}', + const TextStyle( + color: Colors.white, + fontSize: 12, + fontWeight: FontWeight.w500, + ), + ); + }).toList(); + }, + ), + ), + ), + ), + ), + ], + ); + } + + Widget _buildAxisLabels() { + return Stack( + children: [ + Positioned( + bottom: 12, + right: 20, + child: Positioned( + bottom: 12, + left: 0, + right: 0, + child: Center( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), + decoration: BoxDecoration( + color: Colors.black.withAlpha(180), + borderRadius: BorderRadius.circular(4), + ), + child: Text( + xAxisLabel ?? 'Time (sec)', + style: const TextStyle( + color: Colors.white, + fontSize: 11, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ), + ), + Positioned( + left: 12, + top: 0, + bottom: 0, + child: Center( + child: RotatedBox( + quarterTurns: 3, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), + decoration: BoxDecoration( + color: Colors.black.withAlpha(180), + borderRadius: BorderRadius.circular(4), + ), + child: Text( + yAxisLabel, + style: const TextStyle( + color: Colors.white, + fontSize: 11, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ), + ), + if (data.isNotEmpty) + Positioned( + top: 12, + right: 20, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: lineColor.withAlpha(230), + borderRadius: BorderRadius.circular(6), + ), + child: Text( + '${data.last.y.toStringAsFixed(2)}${unit ?? ''}', + style: const TextStyle( + color: Colors.white, + fontSize: 12, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + ], + ); + } + + double _getMinX() { + if (minX != null) return minX!; + if (data.isEmpty) return 0; + return data.first.x; + } + + double _getMaxX() { + if (maxX != null) return maxX!; + if (data.isEmpty) return 10; + return data.last.x; + } + + double _getMinY() { + if (minY != null) return minY!; + if (data.isEmpty) return 0; + + final values = data.map((e) => e.y).toList(); + final dataMin = values.reduce((a, b) => a < b ? a : b); + final range = _getDataRange(); + return dataMin - (range * 0.1); + } + + double _getMaxY() { + if (maxY != null) return maxY!; + if (data.isEmpty) return 100; + + final values = data.map((e) => e.y).toList(); + final dataMax = values.reduce((a, b) => a > b ? a : b); + final range = _getDataRange(); + return dataMax + (range * 0.1); + } + + double _getDataRange() { + if (data.isEmpty) return 1; + + final values = data.map((e) => e.y).toList(); + final dataMin = values.reduce((a, b) => a < b ? a : b); + final dataMax = values.reduce((a, b) => a > b ? a : b); + final range = dataMax - dataMin; + + return range == 0 ? dataMax.abs() : range; + } + + double _calculateGridInterval() { + final range = _getMaxY() - _getMinY(); + if (range <= 0) return 1; + + final interval = range / 5; + + if (interval >= 1000) return (interval / 1000).ceilToDouble() * 1000; + if (interval >= 100) return (interval / 100).ceilToDouble() * 100; + if (interval >= 10) return (interval / 10).ceilToDouble() * 10; + if (interval >= 1) return interval.ceilToDouble(); + + return (interval * 10).ceilToDouble() / 10; + } +} diff --git a/lib/view/widgets/sensor_controls.dart b/lib/view/widgets/sensor_controls.dart new file mode 100644 index 000000000..0a57316dd --- /dev/null +++ b/lib/view/widgets/sensor_controls.dart @@ -0,0 +1,303 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import '../../theme/colors.dart'; + +class SensorControlsWidget extends StatefulWidget { + final bool isPlaying; + final bool isLooping; + final int timegapMs; + final int numberOfReadings; + final VoidCallback onPlayPause; + final VoidCallback onLoop; + final Function(int) onTimegapChanged; + final Function(int) onNumberOfReadingsChanged; + final VoidCallback? onClearData; + final VoidCallback? onReset; + + const SensorControlsWidget({ + super.key, + required this.isPlaying, + required this.isLooping, + required this.timegapMs, + required this.numberOfReadings, + required this.onPlayPause, + required this.onLoop, + required this.onTimegapChanged, + required this.onNumberOfReadingsChanged, + this.onClearData, + this.onReset, + }); + + @override + State createState() => _SensorControlsWidgetState(); +} + +class _SensorControlsWidgetState extends State { + late TextEditingController _numberController; + late FocusNode _textFieldFocusNode; + + @override + void initState() { + super.initState(); + _numberController = TextEditingController( + text: widget.numberOfReadings.toString(), + ); + _textFieldFocusNode = FocusNode(); + } + + @override + void didUpdateWidget(SensorControlsWidget oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.numberOfReadings != oldWidget.numberOfReadings) { + _numberController.text = widget.numberOfReadings.toString(); + } + } + + @override + void dispose() { + _numberController.dispose(); + _textFieldFocusNode.dispose(); + super.dispose(); + } + + void _onNumberChanged(String value) { + final number = int.tryParse(value); + if (number != null && number > 0) { + widget.onNumberOfReadingsChanged(number); + } + } + + void _onTextFieldSubmitted(String value) { + _textFieldFocusNode.unfocus(); + _onNumberChanged(value); + } + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border( + top: BorderSide(color: primaryRed, width: 3), + ), + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(16), + topRight: Radius.circular(16), + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(26), + blurRadius: 4, + offset: const Offset(0, -2), + ), + ], + ), + padding: const EdgeInsets.all(16), + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + children: [ + _buildPlayPauseButton(), + const SizedBox(width: 12), + Expanded( + child: _buildNumberOfReadingsField(), + ), + const SizedBox(width: 12), + _buildLoopButton(), + if (widget.onClearData != null || widget.onReset != null) ...[ + const SizedBox(width: 12), + _buildActionButtons(), + ], + ], + ), + const SizedBox(height: 16), + _buildTimegapSlider(), + ], + ), + ), + ); + } + + Widget _buildPlayPauseButton() { + return GestureDetector( + onTap: widget.onPlayPause, + child: Container( + width: 48, + height: 48, + decoration: BoxDecoration( + color: primaryRed, + shape: BoxShape.circle, + boxShadow: [ + BoxShadow( + color: primaryRed.withAlpha(80), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Icon( + widget.isPlaying ? Icons.pause : Icons.play_arrow, + color: Colors.white, + size: 24, + ), + ), + ); + } + + Widget _buildNumberOfReadingsField() { + return Container( + height: 40, + decoration: BoxDecoration( + border: Border.all(color: Colors.grey.shade400), + borderRadius: BorderRadius.circular(8), + color: Colors.white, + ), + child: TextField( + controller: _numberController, + focusNode: _textFieldFocusNode, + keyboardType: TextInputType.number, + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + LengthLimitingTextInputFormatter(4), + ], + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 14, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + decoration: const InputDecoration( + border: InputBorder.none, + contentPadding: EdgeInsets.symmetric(horizontal: 8, vertical: 8), + hintText: '100', + ), + onChanged: _onNumberChanged, + onSubmitted: _onTextFieldSubmitted, + ), + ); + } + + Widget _buildLoopButton() { + return GestureDetector( + onTap: widget.onLoop, + child: Container( + width: 48, + height: 48, + decoration: BoxDecoration( + color: + widget.isLooping ? primaryRed.withAlpha(26) : Colors.transparent, + border: Border.all( + color: widget.isLooping ? primaryRed : Colors.grey.shade400, + width: 2, + ), + borderRadius: BorderRadius.circular(8), + ), + child: Icon( + Icons.all_inclusive, + color: widget.isLooping ? primaryRed : Colors.grey.shade600, + size: 24, + ), + ), + ); + } + + Widget _buildActionButtons() { + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (widget.onClearData != null) + _buildActionButton( + icon: Icons.clear_all, + onTap: widget.onClearData!, + tooltip: 'Clear Data', + ), + ], + ); + } + + Widget _buildActionButton({ + required IconData icon, + required VoidCallback onTap, + required String tooltip, + }) { + return Tooltip( + message: tooltip, + child: GestureDetector( + onTap: onTap, + child: Container( + width: 36, + height: 36, + decoration: BoxDecoration( + color: Colors.grey.shade100, + borderRadius: BorderRadius.circular(6), + border: Border.all(color: Colors.grey.shade300), + ), + child: Icon( + icon, + color: Colors.grey.shade600, + size: 18, + ), + ), + ), + ); + } + + Widget _buildTimegapSlider() { + return Row( + children: [ + const Text( + 'Time gap', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.black87, + ), + ), + const SizedBox(width: 12), + Expanded( + child: SliderTheme( + data: SliderTheme.of(context).copyWith( + activeTrackColor: primaryRed, + inactiveTrackColor: Colors.grey.shade300, + thumbColor: primaryRed, + overlayColor: primaryRed.withAlpha(50), + thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 10), + trackHeight: 4, + valueIndicatorColor: primaryRed, + valueIndicatorTextStyle: const TextStyle( + color: Colors.white, + fontSize: 12, + ), + ), + child: Slider( + value: widget.timegapMs.toDouble(), + min: 200, + max: 1000, + divisions: 19, + label: '${widget.timegapMs}ms', + onChanged: (value) => widget.onTimegapChanged(value.toInt()), + ), + ), + ), + const SizedBox(width: 12), + Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: Colors.grey.shade100, + borderRadius: BorderRadius.circular(4), + ), + child: Text( + '${widget.timegapMs}ms', + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + ), + ], + ); + } +} From 10ab58dac139e98e56acfa67370b623d566409a4 Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sat, 2 Aug 2025 16:21:13 +0530 Subject: [PATCH 3/9] localized and small fixes --- lib/l10n/app_en.arb | 22 +++- lib/l10n/app_localizations.dart | 120 ++++++++++++++++++++++ lib/l10n/app_localizations_en.dart | 61 +++++++++++ lib/providers/bmp180_provider.dart | 8 +- lib/theme/colors.dart | 8 +- lib/view/sensors_screen.dart | 40 ++++---- lib/view/widgets/bmp180_screen.dart | 100 +++++++++--------- lib/view/widgets/sensor_chart_widget.dart | 41 ++++---- lib/view/widgets/sensor_controls.dart | 76 +++++++------- 9 files changed, 350 insertions(+), 126 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 4b36d9d80..fef4befe1 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -348,5 +348,25 @@ "accelerometerUpdatePeriodHint": "Please provide time interval at which data will be updated", "accelerometerHighLimitHint": "Please provide the maximum limit of lux value to be recorded", "roboticArmIntro": "• A robotic arm is a programmable mechanical device that mimics the movement of a human arm.\n• It uses servo motors to control its motion, and these motors are operated using PWM signals.\n• The PSLab provides four PWM square wave generators (SQ1, SQ2, SQ3, SQ4), allowing control of up to four servo motors and enabling a robotic arm with up to four degrees of freedom.", - "roboticArmConnection": "• In the above figure, SQ1 is connected to the signal pin of the first servo motor. The servo's GND pin is connected to both the PSLab’s GND and the external power supply GND, while the VCC pin is connected to the external power supply VCC.\n• Similarly, connect the remaining servos to SQ2, SQ3, and SQ4 along with their respective GND and power supply connections.\n• Once connected, each servo can be controlled using either circular sliders for manual control or a timeline-based sequence for automated movement." + "roboticArmConnection": "• In the above figure, SQ1 is connected to the signal pin of the first servo motor. The servo's GND pin is connected to both the PSLab’s GND and the external power supply GND, while the VCC pin is connected to the external power supply VCC.\n• Similarly, connect the remaining servos to SQ2, SQ3, and SQ4 along with their respective GND and power supply connections.\n• Once connected, each servo can be controlled using either circular sliders for manual control or a timeline-based sequence for automated movement.", + "autoscan" : "Autoscan", + "selectSensor" : "Select Sensor", + "notConnected" : "Not Connected", + "autoScanHint" : "Use Autoscan button to find connected sensors to PSLab device", + "noSensorDetected" : "No sensors detected", + "screenNotImplemented" : "screen not implemented yet", + "timeGap" : "Time gap", + "pslabNotConnected" : "PSLab not connected", + "clearData" : "Clear Data", + "numberOfSampes" : "No. of samples", + "pressure" : "Pressure", + "temperature" : "Temperature", + "bmp180" : "BMP180", + "plot" : "Plot", + "dataCleared" : "Data cleared successfully", + "rawData" : "Raw Data", + "pressureUnitLabel" : "Pa", + "temperatureUnitLabel" : "°C", + "altitudeUnitLabel" : "m", + "time" : "Time" } \ No newline at end of file diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 438081543..3ce7ba030 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -2187,6 +2187,126 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'• In the above figure, SQ1 is connected to the signal pin of the first servo motor. The servo\'s GND pin is connected to both the PSLab’s GND and the external power supply GND, while the VCC pin is connected to the external power supply VCC.\n• Similarly, connect the remaining servos to SQ2, SQ3, and SQ4 along with their respective GND and power supply connections.\n• Once connected, each servo can be controlled using either circular sliders for manual control or a timeline-based sequence for automated movement.'** String get roboticArmConnection; + + /// No description provided for @autoscan. + /// + /// In en, this message translates to: + /// **'Autoscan'** + String get autoscan; + + /// No description provided for @selectSensor. + /// + /// In en, this message translates to: + /// **'Select Sensor'** + String get selectSensor; + + /// No description provided for @notConnected. + /// + /// In en, this message translates to: + /// **'Not Connected'** + String get notConnected; + + /// No description provided for @autoScanHint. + /// + /// In en, this message translates to: + /// **'Use Autoscan button to find connected sensors to PSLab device'** + String get autoScanHint; + + /// No description provided for @noSensorDetected. + /// + /// In en, this message translates to: + /// **'No sensors detected'** + String get noSensorDetected; + + /// No description provided for @screenNotImplemented. + /// + /// In en, this message translates to: + /// **'screen not implemented yet'** + String get screenNotImplemented; + + /// No description provided for @timeGap. + /// + /// In en, this message translates to: + /// **'Time gap'** + String get timeGap; + + /// No description provided for @pslabNotConnected. + /// + /// In en, this message translates to: + /// **'PSLab not connected'** + String get pslabNotConnected; + + /// No description provided for @clearData. + /// + /// In en, this message translates to: + /// **'Clear Data'** + String get clearData; + + /// No description provided for @numberOfSampes. + /// + /// In en, this message translates to: + /// **'No. of samples'** + String get numberOfSampes; + + /// No description provided for @pressure. + /// + /// In en, this message translates to: + /// **'Pressure'** + String get pressure; + + /// No description provided for @temperature. + /// + /// In en, this message translates to: + /// **'Temperature'** + String get temperature; + + /// No description provided for @bmp180. + /// + /// In en, this message translates to: + /// **'BMP180'** + String get bmp180; + + /// No description provided for @plot. + /// + /// In en, this message translates to: + /// **'Plot'** + String get plot; + + /// No description provided for @dataCleared. + /// + /// In en, this message translates to: + /// **'Data cleared successfully'** + String get dataCleared; + + /// No description provided for @rawData. + /// + /// In en, this message translates to: + /// **'Raw Data'** + String get rawData; + + /// No description provided for @pressureUnitLabel. + /// + /// In en, this message translates to: + /// **'Pa'** + String get pressureUnitLabel; + + /// No description provided for @temperatureUnitLabel. + /// + /// In en, this message translates to: + /// **'°C'** + String get temperatureUnitLabel; + + /// No description provided for @altitudeUnitLabel. + /// + /// In en, this message translates to: + /// **'m'** + String get altitudeUnitLabel; + + /// No description provided for @time. + /// + /// In en, this message translates to: + /// **'Time'** + String get time; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index c114ad842..d6e8e3f50 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -1123,4 +1123,65 @@ class AppLocalizationsEn extends AppLocalizations { @override String get roboticArmConnection => '• In the above figure, SQ1 is connected to the signal pin of the first servo motor. The servo\'s GND pin is connected to both the PSLab’s GND and the external power supply GND, while the VCC pin is connected to the external power supply VCC.\n• Similarly, connect the remaining servos to SQ2, SQ3, and SQ4 along with their respective GND and power supply connections.\n• Once connected, each servo can be controlled using either circular sliders for manual control or a timeline-based sequence for automated movement.'; + + @override + String get autoscan => 'Autoscan'; + + @override + String get selectSensor => 'Select Sensor'; + + @override + String get notConnected => 'Not Connected'; + + @override + String get autoScanHint => + 'Use Autoscan button to find connected sensors to PSLab device'; + + @override + String get noSensorDetected => 'No sensors detected'; + + @override + String get screenNotImplemented => 'screen not implemented yet'; + + @override + String get timeGap => 'Time gap'; + + @override + String get pslabNotConnected => 'PSLab not connected'; + + @override + String get clearData => 'Clear Data'; + + @override + String get numberOfSampes => 'No. of samples'; + + @override + String get pressure => 'Pressure'; + + @override + String get temperature => 'Temperature'; + + @override + String get bmp180 => 'BMP180'; + + @override + String get plot => 'Plot'; + + @override + String get dataCleared => 'Data cleared successfully'; + + @override + String get rawData => 'Raw Data'; + + @override + String get pressureUnitLabel => 'Pa'; + + @override + String get temperatureUnitLabel => '°C'; + + @override + String get altitudeUnitLabel => 'm'; + + @override + String get time => 'Time'; } diff --git a/lib/providers/bmp180_provider.dart b/lib/providers/bmp180_provider.dart index e1a7e5b4a..0cd90a889 100644 --- a/lib/providers/bmp180_provider.dart +++ b/lib/providers/bmp180_provider.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:pslab/communication/peripherals/i2c.dart'; import 'package:pslab/communication/science_lab.dart'; +import 'package:pslab/view/about_us_screen.dart'; import '../communication/sensors/bmp180.dart'; import '../models/chart_data_points.dart'; import 'package:pslab/others/logger_service.dart'; @@ -51,12 +52,14 @@ class BMP180Provider extends ChangeNotifier { }) async { try { if (i2c == null || scienceLab == null) { - onError('I2C or ScienceLab not available'); + onError(appLocalizations.pslabNotConnected); + logger.w('I2C or ScienceLab not available'); return; } if (!scienceLab.isConnected()) { - onError('ScienceLab not connected'); + onError(appLocalizations.pslabNotConnected); + logger.w("Sciencelab not connected"); return; } @@ -64,7 +67,6 @@ class BMP180Provider extends ChangeNotifier { notifyListeners(); } catch (e) { logger.e('Error initializing BMP180: $e'); - onError('Failed to initialize BMP180 sensor: $e'); } } diff --git a/lib/theme/colors.dart b/lib/theme/colors.dart index 2af52f35e..93d36ee74 100644 --- a/lib/theme/colors.dart +++ b/lib/theme/colors.dart @@ -18,7 +18,7 @@ Color dividerColor = Colors.grey; Color usbConnectionColor = Colors.blueGrey[600]!; Color buttonForegroundColor = Colors.white; Color buttonTextColor = Colors.white; -Color chartLineColor = Colors.cyan; +const Color chartLineColor = Colors.cyan; Color chartBorderColor = Colors.white38; Color chartBackgroundColor = Colors.black; Color chartTextColor = Colors.white; @@ -78,3 +78,9 @@ Color logicAnalyzerTextColor = Colors.white; Color logicAnalyzerGraphTextColor = Colors.amber; Color powerSourceBorderLightRed = Color.fromARGB(255, 240, 162, 162); Color powerSourceKnobColor = Colors.grey.shade100; +Color sensorStatusBackgroundColor = Colors.grey[100]!; +Color senosrStatusBorder = Colors.grey[300]!; +Color sensorControlsTextBox = Colors.grey.shade400; +Color sensorControlIconColor = Colors.grey.shade600; +List bmp180ChartColors = [Colors.blue, Colors.green, Colors.red]; +Color chartHintTextColor = Colors.yellow; diff --git a/lib/view/sensors_screen.dart b/lib/view/sensors_screen.dart index 196318db7..868fbee70 100644 --- a/lib/view/sensors_screen.dart +++ b/lib/view/sensors_screen.dart @@ -3,6 +3,8 @@ import 'package:provider/provider.dart'; import 'package:pslab/view/widgets/bmp180_screen.dart'; import 'package:pslab/view/widgets/common_scaffold_widget.dart'; import '../../providers/board_state_provider.dart'; +import '../l10n/app_localizations.dart'; +import '../providers/locator.dart'; import '../theme/colors.dart'; class SensorsScreen extends StatefulWidget { @@ -13,6 +15,7 @@ class SensorsScreen extends StatefulWidget { } class _SensorsScreenState extends State { + AppLocalizations appLocalizations = getIt.get(); bool _hasScanned = false; List _detectedSensors = []; Map _sensorAddresses = {}; @@ -22,7 +25,7 @@ class _SensorsScreenState extends State { return Consumer( builder: (context, boardProvider, child) { return CommonScaffold( - title: 'Sensors', + title: appLocalizations.sensors, body: Padding( padding: const EdgeInsets.all(16.0), child: Column( @@ -36,14 +39,14 @@ class _SensorsScreenState extends State { }, style: ElevatedButton.styleFrom( backgroundColor: primaryRed, - foregroundColor: Colors.white, + foregroundColor: buttonTextColor, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(4), ), ), - child: const Text( - 'AUTOSCAN', + child: Text( + appLocalizations.autoscan.toUpperCase(), style: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, @@ -57,30 +60,30 @@ class _SensorsScreenState extends State { padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 24), decoration: BoxDecoration( - color: Colors.grey[100], + color: sensorStatusBackgroundColor, borderRadius: BorderRadius.circular(25), border: Border.all( - color: Colors.grey[300]!, + color: senosrStatusBorder, width: 1, ), ), child: Text( _getStatusText(boardProvider), textAlign: TextAlign.center, - style: const TextStyle( + style: TextStyle( fontSize: 16, - color: Colors.black87, + color: blackTextColor, ), ), ), if (_hasScanned) ...[ const SizedBox(height: 30), - const Text( - 'SELECT SENSOR', + Text( + appLocalizations.selectSensor.toUpperCase(), style: TextStyle( fontSize: 18, fontWeight: FontWeight.w600, - color: Colors.black87, + color: blackTextColor, ), ), const SizedBox(height: 20), @@ -98,15 +101,15 @@ class _SensorsScreenState extends State { String _getStatusText(BoardStateProvider boardProvider) { if (!boardProvider.pslabIsConnected) { - return 'Not Connected'; + return appLocalizations.notConnected; } if (!_hasScanned) { - return 'Use Autoscan button to find connected sensors to PSLab device'; + return appLocalizations.autoScanHint; } if (_detectedSensors.isEmpty) { - return 'No sensors detected'; + return appLocalizations.noSensorDetected; } String result = ''; @@ -191,14 +194,14 @@ class _SensorsScreenState extends State { decoration: BoxDecoration( color: primaryRed, border: isDetected - ? Border.all(color: Colors.white, width: 2) + ? Border.all(color: buttonTextColor, width: 2) : null, ), child: Text( sensor, textAlign: TextAlign.center, style: TextStyle( - color: Colors.white, + color: buttonTextColor, fontSize: 16, fontWeight: isDetected ? FontWeight.w600 : FontWeight.w500, ), @@ -221,8 +224,9 @@ class _SensorsScreenState extends State { default: ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('$sensorName screen not implemented yet'), - duration: const Duration(seconds: 2), + content: + Text('$sensorName ${appLocalizations.screenNotImplemented}'), + duration: const Duration(milliseconds: 500), ), ); return; diff --git a/lib/view/widgets/bmp180_screen.dart b/lib/view/widgets/bmp180_screen.dart index 7ac619abb..a466750c0 100644 --- a/lib/view/widgets/bmp180_screen.dart +++ b/lib/view/widgets/bmp180_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:pslab/view/about_us_screen.dart'; import 'package:pslab/view/widgets/common_scaffold_widget.dart'; import 'package:pslab/view/widgets/sensor_controls.dart'; import 'package:pslab/communication/peripherals/i2c.dart'; @@ -18,6 +19,7 @@ class BMP180Screen extends StatefulWidget { } class _BMP180ScreenState extends State { + String sensorImage = 'assets/images/bmp180.jpg'; I2C? _i2c; ScienceLab? _scienceLab; late BMP180Provider _provider; @@ -43,9 +45,12 @@ class _BMP180ScreenState extends State { if (mounted) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(message), - backgroundColor: Colors.red, - duration: const Duration(seconds: 4), + content: Text( + message, + style: TextStyle(color: snackBarContentColor), + ), + backgroundColor: snackBarBackgroundColor, + duration: const Duration(milliseconds: 500), behavior: SnackBarBehavior.floating, ), ); @@ -56,9 +61,12 @@ class _BMP180ScreenState extends State { if (mounted) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(message), - backgroundColor: Colors.green, - duration: const Duration(seconds: 2), + content: Text( + message, + style: TextStyle(color: snackBarContentColor), + ), + backgroundColor: snackBarBackgroundColor, + duration: const Duration(milliseconds: 500), behavior: SnackBarBehavior.floating, ), ); @@ -80,7 +88,7 @@ class _BMP180ScreenState extends State { child: Consumer( builder: (context, provider, child) { return CommonScaffold( - title: 'BMP180', + title: appLocalizations.bmp180, body: Column( children: [ Expanded( @@ -92,31 +100,37 @@ class _BMP180ScreenState extends State { _buildRawDataSection(provider), const SizedBox(height: 24), SensorChartWidget( - title: 'Plot - Temperature', - yAxisLabel: 'Temp. (°C)', + title: + '${appLocalizations.plot} - ${appLocalizations.temperature}', + yAxisLabel: + '${appLocalizations.temperature} (${appLocalizations.temperatureUnitLabel})', data: provider.temperatureData, - lineColor: Colors.blue, - unit: '°C', + lineColor: bmp180ChartColors[0], + unit: appLocalizations.temperatureUnitLabel, maxDataPoints: provider.numberOfReadings, showDots: true, ), const SizedBox(height: 20), SensorChartWidget( - title: 'Plot - Altitude', - yAxisLabel: 'Alt. (m)', + title: + '${appLocalizations.plot} - ${appLocalizations.altitudeLabel}', + yAxisLabel: + '${appLocalizations.altitudeLabel} (${appLocalizations.altitudeUnitLabel})', data: provider.altitudeData, - lineColor: Colors.green, - unit: 'm', + lineColor: bmp180ChartColors[1], + unit: appLocalizations.altitudeLabel, maxDataPoints: provider.numberOfReadings, showDots: true, ), const SizedBox(height: 20), SensorChartWidget( - title: 'Plot - Pressure', - yAxisLabel: 'Pressure (Pa)', + title: + '${appLocalizations.plot} - ${appLocalizations.pressure}', + yAxisLabel: + '${appLocalizations.pressure} (${appLocalizations.pressureUnitLabel})', data: provider.pressureData, - lineColor: Colors.red, - unit: ' Pa', + lineColor: bmp180ChartColors[2], + unit: appLocalizations.pressureUnitLabel, maxDataPoints: provider.numberOfReadings, showDots: true, ), @@ -131,9 +145,6 @@ class _BMP180ScreenState extends State { timegapMs: provider.timegapMs, numberOfReadings: provider.numberOfReadings, onPlayPause: () { - if (provider.isCollectionComplete && !provider.isRunning) { - _showSuccessSnackbar('Data collection completed!'); - } provider.toggleDataCollection(); }, onLoop: provider.toggleLooping, @@ -141,7 +152,7 @@ class _BMP180ScreenState extends State { onNumberOfReadingsChanged: provider.setNumberOfReadings, onClearData: () { provider.clearData(); - _showSuccessSnackbar('Data cleared successfully'); + _showSuccessSnackbar(appLocalizations.dataCleared); }, ), ], @@ -156,7 +167,7 @@ class _BMP180ScreenState extends State { return Container( width: double.infinity, decoration: BoxDecoration( - color: Colors.white, + color: cardBackgroundColor, borderRadius: BorderRadius.zero, boxShadow: [ BoxShadow( @@ -180,10 +191,10 @@ class _BMP180ScreenState extends State { ), child: Row( children: [ - const Text( - 'Raw Data', + Text( + appLocalizations.rawData, style: TextStyle( - color: Colors.white, + color: appBarContentColor, fontSize: 18, fontWeight: FontWeight.w600, ), @@ -193,8 +204,8 @@ class _BMP180ScreenState extends State { Container( width: 8, height: 8, - decoration: const BoxDecoration( - color: Colors.white, + decoration: BoxDecoration( + color: appBarContentColor, shape: BoxShape.circle, ), ), @@ -212,39 +223,36 @@ class _BMP180ScreenState extends State { child: Column( children: [ _buildDataCard( - 'Temperature', + appLocalizations.temperature, provider.temperature.toStringAsFixed(2), - '°C', ), const SizedBox(height: 16), _buildDataCard( - 'Altitude', + appLocalizations.altitudeLabel, provider.altitude.toStringAsFixed(2), - 'm', ), const SizedBox(height: 16), _buildDataCard( - 'Pressure', + appLocalizations.pressure, provider.pressure.toStringAsFixed(0), - 'Pa', ), ], ), ), const SizedBox(width: 24), SizedBox( - width: 120, - height: 120, + width: 100, + height: 100, child: ClipRRect( borderRadius: BorderRadius.circular(12), child: Image.asset( - 'assets/images/bmp180.jpg', + sensorImage, fit: BoxFit.cover, errorBuilder: (context, error, stackTrace) { return Icon( Icons.sensors, size: 40, - color: Colors.grey.shade400, + color: sensorControlsTextBox, ); }, ), @@ -258,17 +266,17 @@ class _BMP180ScreenState extends State { ); } - Widget _buildDataCard(String label, String value, String unit) { + Widget _buildDataCard(String label, String value) { return Row( children: [ SizedBox( width: 100, child: Text( label, - style: const TextStyle( + style: TextStyle( fontSize: 14, fontWeight: FontWeight.w500, - color: Colors.black87, + color: blackTextColor, ), ), ), @@ -279,17 +287,17 @@ class _BMP180ScreenState extends State { height: 36, padding: const EdgeInsets.symmetric(horizontal: 12), decoration: BoxDecoration( - border: Border.all(color: Colors.grey.shade400), + border: Border.all(color: sensorControlsTextBox), borderRadius: BorderRadius.circular(4), - color: Colors.white, + color: cardBackgroundColor, ), child: Align( alignment: Alignment.centerLeft, child: Text( value, - style: const TextStyle( + style: TextStyle( fontSize: 14, - color: Colors.black87, + color: blackTextColor, ), ), ), diff --git a/lib/view/widgets/sensor_chart_widget.dart b/lib/view/widgets/sensor_chart_widget.dart index 145356114..eeb82522f 100644 --- a/lib/view/widgets/sensor_chart_widget.dart +++ b/lib/view/widgets/sensor_chart_widget.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:fl_chart/fl_chart.dart'; +import 'package:pslab/view/about_us_screen.dart'; import '../../models/chart_data_points.dart'; import '../../theme/colors.dart'; @@ -27,8 +28,8 @@ class SensorChartWidget extends StatelessWidget { required this.title, required this.yAxisLabel, required this.data, - this.xAxisLabel = 'Time (sec)', - this.lineColor = Colors.blue, + this.xAxisLabel = 'Time (s)', + this.lineColor = chartLineColor, this.backgroundColor, this.minY, this.maxY, @@ -72,8 +73,8 @@ class SensorChartWidget extends StatelessWidget { Expanded( child: Text( title, - style: const TextStyle( - color: Colors.white, + style: TextStyle( + color: chartTextColor, fontSize: 16, fontWeight: FontWeight.w600, ), @@ -89,8 +90,8 @@ class SensorChartWidget extends StatelessWidget { width: double.infinity, height: 220, decoration: BoxDecoration( - color: backgroundColor ?? Colors.black, - border: Border.all(color: Colors.grey.shade300), + color: backgroundColor ?? chartBackgroundColor, + border: Border.all(color: chartTextColor), borderRadius: const BorderRadius.only( bottomLeft: Radius.zero, bottomRight: Radius.zero, @@ -106,10 +107,10 @@ class SensorChartWidget extends StatelessWidget { _buildAxisLabels(), Center( child: customNoDataWidget ?? - const Text( - 'No Data Available', + Text( + appLocalizations.noData, style: TextStyle( - color: Colors.yellow, + color: chartHintTextColor, fontSize: 14, fontWeight: FontWeight.w500, ), @@ -169,7 +170,7 @@ class SensorChartWidget extends StatelessWidget { radius: 2, color: lineColor, strokeWidth: 1, - strokeColor: Colors.white, + strokeColor: chartTextColor, ); }, ), @@ -185,9 +186,9 @@ class SensorChartWidget extends StatelessWidget { getTooltipItems: (touchedSpots) { return touchedSpots.map((spot) { return LineTooltipItem( - '$yAxisLabel: ${spot.y.toStringAsFixed(2)}${unit ?? ''}\n${xAxisLabel ?? 'Time'}: ${spot.x.toStringAsFixed(1)}', - const TextStyle( - color: Colors.white, + '$yAxisLabel: ${spot.y.toStringAsFixed(2)}${unit ?? ''}\n${appLocalizations.time}: ${spot.x.toStringAsFixed(1)}', + TextStyle( + color: chartTextColor, fontSize: 12, fontWeight: FontWeight.w500, ), @@ -221,9 +222,9 @@ class SensorChartWidget extends StatelessWidget { borderRadius: BorderRadius.circular(4), ), child: Text( - xAxisLabel ?? 'Time (sec)', - style: const TextStyle( - color: Colors.white, + appLocalizations.timeAxisLabel, + style: TextStyle( + color: chartTextColor, fontSize: 11, fontWeight: FontWeight.w500, ), @@ -247,8 +248,8 @@ class SensorChartWidget extends StatelessWidget { ), child: Text( yAxisLabel, - style: const TextStyle( - color: Colors.white, + style: TextStyle( + color: chartTextColor, fontSize: 11, fontWeight: FontWeight.w500, ), @@ -269,8 +270,8 @@ class SensorChartWidget extends StatelessWidget { ), child: Text( '${data.last.y.toStringAsFixed(2)}${unit ?? ''}', - style: const TextStyle( - color: Colors.white, + style: TextStyle( + color: chartTextColor, fontSize: 12, fontWeight: FontWeight.w600, ), diff --git a/lib/view/widgets/sensor_controls.dart b/lib/view/widgets/sensor_controls.dart index 0a57316dd..9cd8a4b5c 100644 --- a/lib/view/widgets/sensor_controls.dart +++ b/lib/view/widgets/sensor_controls.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:pslab/view/about_us_screen.dart'; import '../../theme/colors.dart'; class SensorControlsWidget extends StatefulWidget { @@ -76,13 +77,13 @@ class _SensorControlsWidgetState extends State { Widget build(BuildContext context) { return Container( decoration: BoxDecoration( - color: Colors.white, + color: cardBackgroundColor, border: Border( - top: BorderSide(color: primaryRed, width: 3), + top: BorderSide(color: primaryRed, width: 2), ), borderRadius: const BorderRadius.only( - topLeft: Radius.circular(16), - topRight: Radius.circular(16), + topLeft: Radius.zero, + topRight: Radius.zero, ), boxShadow: [ BoxShadow( @@ -139,7 +140,7 @@ class _SensorControlsWidgetState extends State { ), child: Icon( widget.isPlaying ? Icons.pause : Icons.play_arrow, - color: Colors.white, + color: buttonTextColor, size: 24, ), ), @@ -150,9 +151,9 @@ class _SensorControlsWidgetState extends State { return Container( height: 40, decoration: BoxDecoration( - border: Border.all(color: Colors.grey.shade400), + border: Border.all(color: sensorControlsTextBox), borderRadius: BorderRadius.circular(8), - color: Colors.white, + color: cardBackgroundColor, ), child: TextField( controller: _numberController, @@ -163,16 +164,18 @@ class _SensorControlsWidgetState extends State { LengthLimitingTextInputFormatter(4), ], textAlign: TextAlign.center, - style: const TextStyle( + style: TextStyle( fontSize: 14, - color: Colors.black87, + color: blackTextColor, fontWeight: FontWeight.w500, ), - decoration: const InputDecoration( + decoration: InputDecoration( border: InputBorder.none, - contentPadding: EdgeInsets.symmetric(horizontal: 8, vertical: 8), - hintText: '100', + contentPadding: + const EdgeInsets.symmetric(horizontal: 8, vertical: 8), + hintText: appLocalizations.numberOfSampes, ), + cursorColor: blackTextColor, onChanged: _onNumberChanged, onSubmitted: _onTextFieldSubmitted, ), @@ -183,21 +186,22 @@ class _SensorControlsWidgetState extends State { return GestureDetector( onTap: widget.onLoop, child: Container( - width: 48, - height: 48, + width: 36, + height: 36, decoration: BoxDecoration( - color: - widget.isLooping ? primaryRed.withAlpha(26) : Colors.transparent, + color: widget.isLooping + ? primaryRed.withAlpha(26) + : sensorStatusBackgroundColor, border: Border.all( - color: widget.isLooping ? primaryRed : Colors.grey.shade400, - width: 2, + color: widget.isLooping ? primaryRed : senosrStatusBorder, + width: 1, ), - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(6), ), child: Icon( Icons.all_inclusive, - color: widget.isLooping ? primaryRed : Colors.grey.shade600, - size: 24, + color: widget.isLooping ? primaryRed : sensorControlIconColor, + size: 18, ), ), ); @@ -211,7 +215,7 @@ class _SensorControlsWidgetState extends State { _buildActionButton( icon: Icons.clear_all, onTap: widget.onClearData!, - tooltip: 'Clear Data', + tooltip: appLocalizations.clearData, ), ], ); @@ -230,13 +234,13 @@ class _SensorControlsWidgetState extends State { width: 36, height: 36, decoration: BoxDecoration( - color: Colors.grey.shade100, + color: sensorStatusBackgroundColor, borderRadius: BorderRadius.circular(6), - border: Border.all(color: Colors.grey.shade300), + border: Border.all(color: senosrStatusBorder), ), child: Icon( icon, - color: Colors.grey.shade600, + color: sensorControlIconColor, size: 18, ), ), @@ -247,12 +251,12 @@ class _SensorControlsWidgetState extends State { Widget _buildTimegapSlider() { return Row( children: [ - const Text( - 'Time gap', + Text( + appLocalizations.timeGap, style: TextStyle( fontSize: 14, fontWeight: FontWeight.w500, - color: Colors.black87, + color: blackTextColor, ), ), const SizedBox(width: 12), @@ -260,14 +264,13 @@ class _SensorControlsWidgetState extends State { child: SliderTheme( data: SliderTheme.of(context).copyWith( activeTrackColor: primaryRed, - inactiveTrackColor: Colors.grey.shade300, + inactiveTrackColor: senosrStatusBorder, thumbColor: primaryRed, overlayColor: primaryRed.withAlpha(50), thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 10), - trackHeight: 4, + trackHeight: 2, valueIndicatorColor: primaryRed, valueIndicatorTextStyle: const TextStyle( - color: Colors.white, fontSize: 12, ), ), @@ -275,8 +278,7 @@ class _SensorControlsWidgetState extends State { value: widget.timegapMs.toDouble(), min: 200, max: 1000, - divisions: 19, - label: '${widget.timegapMs}ms', + label: '${widget.timegapMs}${appLocalizations.ms}', onChanged: (value) => widget.onTimegapChanged(value.toInt()), ), ), @@ -285,15 +287,15 @@ class _SensorControlsWidgetState extends State { Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), decoration: BoxDecoration( - color: Colors.grey.shade100, + color: sensorStatusBackgroundColor, borderRadius: BorderRadius.circular(4), ), child: Text( - '${widget.timegapMs}ms', - style: const TextStyle( + '${widget.timegapMs}${appLocalizations.ms}', + style: TextStyle( fontSize: 12, fontWeight: FontWeight.w600, - color: Colors.black87, + color: blackTextColor, ), ), ), From ce63b3ad1ef8d9827b0ec38d2f78f22be2d593f7 Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sat, 2 Aug 2025 17:34:09 +0530 Subject: [PATCH 4/9] handled NaN values which caused crashes --- lib/l10n/app_en.arb | 3 +- lib/l10n/app_localizations.dart | 6 ++ lib/l10n/app_localizations_en.dart | 3 + lib/view/widgets/bmp180_screen.dart | 5 +- lib/view/widgets/sensor_chart_widget.dart | 74 ++++++++++++++--------- 5 files changed, 59 insertions(+), 32 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index fef4befe1..bfcc8e996 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -368,5 +368,6 @@ "pressureUnitLabel" : "Pa", "temperatureUnitLabel" : "°C", "altitudeUnitLabel" : "m", - "time" : "Time" + "time" : "Time", + "notAvailable" : "N/A" } \ No newline at end of file diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 3ce7ba030..045a01e66 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -2307,6 +2307,12 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Time'** String get time; + + /// No description provided for @notAvailable. + /// + /// In en, this message translates to: + /// **'N/A'** + String get notAvailable; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index d6e8e3f50..6ec0df608 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -1184,4 +1184,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get time => 'Time'; + + @override + String get notAvailable => 'N/A'; } diff --git a/lib/view/widgets/bmp180_screen.dart b/lib/view/widgets/bmp180_screen.dart index a466750c0..49240338f 100644 --- a/lib/view/widgets/bmp180_screen.dart +++ b/lib/view/widgets/bmp180_screen.dart @@ -241,8 +241,8 @@ class _BMP180ScreenState extends State { ), const SizedBox(width: 24), SizedBox( - width: 100, - height: 100, + width: 80, + height: 80, child: ClipRRect( borderRadius: BorderRadius.circular(12), child: Image.asset( @@ -280,7 +280,6 @@ class _BMP180ScreenState extends State { ), ), ), - const SizedBox(width: 8), Expanded( flex: 3, child: Container( diff --git a/lib/view/widgets/sensor_chart_widget.dart b/lib/view/widgets/sensor_chart_widget.dart index eeb82522f..0e927d280 100644 --- a/lib/view/widgets/sensor_chart_widget.dart +++ b/lib/view/widgets/sensor_chart_widget.dart @@ -22,7 +22,6 @@ class SensorChartWidget extends StatelessWidget { final String? unit; final int? maxDataPoints; final Widget? customNoDataWidget; - const SensorChartWidget({ super.key, required this.title, @@ -43,6 +42,14 @@ class SensorChartWidget extends StatelessWidget { this.maxDataPoints, this.customNoDataWidget, }); + List get _validData { + return data.where((point) { + return point.x.isFinite && + point.y.isFinite && + !point.x.isNaN && + !point.y.isNaN; + }).toList(); + } @override Widget build(BuildContext context) { @@ -97,7 +104,7 @@ class SensorChartWidget extends StatelessWidget { bottomRight: Radius.zero, ), ), - child: data.isEmpty ? _buildNoDataView() : _buildLineChart(), + child: _validData.isEmpty ? _buildNoDataView() : _buildLineChart(), ); } @@ -121,6 +128,9 @@ class SensorChartWidget extends StatelessWidget { } Widget _buildLineChart() { + if (_validData.isEmpty) { + return _buildNoDataView(); + } return Stack( children: [ _buildAxisLabels(), @@ -158,7 +168,9 @@ class SensorChartWidget extends StatelessWidget { maxY: _getMaxY(), lineBarsData: [ LineChartBarData( - spots: data.map((point) => FlSpot(point.x, point.y)).toList(), + spots: _validData + .map((point) => FlSpot(point.x, point.y)) + .toList(), isCurved: isCurved, color: lineColor, barWidth: lineWidth, @@ -185,8 +197,14 @@ class SensorChartWidget extends StatelessWidget { touchTooltipData: LineTouchTooltipData( getTooltipItems: (touchedSpots) { return touchedSpots.map((spot) { + final yValue = spot.y.isFinite + ? spot.y.toStringAsFixed(2) + : appLocalizations.notAvailable; + final xValue = spot.x.isFinite + ? spot.x.toStringAsFixed(1) + : appLocalizations.notAvailable; return LineTooltipItem( - '$yAxisLabel: ${spot.y.toStringAsFixed(2)}${unit ?? ''}\n${appLocalizations.time}: ${spot.x.toStringAsFixed(1)}', + '$yAxisLabel: $yValue${unit ?? ''}\n${appLocalizations.time}: $xValue', TextStyle( color: chartTextColor, fontSize: 12, @@ -258,7 +276,7 @@ class SensorChartWidget extends StatelessWidget { ), ), ), - if (data.isNotEmpty) + if (_validData.isNotEmpty) Positioned( top: 12, right: 20, @@ -269,7 +287,7 @@ class SensorChartWidget extends StatelessWidget { borderRadius: BorderRadius.circular(6), ), child: Text( - '${data.last.y.toStringAsFixed(2)}${unit ?? ''}', + '${_validData.last.y.toStringAsFixed(2)}${unit ?? ''}', style: TextStyle( color: chartTextColor, fontSize: 12, @@ -284,58 +302,58 @@ class SensorChartWidget extends StatelessWidget { double _getMinX() { if (minX != null) return minX!; - if (data.isEmpty) return 0; - return data.first.x; + if (_validData.isEmpty) return 0; + return _validData.first.x; } double _getMaxX() { if (maxX != null) return maxX!; - if (data.isEmpty) return 10; - return data.last.x; + if (_validData.isEmpty) return 10; + return _validData.last.x; } double _getMinY() { if (minY != null) return minY!; - if (data.isEmpty) return 0; - - final values = data.map((e) => e.y).toList(); + if (_validData.isEmpty) return 0; + final values = _validData.map((e) => e.y).toList(); final dataMin = values.reduce((a, b) => a < b ? a : b); final range = _getDataRange(); - return dataMin - (range * 0.1); + final result = dataMin - (range * 0.1); + return result.isFinite ? result : 0; } double _getMaxY() { if (maxY != null) return maxY!; - if (data.isEmpty) return 100; - - final values = data.map((e) => e.y).toList(); + if (_validData.isEmpty) return 100; + final values = _validData.map((e) => e.y).toList(); final dataMax = values.reduce((a, b) => a > b ? a : b); final range = _getDataRange(); - return dataMax + (range * 0.1); + final result = dataMax + (range * 0.1); + return result.isFinite ? result : 100; } double _getDataRange() { - if (data.isEmpty) return 1; - - final values = data.map((e) => e.y).toList(); + if (_validData.isEmpty) return 1; + final values = _validData.map((e) => e.y).toList(); final dataMin = values.reduce((a, b) => a < b ? a : b); final dataMax = values.reduce((a, b) => a > b ? a : b); final range = dataMax - dataMin; - - return range == 0 ? dataMax.abs() : range; + if (!range.isFinite || range <= 0) { + return dataMax.abs().isFinite ? dataMax.abs() : 1; + } + return range; } double _calculateGridInterval() { final range = _getMaxY() - _getMinY(); - if (range <= 0) return 1; - + if (range <= 0 || !range.isFinite) return 1; final interval = range / 5; - + if (!interval.isFinite) return 1; if (interval >= 1000) return (interval / 1000).ceilToDouble() * 1000; if (interval >= 100) return (interval / 100).ceilToDouble() * 100; if (interval >= 10) return (interval / 10).ceilToDouble() * 10; if (interval >= 1) return interval.ceilToDouble(); - - return (interval * 10).ceilToDouble() / 10; + final result = (interval * 10).ceilToDouble() / 10; + return result.isFinite ? result : 1; } } From bb8f466e2aa3bb10e23de8d9d876bbde8676d46e Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sat, 2 Aug 2025 17:46:37 +0530 Subject: [PATCH 5/9] fixed typo --- lib/theme/colors.dart | 2 +- lib/view/sensors_screen.dart | 2 +- lib/view/widgets/sensor_controls.dart | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/theme/colors.dart b/lib/theme/colors.dart index 93d36ee74..b0f3db96c 100644 --- a/lib/theme/colors.dart +++ b/lib/theme/colors.dart @@ -79,7 +79,7 @@ Color logicAnalyzerGraphTextColor = Colors.amber; Color powerSourceBorderLightRed = Color.fromARGB(255, 240, 162, 162); Color powerSourceKnobColor = Colors.grey.shade100; Color sensorStatusBackgroundColor = Colors.grey[100]!; -Color senosrStatusBorder = Colors.grey[300]!; +Color sensorStatusBorder = Colors.grey[300]!; Color sensorControlsTextBox = Colors.grey.shade400; Color sensorControlIconColor = Colors.grey.shade600; List bmp180ChartColors = [Colors.blue, Colors.green, Colors.red]; diff --git a/lib/view/sensors_screen.dart b/lib/view/sensors_screen.dart index 868fbee70..7b250fcb2 100644 --- a/lib/view/sensors_screen.dart +++ b/lib/view/sensors_screen.dart @@ -63,7 +63,7 @@ class _SensorsScreenState extends State { color: sensorStatusBackgroundColor, borderRadius: BorderRadius.circular(25), border: Border.all( - color: senosrStatusBorder, + color: sensorStatusBorder, width: 1, ), ), diff --git a/lib/view/widgets/sensor_controls.dart b/lib/view/widgets/sensor_controls.dart index 9cd8a4b5c..fa14197ee 100644 --- a/lib/view/widgets/sensor_controls.dart +++ b/lib/view/widgets/sensor_controls.dart @@ -193,7 +193,7 @@ class _SensorControlsWidgetState extends State { ? primaryRed.withAlpha(26) : sensorStatusBackgroundColor, border: Border.all( - color: widget.isLooping ? primaryRed : senosrStatusBorder, + color: widget.isLooping ? primaryRed : sensorStatusBorder, width: 1, ), borderRadius: BorderRadius.circular(6), @@ -236,7 +236,7 @@ class _SensorControlsWidgetState extends State { decoration: BoxDecoration( color: sensorStatusBackgroundColor, borderRadius: BorderRadius.circular(6), - border: Border.all(color: senosrStatusBorder), + border: Border.all(color: sensorStatusBorder), ), child: Icon( icon, @@ -264,7 +264,7 @@ class _SensorControlsWidgetState extends State { child: SliderTheme( data: SliderTheme.of(context).copyWith( activeTrackColor: primaryRed, - inactiveTrackColor: senosrStatusBorder, + inactiveTrackColor: sensorStatusBorder, thumbColor: primaryRed, overlayColor: primaryRed.withAlpha(50), thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 10), From 4b0cd152a7f834fd97ba8286b4bf245e65cdb2ec Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sat, 2 Aug 2025 17:54:12 +0530 Subject: [PATCH 6/9] sourcery suggestion --- lib/view/widgets/sensor_chart_widget.dart | 34 ++++++++++------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/lib/view/widgets/sensor_chart_widget.dart b/lib/view/widgets/sensor_chart_widget.dart index 0e927d280..3a7e0d58d 100644 --- a/lib/view/widgets/sensor_chart_widget.dart +++ b/lib/view/widgets/sensor_chart_widget.dart @@ -227,25 +227,21 @@ class SensorChartWidget extends StatelessWidget { children: [ Positioned( bottom: 12, - right: 20, - child: Positioned( - bottom: 12, - left: 0, - right: 0, - child: Center( - child: Container( - padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), - decoration: BoxDecoration( - color: Colors.black.withAlpha(180), - borderRadius: BorderRadius.circular(4), - ), - child: Text( - appLocalizations.timeAxisLabel, - style: TextStyle( - color: chartTextColor, - fontSize: 11, - fontWeight: FontWeight.w500, - ), + left: 0, + right: 0, + child: Center( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), + decoration: BoxDecoration( + color: Colors.black.withAlpha(180), + borderRadius: BorderRadius.circular(4), + ), + child: Text( + appLocalizations.timeAxisLabel, + style: TextStyle( + color: chartTextColor, + fontSize: 11, + fontWeight: FontWeight.w500, ), ), ), From 0d2beda16f1138bb07951cf647ee54a4f407db5e Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sun, 10 Aug 2025 01:51:06 +0530 Subject: [PATCH 7/9] refactored and corrected wrong string --- lib/view/{widgets => }/bmp180_screen.dart | 8 ++++---- lib/view/sensors_screen.dart | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) rename lib/view/{widgets => }/bmp180_screen.dart (98%) diff --git a/lib/view/widgets/bmp180_screen.dart b/lib/view/bmp180_screen.dart similarity index 98% rename from lib/view/widgets/bmp180_screen.dart rename to lib/view/bmp180_screen.dart index 49240338f..837d0a365 100644 --- a/lib/view/widgets/bmp180_screen.dart +++ b/lib/view/bmp180_screen.dart @@ -7,9 +7,9 @@ import 'package:pslab/communication/peripherals/i2c.dart'; import 'package:pslab/communication/science_lab.dart'; import 'package:pslab/providers/locator.dart'; import 'package:pslab/others/logger_service.dart'; -import '../../theme/colors.dart'; -import '../widgets/sensor_chart_widget.dart'; -import '../../providers/bmp180_provider.dart'; +import '../theme/colors.dart'; +import 'widgets/sensor_chart_widget.dart'; +import '../providers/bmp180_provider.dart'; class BMP180Screen extends StatefulWidget { const BMP180Screen({super.key}); @@ -118,7 +118,7 @@ class _BMP180ScreenState extends State { '${appLocalizations.altitudeLabel} (${appLocalizations.altitudeUnitLabel})', data: provider.altitudeData, lineColor: bmp180ChartColors[1], - unit: appLocalizations.altitudeLabel, + unit: appLocalizations.altitudeUnitLabel, maxDataPoints: provider.numberOfReadings, showDots: true, ), diff --git a/lib/view/sensors_screen.dart b/lib/view/sensors_screen.dart index 7b250fcb2..2c4876fe4 100644 --- a/lib/view/sensors_screen.dart +++ b/lib/view/sensors_screen.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pslab/view/widgets/bmp180_screen.dart'; +import 'package:pslab/view/bmp180_screen.dart'; import 'package:pslab/view/widgets/common_scaffold_widget.dart'; import '../../providers/board_state_provider.dart'; import '../l10n/app_localizations.dart'; From 6e1319e0cab8c80b605f175d59ef70f5e685ac72 Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sun, 10 Aug 2025 14:43:35 +0530 Subject: [PATCH 8/9] small fixes in package import --- lib/providers/bmp180_provider.dart | 5 ++++- lib/view/bmp180_screen.dart | 3 ++- lib/view/widgets/sensor_chart_widget.dart | 5 ++++- lib/view/widgets/sensor_controls.dart | 5 ++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/providers/bmp180_provider.dart b/lib/providers/bmp180_provider.dart index 0cd90a889..dd4b5489a 100644 --- a/lib/providers/bmp180_provider.dart +++ b/lib/providers/bmp180_provider.dart @@ -2,12 +2,15 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:pslab/communication/peripherals/i2c.dart'; import 'package:pslab/communication/science_lab.dart'; -import 'package:pslab/view/about_us_screen.dart'; import '../communication/sensors/bmp180.dart'; +import '../l10n/app_localizations.dart'; import '../models/chart_data_points.dart'; import 'package:pslab/others/logger_service.dart'; +import 'locator.dart'; class BMP180Provider extends ChangeNotifier { + AppLocalizations appLocalizations = getIt.get(); + BMP180? _bmp180; Timer? _dataTimer; diff --git a/lib/view/bmp180_screen.dart b/lib/view/bmp180_screen.dart index 837d0a365..24f7ca799 100644 --- a/lib/view/bmp180_screen.dart +++ b/lib/view/bmp180_screen.dart @@ -1,12 +1,12 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:pslab/view/about_us_screen.dart'; import 'package:pslab/view/widgets/common_scaffold_widget.dart'; import 'package:pslab/view/widgets/sensor_controls.dart'; import 'package:pslab/communication/peripherals/i2c.dart'; import 'package:pslab/communication/science_lab.dart'; import 'package:pslab/providers/locator.dart'; import 'package:pslab/others/logger_service.dart'; +import '../l10n/app_localizations.dart'; import '../theme/colors.dart'; import 'widgets/sensor_chart_widget.dart'; import '../providers/bmp180_provider.dart'; @@ -19,6 +19,7 @@ class BMP180Screen extends StatefulWidget { } class _BMP180ScreenState extends State { + AppLocalizations appLocalizations = getIt.get(); String sensorImage = 'assets/images/bmp180.jpg'; I2C? _i2c; ScienceLab? _scienceLab; diff --git a/lib/view/widgets/sensor_chart_widget.dart b/lib/view/widgets/sensor_chart_widget.dart index 3a7e0d58d..c257100c7 100644 --- a/lib/view/widgets/sensor_chart_widget.dart +++ b/lib/view/widgets/sensor_chart_widget.dart @@ -1,9 +1,12 @@ import 'package:flutter/material.dart'; import 'package:fl_chart/fl_chart.dart'; -import 'package:pslab/view/about_us_screen.dart'; +import '../../l10n/app_localizations.dart'; import '../../models/chart_data_points.dart'; +import '../../providers/locator.dart'; import '../../theme/colors.dart'; +AppLocalizations appLocalizations = getIt.get(); + class SensorChartWidget extends StatelessWidget { final String title; final String yAxisLabel; diff --git a/lib/view/widgets/sensor_controls.dart b/lib/view/widgets/sensor_controls.dart index fa14197ee..51a763195 100644 --- a/lib/view/widgets/sensor_controls.dart +++ b/lib/view/widgets/sensor_controls.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:pslab/view/about_us_screen.dart'; +import '../../l10n/app_localizations.dart'; +import '../../providers/locator.dart'; import '../../theme/colors.dart'; +AppLocalizations appLocalizations = getIt.get(); + class SensorControlsWidget extends StatefulWidget { final bool isPlaying; final bool isLooping; From d28950f69b2f44e405bb05bd96789bce1643c8fe Mon Sep 17 00:00:00 2001 From: Yugesh-Kumar-S Date: Sun, 10 Aug 2025 15:02:49 +0530 Subject: [PATCH 9/9] altitude label changes --- lib/l10n/app_en.arb | 3 ++- lib/l10n/app_localizations.dart | 30 ++++++++++++++++++------------ lib/l10n/app_localizations_en.dart | 15 +++++++++------ lib/view/bmp180_screen.dart | 2 +- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index b5a99159f..134738cff 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -383,5 +383,6 @@ "temperatureUnitLabel" : "°C", "altitudeUnitLabel" : "m", "time" : "Time", - "notAvailable" : "N/A" + "notAvailable" : "N/A", + "estimated" : "Estimated" } \ No newline at end of file diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index d0ed2aad3..bb89af746 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -2050,6 +2050,18 @@ abstract class AppLocalizations { /// **'Are you sure you want to delete this file?'** String get deleteHint; + /// No description provided for @documentationLink. + /// + /// In en, this message translates to: + /// **'https://docs.pslab.io/'** + String get documentationLink; + + /// No description provided for @documentationError. + /// + /// In en, this message translates to: + /// **'Could not open the documentation link'** + String get documentationError; + /// No description provided for @deleteFile. /// /// In en, this message translates to: @@ -2248,18 +2260,6 @@ abstract class AppLocalizations { /// **'Please provide the maximum limit of lux value to be recorded'** String get accelerometerHighLimitHint; - /// No description provided for @documentationLink. - /// - /// In en, this message translates to: - /// **'https://docs.pslab.io/'** - String get documentationLink; - - /// No description provided for @documentationError. - /// - /// In en, this message translates to: - /// **'Could not open the documentation link'** - String get documentationError; - /// No description provided for @roboticArmIntro. /// /// In en, this message translates to: @@ -2397,6 +2397,12 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'N/A'** String get notAvailable; + + /// No description provided for @estimated. + /// + /// In en, this message translates to: + /// **'Estimated'** + String get estimated; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index b84dd2820..3aa1fa22a 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -1046,6 +1046,12 @@ class AppLocalizationsEn extends AppLocalizations { @override String get deleteHint => 'Are you sure you want to delete this file?'; + @override + String get documentationLink => 'https://docs.pslab.io/'; + + @override + String get documentationError => 'Could not open the documentation link'; + @override String get deleteFile => 'Delete File'; @@ -1152,12 +1158,6 @@ class AppLocalizationsEn extends AppLocalizations { String get accelerometerHighLimitHint => 'Please provide the maximum limit of lux value to be recorded'; - @override - String get documentationLink => 'https://docs.pslab.io/'; - - @override - String get documentationError => 'Could not open the documentation link'; - @override String get roboticArmIntro => '• A robotic arm is a programmable mechanical device that mimics the movement of a human arm.\n• It uses servo motors to control its motion, and these motors are operated using PWM signals.\n• The PSLab provides four PWM square wave generators (SQ1, SQ2, SQ3, SQ4), allowing control of up to four servo motors and enabling a robotic arm with up to four degrees of freedom.'; @@ -1229,4 +1229,7 @@ class AppLocalizationsEn extends AppLocalizations { @override String get notAvailable => 'N/A'; + + @override + String get estimated => 'Estimated'; } diff --git a/lib/view/bmp180_screen.dart b/lib/view/bmp180_screen.dart index 24f7ca799..835b247b5 100644 --- a/lib/view/bmp180_screen.dart +++ b/lib/view/bmp180_screen.dart @@ -114,7 +114,7 @@ class _BMP180ScreenState extends State { const SizedBox(height: 20), SensorChartWidget( title: - '${appLocalizations.plot} - ${appLocalizations.altitudeLabel}', + '${appLocalizations.plot} - ${appLocalizations.estimated} ${appLocalizations.altitudeLabel}', yAxisLabel: '${appLocalizations.altitudeLabel} (${appLocalizations.altitudeUnitLabel})', data: provider.altitudeData,