更新时间:2024-11-20 08:51:31下载pdf
本文介绍 NB-IoT 设备产测。
NB-IoT 的 OpenCPU SDK 提供了一套完整的产测接口回调,可用于进行 PCBA 产测,具体整机产测的方法,开发者可在应用层自己实现。整体流程举例如下:
首先注册产测的回调函数。
tuya_user_api_mf_test_cb_reg(tuya_user_prod_test);
在回调函数中,根据命令字来处理相关的产测事件,例如:指示灯测试、电量测试、按键测试等。
int tuya_user_prod_test(USHORT_T cmd, UCHAR_T *data, UINT_T len, OUT UCHAR_T *ret_data, OUT USHORT_T *ret_len)
{
int ret = -1;
enter_prod_test = 1;
switch (cmd){
// LED 灯测试
case 0x0001:{
USER_API_LOGI("user prod test, val:%d", data[0]);
ret = user_test_led(data[0]);
if (ret == 0) {
*ret_len = sprintf((char *)ret_data, "%s", "{\"ret\":true}");
} else {
*ret_len = sprintf((char *)ret_data, "{\"ret\":false}");
}
}
break;
// 电量检测
case 0x0030:{
float value = 0;
ret = user_test_vbat(&data[0], &value);
USER_API_LOGD("user_test_vbat, value:%f", value);
if (ret == 0) {
*ret_len = sprintf((char *)ret_data, "{\"ret\":true,\"type\":\"volt\",\"value\":[%.2f]}", value);
} else {
*ret_len = sprintf((char *)ret_data, "{\"ret\":false}");
}
}
break;
// 按键测试
case 0x0003:{
int value = 0;
char name[16] = {0};
USER_API_LOGD("user_test_key");
memset(name, 0x00, sizeof(name));
ret = user_test_key(name,&value);
if (ret == 0) {
*ret_len = sprintf((char *)ret_data, "{\"Name\":\"%s\",\"keyID\":%d}", name, value);
charge_test_timer_start();
} else {
*ret_len = sprintf((char *)ret_data, "{\"ret\":false}");
}
USER_API_LOGI("ret_data:%s", ret_data);
}
break;
default:
USER_API_LOGE("err, unknow cmd:0x%04x", cmd);
break;
}
return ret;
}
其中 cmd 命令字,由涂鸦的产测协议规定,包含各种定义的产测类型。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈