Page 1 of 2
wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Jul 25日 18:22
by zoule@venztech.com
目前 下载了wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15 sdk 开发包内的
存在下面 文件夹
位于 TuyaOS/apps/tuyaos_demo_aplication/application_drivers下
- 文件夹 tdd_ir_driver
- 文件夹 tdl_ir_device
Q1:编译这2 个 文件夹 能够完成红外的收发吗?
Q2:
因为CRG1模组 也是RTL8720CM 芯片
所以 该驱动 在CRG1模组上也是可以 使用的,对吗?
不能使用的话,能提供demo参考吗?
Q3:
现在项目需要 用 CRG1 是网关模组,在此基础上需要完成 红外功能的收发。
但是目前有个疑问,红外这里有个协议,是使用 NEC 还是 timecode ??
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Jul 26日 09:56
by zoule@venztech.com
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Jul 26日 10:50
by yangjie
Q1: 编译 tdd_ir_driver 和 tdl_ir_device 可以完成红外的收发。你需要将 tdd_ir_driver/src 中的除了 tdd_ir_driver_rtl8720cf_ameba.c 文件外,其他 tdd_ir_driver_xxx.c 文件需要删除掉。
Q2: 可以使用的
Q3: 这个需要看你的业务需求了来决定使用 NEC 还是 timecode,tdd_ir_driver 和 tdl_ir_device 只是一个红外驱动的程序,不包含云端红外码库相关的功能,他只能做到接受红外码和发生红外码。你可以看下 tdl_ir_device 文件下的 README 文档。NEC 码是一个红外协议;时间码是只记录红外的高低电平时间数据,相当于红外的原始(RAW)数据。
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Jul 26日 14:59
by zoule@venztech.com
首先,感谢你的回复~,你的回答 给与了很好的鼓励。
估计很快就调通了 红外的功能。
是的。我 编译了 tdd_ir_driver_rtl8720cf_ameba.c 文件,很快的就编译了,因为这个是必须的。
我在sdk 内部获取到 ,红外dp 点数据了,红外dp 主要包括2个,一个发送 ,一个接收。
我在接收的buff 中发现了,按下不同的遥控器的 按钮,这些buff中的数值确实 不一样。
很好,我获取到了红外码的数据了。
这些数据似乎是 记录时间的,一般是几百到几千,这样的数据。
但是,问题来了。
我如何填充这些数据,使用提供sdk包内的 pwm_out 这些接口函数吗?
我好像很难找到出路。
我尝试使用 类似下面 这样的代码进行发送,我发现 我的pwm 口竟然可以发送38K的载波了,我想知道,在这个代码中,我需要使用timecode的方式填充吗?
Code: Select all
STATIC VOID_T __TY_IR_SEND_CB(TY_IR_CODE_S *ir_code, UCHAR_T code_num_type){
USHORT_T i = 0;
for (size_t i = 0; i < ir_code->code_len; i+=5)
{
PR_DEBUG("_______ir_code,i[%d]_ data: %d",i, ir_code->code[i]);
}
//PR_DEBUG("_______ir_code len: %d", ir_code->code_len);
//PR_DEBUG("________send_count: %d", ir_code->send_count);
//PR_DEBUG("_________ir_code->feq: %d", ir_code->feq);
//PR_DEBUG("_____________delay: %d",ir_code->delay);
OPERATE_RET rt = OPRT_OK;
IR_DATA_U ir_send_buffer;
#if USE__NEC_PRO
ir_send_buffer.nec_data.addr = 0x807F;
ir_send_buffer.nec_data.cmd = 0x1DE2;
ir_send_buffer.nec_data.repeat_cnt = 1;
#else
ir_send_buffer.timecode.data = (UINT32_T*)malloc(ir_code->code_len);
if(ir_send_buffer.timecode.data == NULL)return;
memset(ir_send_buffer.timecode.data,0,sizeof(ir_code->code_len));
memcpy(ir_send_buffer.timecode.data,ir_code->code,ir_code->code_len);
ir_send_buffer.timecode.len = ir_code->code_len;
#endif
if(_ir_dev_hdl){
rt = tdl_ir_dev_send(_ir_dev_hdl, ir_code->feq, ir_send_buffer, ir_code->send_count);
PR_DEBUG("_____________tdl_ir_dev_send,ok,rt %d",rt);
}
#if (!USE__NEC_PRO)
free(ir_send_buffer.timecode.data);
PR_DEBUG("_____________free,ok");
#endif
}
但是 这样必不能实际控制红外设备,我怀疑发射的码值根本不对。有什么好的指导方法吗???
再次感谢你的回复~~
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Aug 6日 16:37
by zoule@venztech.com
如何将timecode的数据,填入到pwm38Khz 的波形中,可以给出一点提示吗?
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Aug 6日 17:00
by yangjie
你的使用的两个红外 dp 点数值是多少,你是想要做一个 万能红外遥控器还是做什么?
你需要获取到被控制设备的时间码值。时间码值:是由 38k 载波的时间和非载波时间依次排序组成的
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Aug 6日 17:19
by zoule@venztech.com
是的,获取到时间码了,我想知道,如何填充到pwm。现在的情况是,pwm口已经有38k 波形了,但是没看到0 或1 的变化
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Aug 6日 17:41
by zoule@venztech.com
你好,可以帮忙回复一下可以吗?项目比较急 ,在线等
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Aug 6日 17:44
by yangjie
zoule@venztech.com 2024年 Aug 6日 17:19
是的,获取到时间码了,我想知道,如何填充到pwm。现在的情况是,pwm口已经有38k 波形了,但是没看到0 或1 的变化
Code: Select all
int timecode[6] = {9000,4500,560,560,560,560};
timecodelen = 6;
ir_send_data.timecode.data = timecode;
ir_send_data.timecode.len = timecodelen;
tdl_ir_dev_send(ir_handle, 38000, ir_send_data, 1);
那么红外会按照 9000 us 38K 载波,4500 us 低电平,560us 38K 载波,560 us 低电平,560us 38K 载波,560us 低电平的方式输出
Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?
Posted: 2024年 Aug 6日 18:20
by zoule@venztech.com