wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
zoule@venztech.com
Posts: 89

目前 下载了wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15 sdk 开发包内的

存在下面 文件夹
位于 TuyaOS/apps/tuyaos_demo_aplication/application_drivers下

  1. 文件夹 tdd_ir_driver
  2. 文件夹 tdl_ir_device
    Q1:编译这2 个 文件夹 能够完成红外的收发吗?

Q2:
因为CRG1模组 也是RTL8720CM 芯片
所以 该驱动 在CRG1模组上也是可以 使用的,对吗?
不能使用的话,能提供demo参考吗?

Q3:
现在项目需要 用 CRG1 是网关模组,在此基础上需要完成 红外功能的收发。
但是目前有个疑问,红外这里有个协议,是使用 NEC 还是 timecode ??

zoule@venztech.com
Posts: 89

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

参考这个链接,不是很明白,模组获取到的数据如何填充到发射口,完成发射的 https://www.tuyaos.com/viewtopic.php?p=5344#p5344

yangjie
Posts: 209

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

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)数据。

zoule@venztech.com
Posts: 89

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

首先,感谢你的回复~,你的回答 给与了很好的鼓励。
估计很快就调通了 红外的功能。
是的。我 编译了 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 }

但是 这样必不能实际控制红外设备,我怀疑发射的码值根本不对。有什么好的指导方法吗???
再次感谢你的回复~~

zoule@venztech.com
Posts: 89

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

如何将timecode的数据,填入到pwm38Khz 的波形中,可以给出一点提示吗?

yangjie
Posts: 209

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

你的使用的两个红外 dp 点数值是多少,你是想要做一个 万能红外遥控器还是做什么?

你需要获取到被控制设备的时间码值。时间码值:是由 38k 载波的时间和非载波时间依次排序组成的

zoule@venztech.com
Posts: 89

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

是的,获取到时间码了,我想知道,如何填充到pwm。现在的情况是,pwm口已经有38k 波形了,但是没看到0 或1 的变化

zoule@venztech.com
Posts: 89

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

你好,可以帮忙回复一下可以吗?项目比较急 ,在线等

yangjie
Posts: 209

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

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 低电平的方式输出

zoule@venztech.com
Posts: 89

Re: wifi联网单品,tuyaOS OS开发,RTL8720CM_TUYAOS-3.8.15里的demo_driver是适用于CRG1模组吗?

好的,非常感谢!!!

Post Reply