mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-11-27 20:24:55 +00:00
refactor code and implement CeilingSensor taps
This commit is contained in:
@ -7,13 +7,19 @@ class CeilingSensorModel {
|
||||
int presenceRange;
|
||||
int sportsPara;
|
||||
String bodyMovement;
|
||||
String nobodyTime;
|
||||
int movingMaxDis;
|
||||
SpaceTypes spaceType;
|
||||
|
||||
CeilingSensorModel(
|
||||
{required this.presenceState,
|
||||
required this.sensitivity,
|
||||
required this.nobodyTime,
|
||||
required this.spaceType,
|
||||
required this.checkingResult,
|
||||
required this.presenceRange,
|
||||
required this.sportsPara,
|
||||
required this.movingMaxDis,
|
||||
required this.bodyMovement});
|
||||
|
||||
factory CeilingSensorModel.fromJson(List<StatusModel> jsonList) {
|
||||
@ -22,8 +28,10 @@ class CeilingSensorModel {
|
||||
late String _checkingResult;
|
||||
int _presenceRange = 1;
|
||||
int _sportsPara = 1;
|
||||
int _moving_max_dis = 0;
|
||||
String _bodyMovement = 'none';
|
||||
|
||||
String _nobody_time = 'none';
|
||||
SpaceTypes _spaceType = SpaceTypes.none;
|
||||
for (int i = 0; i < jsonList.length; i++) {
|
||||
if (jsonList[i].code == 'presence_state') {
|
||||
_presenceState = jsonList[i].value ?? 'none';
|
||||
@ -37,14 +45,46 @@ class CeilingSensorModel {
|
||||
_sportsPara = jsonList[i].value ?? 0;
|
||||
} else if (jsonList[i].code == 'body_movement') {
|
||||
_bodyMovement = jsonList[i].value ?? '';
|
||||
}
|
||||
} else if (jsonList[i].code == 'nobody_time') {
|
||||
_nobody_time = jsonList[i].value ?? 'none';
|
||||
} else if (jsonList[i].code == 'moving_max_dis') {
|
||||
_moving_max_dis = jsonList[i].value ?? 0;
|
||||
} else if (jsonList[i].code == 'scene')
|
||||
_spaceType = getSpaceType(jsonList[i].value ?? 'none');
|
||||
}
|
||||
return CeilingSensorModel(
|
||||
spaceType: _spaceType,
|
||||
movingMaxDis: _moving_max_dis,
|
||||
presenceState: _presenceState,
|
||||
sensitivity: _sensitivity,
|
||||
checkingResult: _checkingResult,
|
||||
presenceRange: _presenceRange,
|
||||
sportsPara: _sportsPara,
|
||||
nobodyTime: _nobody_time,
|
||||
bodyMovement: _bodyMovement);
|
||||
}
|
||||
}
|
||||
|
||||
enum SpaceTypes {
|
||||
none,
|
||||
parlour,
|
||||
area,
|
||||
toilet,
|
||||
bedroom,
|
||||
}
|
||||
|
||||
SpaceTypes getSpaceType(String value) {
|
||||
switch (value) {
|
||||
case 'parlour':
|
||||
return SpaceTypes.parlour;
|
||||
case 'area':
|
||||
return SpaceTypes.area;
|
||||
case 'toilet':
|
||||
return SpaceTypes.toilet;
|
||||
case 'bedroom':
|
||||
return SpaceTypes.bedroom;
|
||||
case 'none':
|
||||
default:
|
||||
return SpaceTypes.none;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user