[feat] add cali data
This commit is contained in:
parent
b5c3737eeb
commit
817b91d2cd
@ -214,7 +214,58 @@ int lark1s_parse_gas3_info(uint8_t *buffer, int length, struct lark1s_gas_info_s
|
||||
info->unit_name[j] = buffer[i + 20 + j];
|
||||
}
|
||||
info->range = MB_GET_UWORD(buffer + i + 32);
|
||||
info->min_cali = MB_GET_UWORD(buffer + i + 56);
|
||||
info->min_cali = MB_GET_UWORD(buffer + i + 76);
|
||||
|
||||
return LARK1S_PARSE_OK;
|
||||
}
|
||||
|
||||
int lark1s_req_gas3_cali_data(uint8_t *buffer)
|
||||
{
|
||||
struct crc16_result_s crc;
|
||||
int i = 0;
|
||||
|
||||
buffer[i++] = mb_addr;
|
||||
buffer[i++] = MODBUS_FUNCTION_CODE_READ_INPUT;
|
||||
buffer[i++] = (LARK1S_REG_GAS3_CALI_DATA >> 8) & 0xFF;
|
||||
buffer[i++] = LARK1S_REG_GAS3_CALI_DATA & 0xFF;
|
||||
buffer[i++] = (LARK1S_SIZE_GAS3_CALI_DATA >> 8) & 0xFF;
|
||||
buffer[i++] = LARK1S_SIZE_GAS3_CALI_DATA & 0xFF;
|
||||
crc16_8005_calc(buffer, i, &crc);
|
||||
buffer[i++] = crc.crcl;
|
||||
buffer[i++] = crc.crch;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
int lark1s_parse_gas3_cali_data(uint8_t *buffer, int length, struct lark1s_gas_cali_data_s *data)
|
||||
{
|
||||
int ret;
|
||||
int i = 0;
|
||||
|
||||
if (length != LARK1S_SIZE_GAS3_CALI_DATA * 2 + 5) {
|
||||
return LARK1S_PARSE_FRAME_ERROR;
|
||||
}
|
||||
ret = lark1s_frame_check(buffer, length);
|
||||
if (ret) {
|
||||
return ret;
|
||||
}
|
||||
i++;
|
||||
if (buffer[i++] != MODBUS_FUNCTION_CODE_READ_INPUT) {
|
||||
return LARK1S_PARSE_FUNCTION_CODE_ERROR;
|
||||
}
|
||||
if (buffer[i++] != LARK1S_SIZE_GAS3_CALI_DATA * 2) {
|
||||
return LARK1S_PARSE_DATA_LENGTH_ERROR;
|
||||
}
|
||||
data->available = MB_GET_UWORD(buffer + i);
|
||||
data->zero_sig_cts = MB_GET_UWORD(buffer + i + 4);
|
||||
data->zero_ref_cts = MB_GET_UWORD(buffer + i + 8);
|
||||
data->zero_det_temp = MB_GET_UWORD(buffer + i + 12);
|
||||
data->zero_lamp_temp = MB_GET_UWORD(buffer + i + 16);
|
||||
data->span_concentration = MB_GET_UWORD(buffer + i + 28);
|
||||
data->span_sig_cts = MB_GET_UWORD(buffer + i + 32);
|
||||
data->span_ref_cts = MB_GET_UWORD(buffer + i + 36);
|
||||
data->span_det_temp = MB_GET_UWORD(buffer + i + 40);
|
||||
data->span_lamp_temp = MB_GET_UWORD(buffer + i + 44);
|
||||
|
||||
return LARK1S_PARSE_OK;
|
||||
}
|
||||
|
||||
@ -63,6 +63,8 @@ int lark1s_req_sn(uint8_t *buffer);
|
||||
int lark1s_parse_sn(uint8_t *buffer, int length, char *sn);
|
||||
int lark1s_req_gas3_info(uint8_t *buffer);
|
||||
int lark1s_parse_gas3_info(uint8_t *buffer, int length, struct lark1s_gas_info_s *info);
|
||||
int lark1s_req_gas3_cali_data(uint8_t *buffer);
|
||||
int lark1s_parse_gas3_cali_data(uint8_t *buffer, int length, struct lark1s_gas_cali_data_s *cali);
|
||||
int lark1s_req_data(uint8_t *buffer);
|
||||
int lark1s_parse_data(uint8_t *buffer, int length, struct lark1s_data_s *data);
|
||||
int lark1s_req_gas3_cali_zero_record(uint8_t *buffer, uint16_t type);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user