Revert "-- P cmd revised, still no good heart beat timer"
This reverts commit ac5101e2ca
.
This commit is contained in:
parent
45a4d6c75f
commit
19c700ec23
|
@ -6,7 +6,6 @@
|
|||
// for Yunhorn SmarToilets STS-O7 Occupancy/Fall Detection/Over stay sensor
|
||||
function Decode(fPort, data, variables) {
|
||||
var data = {};
|
||||
data.length = bytes.length;
|
||||
if ((fPort === 10)) { // STS_O2_O6 V3 version 2023,pixel-network version
|
||||
switch (bytes[0]) {
|
||||
case 0x00:
|
||||
|
@ -176,7 +175,7 @@ function Decode(fPort, data, variables) {
|
|||
data.Sensor2_Emergency_Button = bytes[4] === 0 ? "Alarm Push Down" : "No Alarm, Released";
|
||||
data.Sensor3_Motion_Detected = bytes[5] === 0 ? "No Motion" : "Motion Detected";
|
||||
|
||||
data.length = bytes.length;
|
||||
data.length = bytes.length
|
||||
if (data.length === 9) {
|
||||
data.Over_stay_state = (bytes[6] === 0) ? "False" : "True";
|
||||
data.Over_Stay_duration_in_Seconds = (bytes[7] << 8 | bytes[8]);
|
||||
|
@ -381,59 +380,6 @@ function Decode(fPort, data, variables) {
|
|||
data.LocalTime_EST8 = "GMT+8: " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + (data.L_hour + 8) + ":" + data.L_min + ":" + data.L_sec;
|
||||
}
|
||||
}
|
||||
else if (bytes[0] === 0x50) { // P cmd report
|
||||
if (data.length == 7) {
|
||||
switch (bytes[3]) {
|
||||
case 0x46: // F --- fall down & unconscious detection threshold
|
||||
data.FALL_acceleration = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30) * 10) + " mg/s2");
|
||||
data.FALL_depth_measure = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " cm");
|
||||
data.FALL_confirm_threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " seconds");
|
||||
//data.FALL_reserved = (bytes[7]==0x0?"Disabled":((bytes[6]-0x30)*10)+" min");
|
||||
break;
|
||||
} //switch
|
||||
}
|
||||
else if (data.length == 8) {
|
||||
switch (bytes[3]) {
|
||||
case 0x4f: // O -- over stay, onconscious, long stay
|
||||
data.OMU_Motionless_duration_in_min = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30)) + " Min");
|
||||
data.OMU_Long_Occupy_duration_in_Min = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " Min");
|
||||
data.OMU_Unconcious_Threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 100) + "ml");
|
||||
data.OMU_Alarm_Mute_Reset_Timer = (bytes[7] == 0x30 ? "Disabled" : ((bytes[7] - 0x30) * 10) + " Seconds");
|
||||
break;
|
||||
case 0x46: // F --- fall down & unconscious detection threshold
|
||||
data.FALL_acceleration = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30) * 10) + " mg/s2");
|
||||
data.FALL_depth_measure = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " cm");
|
||||
data.FALL_confirm_threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " seconds");
|
||||
data.FALL_reserved = (bytes[7] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " min");
|
||||
break;
|
||||
} //switch
|
||||
} else if (data.length == 11) { // P 1108201365
|
||||
data.RSS_SIMPLE_Start = ((bytes[3] - 0x30) * 100 + (bytes[4] - 0x30) * 10) + " cm";
|
||||
data.RSS_SIMPLE_Length = ((bytes[5] - 0x30) * 100 + (bytes[6] - 0x030) * 10) + " cm";
|
||||
data.RSS_SIMPLE_Threshold = ((bytes[7] - 0x30) * 1000 + (bytes[8] - 0x30) * 100) + " ml";
|
||||
data.RSS_SIMPLE_Gain = ((bytes[9] - 0x30) * 10 + (bytes[10] - 0x30)) + " %";
|
||||
} else if (data.length == 33) { // P 11
|
||||
data.RSS_FULL_Start = ((bytes[3] - 0x30) * 100 + (bytes[4] - 0x30) * 10) + " cm";
|
||||
data.RSS_FULL_Length = ((bytes[5] - 0x30) * 100 + (bytes[6] - 0x30) * 10) + " cm";
|
||||
data.RSS_FULL_Threshold = ((bytes[7] - 0x30) * 1000 + (bytes[8] - 0x30) * 100) + " ml";
|
||||
data.RSS_FULL_Gain = ((bytes[9] - 0x30) * 10 + (bytes[10] - 0x30)) + " %";
|
||||
data.RSS_FULL_Profile = (bytes[11] - 0x30);
|
||||
data.RSS_FULL_Rate_Tracking = ((bytes[12] - 0x30) * 10 + (bytes[13] - 0x30));
|
||||
data.RSS_FULL_Rate_Presence = ((bytes[14] - 0x30) * 10 + (bytes[15] - 0x30));
|
||||
data.RSS_FULL_HWAAS = ((bytes[16] - 0x30) * 10 + (bytes[17] - 0x30));
|
||||
data.RSS_FULL_Num_Removed_PC = (bytes[18] - 0x30);
|
||||
data.RSS_FULL_Inter_Deviation_Time_Const_in_Sec = ((bytes[19] - 0x30) + (bytes[20] - 0x30) * 0.1);
|
||||
data.RSS_FULL_Inter_Fast_Cut_Off = ((bytes[21] - 0x30) * 10 + (bytes[22] - 0x30));
|
||||
data.RSS_FULL_Inter_Slow_Cut_Off = ((bytes[23] - 0x30) * 0.1 + (bytes[24] - 0x30) * 0.001);
|
||||
data.RSS_FULL_Inter_Time_Const_in_Sec = ((bytes[25] - 0x30) * 10 + (bytes[26] - 0x30));
|
||||
data.RSS_FULL_Inter_Weight = ((bytes[27] - 0x30) + (bytes[28] - 0x30) * 0.1);
|
||||
data.RSS_FULL_Output_Time_Const_in_Sec = ((bytes[29] - 0x30) + (bytes[30] - 0x30) * 0.1);
|
||||
data.RSS_FULL_DownSampling_factor = (bytes[31] - 0x30);
|
||||
data.RSS_FULL_Power_Saving_mode = (bytes[32] - 0x30);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
return { "Yunhorn_SmarToilets_data": data };
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2278,28 +2278,31 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
OnStoreSTSCFGContextRequest();
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
// 2024-07-31
|
||||
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size);
|
||||
i = tlv_buf_size;
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5];
|
||||
|
||||
STS_Combined_Status_Processing();
|
||||
|
||||
} else if (tlv_buf_size == 7 && tlv_buf[CFG_CMD4]=='F') // Change fall detection
|
||||
} else if (tlv_buf_size == 8 && tlv_buf[CFG_CMD4]=='F') // Change fall detection
|
||||
{
|
||||
invalid_flag = 0; // P 1 1 F A D C T
|
||||
invalid_flag = 0; // P 1 1 F A B C D
|
||||
if (((tlv_buf[CFG_CMD5] >='0') && (tlv_buf[CFG_CMD5]<='9')) && ((tlv_buf[CFG_CMD6]<='9') && (tlv_buf[CFG_CMD6]>='0'))
|
||||
&& ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0')))
|
||||
&& ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0'))&& ((tlv_buf[CFG_CMD8]<='9') && (tlv_buf[CFG_CMD8]>='0')))
|
||||
{
|
||||
sts_fall_detection_acc_threshold = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30)*10; //A: acc *10 mg/s2
|
||||
sts_fall_detection_depth_threshold = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30)*10; //D: depth *10 in cm
|
||||
sts_fall_confirm_threshold_in_10sec = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30)*10; //C: fall_confirm_threshold_in_10sec
|
||||
sts_fall_detection_acc_threshold = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30)*10; //acc *10 mg/s2
|
||||
sts_fall_detection_depth_threshold = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30)*10; //depth *10 in cm
|
||||
sts_fall_confirm_threshold_in_10sec = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+1)*128; //fall_confirm_threshold_in_10sec
|
||||
|
||||
//sts_occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30)*10; //T: overtime *10 min
|
||||
sts_occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30)*10; // overtime *10 min
|
||||
|
||||
sts_cfg_nvm.fall_detection_acc_threshold = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30);
|
||||
sts_cfg_nvm.fall_detection_depth_threshold = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30);
|
||||
sts_cfg_nvm.fall_confirm_threshold_in_10sec = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30);
|
||||
// sts_cfg_nvm.occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30);
|
||||
sts_cfg_nvm.fall_confirm_threshold_in_10sec = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+1);
|
||||
|
||||
sts_cfg_nvm.occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30);
|
||||
|
||||
if (sts_work_mode == STS_UNI_MODE) // fall detection threshold only effective in Uni_mode
|
||||
{
|
||||
|
@ -2312,11 +2315,14 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
OnStoreSTSCFGContextRequest();
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
// 2024-07-31
|
||||
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size);
|
||||
i = tlv_buf_size;
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "###### Fall Detection config changed =%s\r\n",(char *)outbuf);
|
||||
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD6];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD7];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD8];
|
||||
STS_Combined_Status_Processing();
|
||||
}
|
||||
|
||||
|
@ -2328,7 +2334,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
if (((tlv_buf[CFG_CMD5] >='0') && (tlv_buf[CFG_CMD5]<='9')) && ((tlv_buf[CFG_CMD6]<='9') && (tlv_buf[CFG_CMD6]>='0'))
|
||||
&& ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0'))&& ((tlv_buf[CFG_CMD8]<='9') && (tlv_buf[CFG_CMD8]>='0')))
|
||||
{
|
||||
sts_motionless_duration_threshold_in_min = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30); //Motionless duration in min
|
||||
sts_motionless_duration_threshold_in_min = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30); //Motionless duration in min
|
||||
sts_occupancy_overtime_threshold_in_10min = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30)*10; //Long occupation in min
|
||||
sts_unconscious_level_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+1)*128; //motion level threshold less than 1280
|
||||
sts_alarm_mute_reset_timer_in_10sec = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30)*10; //alarm mute reset timer in 10 sec
|
||||
|
@ -2341,10 +2347,14 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
OnStoreSTSCFGContextRequest();
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
// 2024-07-31
|
||||
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size);
|
||||
i = tlv_buf_size;
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "###### Occupancy/Overstay/unconscious config changed =%s\r\n",(char *)outbuf);
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD6];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD7];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD8];
|
||||
STS_Combined_Status_Processing();
|
||||
}
|
||||
}
|
||||
|
@ -2362,11 +2372,11 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
sts_work_mode = (uint8_t)((tlv_buf[CFG_CMD4] - 0x41) + 10);
|
||||
}
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
// 2024-07-31
|
||||
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size);
|
||||
i = tlv_buf_size;
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3];
|
||||
outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4];
|
||||
|
||||
//sts_service_mask = STS_SERVICE_MASK_L0;
|
||||
//sts_lamp_bar_color = STS_GREEN;
|
||||
|
@ -2409,10 +2419,19 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
STS_PRESENCE_SENSOR_NVM_CFG();
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
// 2024-07-31
|
||||
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size);
|
||||
i = tlv_buf_size;
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Full CFG=%s\r\n",(char *)outbuf);
|
||||
|
||||
outbuf[i++] = (char) 'P';
|
||||
outbuf[i++] = sts_mtmcode1;
|
||||
outbuf[i++] = sts_mtmcode2;
|
||||
outbuf[i++] = sts_version;
|
||||
outbuf[i++] = sts_hardware_ver;
|
||||
|
||||
for (uint8_t j=0; j < CFG_CMD_RSS_FULL_SIZE; j++)
|
||||
{
|
||||
//outbuf[i++] = (uint8_t)(sts_cfg_nvm.p[j]+0x30)&0xff;
|
||||
outbuf[i++] = tlv_buf[CFG_CMD4+j];
|
||||
}
|
||||
|
||||
// Step 2: Save valid config to NVM
|
||||
sts_cfg_nvm.mtmcode1 = sts_mtmcode1;
|
||||
sts_cfg_nvm.mtmcode2 = sts_mtmcode2;
|
||||
|
@ -2435,7 +2454,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
if ((tlv_buf[CFG_CMD4+j] >='0') && (tlv_buf[CFG_CMD4+j]<='9'))
|
||||
{
|
||||
sts_cfg_nvm.p[j] = (uint8_t)((tlv_buf[CFG_CMD4+j] - 0x30)&0xff);
|
||||
APP_LOG(TS_OFF,VLEVEL_L,"\r\n tlv_buf %d = %02x cfg->p[%d]=%02x \r\n",
|
||||
APP_LOG(TS_OFF,VLEVEL_H,"\r\n tlv_buf %d = %02x cfg->p[%d]=%02x \r\n",
|
||||
j,tlv_buf[CFG_CMD4+j], j, sts_cfg_nvm.p[j]);
|
||||
} else {
|
||||
invalid_flag = 1;
|
||||
|
@ -2447,10 +2466,17 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size)
|
|||
STS_PRESENCE_SENSOR_NVM_CFG_SIMPLE();
|
||||
|
||||
i=0; // Step 1: Prepare status update message
|
||||
// 2024-07-31
|
||||
UTIL_MEM_cpy_8((void*)outbuf,(void*)tlv_buf,tlv_buf_size);
|
||||
i = tlv_buf_size;
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Simple CFG=%s\r\n",(char *)outbuf);
|
||||
outbuf[i++] = (char) 'P';
|
||||
outbuf[i++] = sts_mtmcode1;
|
||||
outbuf[i++] = sts_mtmcode2;
|
||||
outbuf[i++] = sts_version;
|
||||
outbuf[i++] = sts_hardware_ver;
|
||||
|
||||
for (j=0; j < CFG_CMD_RSS_SIMPLE_SIZE; j++)
|
||||
{
|
||||
outbuf[i++] = (uint8_t)(sts_cfg_nvm.p[j]+0x30)&0xff;
|
||||
}
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "###### RSS Simple CFG=%s\r\n",(uint8_t*)outbuf);
|
||||
|
||||
// Step 2: Save valid config to NVM
|
||||
sts_cfg_nvm.mtmcode1 = sts_mtmcode1;
|
||||
|
|
Loading…
Reference in New Issue