【求助】【TuyaOS SDK】对接4G行车记录仪问题

IPC/NVR/可视门铃等具备多媒体能力的设备,扫地机/AGV等机器人设备


HanW
Posts: 36

TUYA_IPC_upload_all_status这个接口我试过了。比如我上报的音量大小的值是1,但是我在APP里面看见的还是原来的配置值70.
“紧急抓拍”的功能菜单应该是涂鸦那边绑定设备的时候根据设备类型区分的吧。


Tags:
lzkuaidou
Posts: 24

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

我们这边使用的是自定义的面板,收到消息后,是自己写代码改变面板的状态,你也可以试试。

你们使用的是什么类型的设备,我在创建产品的时候没看到“4G行车记录仪”设备,而且功能点里也没有“紧急相册”相关的功能。

HanW
Posts: 36

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

我们是4G记录仪。

1)dp 238数据如何上报,需要参考你们PID上定义的这个dp类型,按照定义的类型,找一个参考代码上报即可,如果类型都对应,还是无法上报,提供下报错的日志,多谢。
上报方式通过贵公司API调用上报的。该API接口如下:
tuya_ipc_dp_report(NULL, 238, PROP_VALUE, &mileage, 1);
我的意思是,这里报了里程,但是APP上看到的里程一直是0. 不知道是怎么回事。希望你们能指点一下。这个238的API是结束里程时候报一次。还是可以每秒都可以上报更新该里程的值。
谢谢。

2)请问这个问题是想清空本地的配置参数吗?本地的配置参数管理都是你们自己维护了,除了tuya_user.db*文件是我们维护,想删除或其他处理都是可以自行安排的哈;请问是什么具体的业务场景需要单独清空配置参数,不做设备复位?
我们目前是设备重新刷了系统。设备升级后。在手机端上看见的配置参数,没有复位。我想咨询一下。有没有什么办法可以让手机APP里面的设置页面中的参数能同步设备的参数一次呢?

这两个问题,还烦请贵公司的研发帮忙看看,指导一下。辛苦了。谢谢。

User avatar
pippin-bobo
Posts: 164

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

1)首先确认下后台配置的238dp是不是value类型,上报接口有没有什么明显报错,方便的话提供下设备串口日志
2)我理解你这个场景,设备启动的时候可以参考demo -》TUYA_IPC_upload_all_status 把你需要和APP同步的配置信息全部上报一遍

HanW
Posts: 36

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

1)首先确认下后台配置的238dp是不是value类型,上报接口有没有什么明显报错,方便的话提供下设备串口日志.
我手里拿到的文档是value类型的。在日志文件3516行,后面是关于gps数据这些的上报。烦请帮忙看一下。是不是哪里不对。
2)我理解你这个场景,设备启动的时候可以参考demo -》TUYA_IPC_upload_all_status 把你需要和APP同步的配置信息全部上报一遍
我抓取了整个启动日志,日志的716行-906行是TUYA_IPC_upload_all_status函数的调用过程。麻烦帮忙看一下。谢谢你。

辛苦你有时间的时候 帮忙看一下。谢谢。

Attachments
微信图片_20240409114046.png
log (2).txt
(267.69 KiB) Downloaded 14 times
User avatar
pippin-bobo
Posts: 164

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

日志看DP通道都没有问题,基本都是上报的内容出问题了,有非常明显的报错
[04-09 10:30:37 ty E][smart_frame.c:307] value check err:90000[0,20000]
[04-09 10:30:37 ty D][smart_frame.c:575] obj dp rept filtered:238
[04-09 10:30:37 ty D][smart_frame.c:620] no vaild dp to rept

[04-09 10:30:24 ty E][smart_frame.c:307] value check err:0[1,100]
[04-09 10:30:24 ty D][smart_frame.c:575] obj dp rept filtered:160

区间是后台设置的合理值区间,但是上报的指不在区间内

HanW
Posts: 36

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

谢谢你的回复。昨日与你们交流后。目前尝试关闭音频发送,调试中出现如下情况。麻烦你有时间的时候帮忙看一下。谢谢你。

1.audio_false.txt文件日志是,不再将音频数据写入ring buffer,然后将__TUYA_IPC_SDK_START函数中的 pstVar->media_info.media_info.stream_enable[E_IPC_STREAM_AUDIO_MAIN] = FALSE的输出,这个时候视频数据也不能PUT到ring buffer了。
SDK会打印[tuya_ring_buffer.c:881] handle is NULL的错误,返回-2.

Code: Select all

/*media info (essential)*/
/* main stream(HD), video configuration*/
/* NOTE
FIRST:If the main stream supports multiple video stream configurations, set each item to the upper limit of the allowed configuration.
SECOND:E_IPC_STREAM_VIDEO_MAIN must exist.It is the data source of SDK.
please close the E_IPC_STREAM_VIDEO_SUB for only one stream*/
pstVar->media_info.media_info.stream_enable[E_IPC_STREAM_VIDEO_MAIN] = TRUE;                 /* Whether to enable local HD video streaming */
pstVar->media_info.media_info.video_fps[E_IPC_STREAM_VIDEO_MAIN] = 15;                        /* FPS */
pstVar->media_info.media_info.video_gop[E_IPC_STREAM_VIDEO_MAIN] = 15;                        /* GOP */
pstVar->media_info.media_info.video_bitrate[E_IPC_STREAM_VIDEO_MAIN] = TUYA_VIDEO_BITRATE_1M; /* Rate limit */
pstVar->media_info.media_info.video_width[E_IPC_STREAM_VIDEO_MAIN] = pstPar->s32VWidth;               /* Single frame resolution of width*/
pstVar->media_info.media_info.video_height[E_IPC_STREAM_VIDEO_MAIN] = pstPar->s32VHeight;             /* Single frame resolution of height */
pstVar->media_info.media_info.video_freq[E_IPC_STREAM_VIDEO_MAIN] = 90000;                    /* Clock frequency */
pstVar->media_info.media_info.video_codec[E_IPC_STREAM_VIDEO_MAIN] = TUYA_CODEC_VIDEO_H264;   /* Encoding format */

/* Audio stream configuration.
Note: The internal P2P preview, cloud storage, and local storage of the SDK are all use E_IPC_STREAM_AUDIO_MAIN data. */
pstVar->media_info.media_info.stream_enable[E_IPC_STREAM_AUDIO_MAIN] = FALSE;                   /* Whether to enable local sound collection */
pstVar->media_info.media_info.audio_codec[E_IPC_STREAM_AUDIO_MAIN] = TUYA_CODEC_AUDIO_PCM;      /* Encoding format */
pstVar->media_info.media_info.audio_sample[E_IPC_STREAM_AUDIO_MAIN] = TUYA_AUDIO_SAMPLE_8K;    /* Sampling Rate */
pstVar->media_info.media_info.audio_databits[E_IPC_STREAM_AUDIO_MAIN] = TUYA_AUDIO_DATABITS_16; /* Bit width */
pstVar->media_info.media_info.audio_channel[E_IPC_STREAM_AUDIO_MAIN] = TUYA_AUDIO_CHANNEL_MONO; /* channel */
pstVar->media_info.media_info.audio_fps[E_IPC_STREAM_AUDIO_MAIN] = 16;                          /* Fragments per second */

2.audio_true.txt文件日志是将同样位置的FALSE修改为TRUE,但是获取实时流的时候会有No data inside ring buffer. GET starts before PUT? ch0st0tr9错误日志输出。图像很卡。

Code: Select all

/*media info (essential)*/
/* main stream(HD), video configuration*/
/* NOTE
FIRST:If the main stream supports multiple video stream configurations, set each item to the upper limit of the allowed configuration.
SECOND:E_IPC_STREAM_VIDEO_MAIN must exist.It is the data source of SDK.
please close the E_IPC_STREAM_VIDEO_SUB for only one stream*/
pstVar->media_info.media_info.stream_enable[E_IPC_STREAM_VIDEO_MAIN] = TRUE;                 /* Whether to enable local HD video streaming */
pstVar->media_info.media_info.video_fps[E_IPC_STREAM_VIDEO_MAIN] = 15;                        /* FPS */
pstVar->media_info.media_info.video_gop[E_IPC_STREAM_VIDEO_MAIN] = 15;                        /* GOP */
pstVar->media_info.media_info.video_bitrate[E_IPC_STREAM_VIDEO_MAIN] = TUYA_VIDEO_BITRATE_1M; /* Rate limit */
pstVar->media_info.media_info.video_width[E_IPC_STREAM_VIDEO_MAIN] = pstPar->s32VWidth;               /* Single frame resolution of width*/
pstVar->media_info.media_info.video_height[E_IPC_STREAM_VIDEO_MAIN] = pstPar->s32VHeight;             /* Single frame resolution of height */
pstVar->media_info.media_info.video_freq[E_IPC_STREAM_VIDEO_MAIN] = 90000;                    /* Clock frequency */
pstVar->media_info.media_info.video_codec[E_IPC_STREAM_VIDEO_MAIN] = TUYA_CODEC_VIDEO_H264;   /* Encoding format */

/* Audio stream configuration.
Note: The internal P2P preview, cloud storage, and local storage of the SDK are all use E_IPC_STREAM_AUDIO_MAIN data. */
pstVar->media_info.media_info.stream_enable[E_IPC_STREAM_AUDIO_MAIN] = TRUE;                   /* Whether to enable local sound collection */
pstVar->media_info.media_info.audio_codec[E_IPC_STREAM_AUDIO_MAIN] = TUYA_CODEC_AUDIO_PCM;      /* Encoding format */
pstVar->media_info.media_info.audio_sample[E_IPC_STREAM_AUDIO_MAIN] = TUYA_AUDIO_SAMPLE_8K;    /* Sampling Rate */
pstVar->media_info.media_info.audio_databits[E_IPC_STREAM_AUDIO_MAIN] = TUYA_AUDIO_DATABITS_16; /* Bit width */
pstVar->media_info.media_info.audio_channel[E_IPC_STREAM_AUDIO_MAIN] = TUYA_AUDIO_CHANNEL_MONO; /* channel */
pstVar->media_info.media_info.audio_fps[E_IPC_STREAM_AUDIO_MAIN] = 16;                          /* Fragments per second */

3.关于dp 160的上报问题。按照你的指导,开始确实上报的数据是0.经过处理代码bug后,现在上报的数据是60.可是在手机APP上看到的音频value还是之前配置的72.(audio_true.txt-1069行) 日志片段如下:

[11:37:51:146 INFO-]:LD_get_menu_status[653]:result_str=Middle

current device volume percent:60
[04-11 11:37:51 ty D][smart_frame.c:3797] rept chan:1
[04-11 11:37:51 ty D][smart_frame.c:410] dp<160> check. need_update:1 pv_stat:0 trig_t:0 dp_rept_type:0 force_send:1 prop_tp:1
[04-11 11:37:51 ty D][smart_frame.c:428] dp_cntl value:0, dp_data value:60
[04-11 11:37:51 ty D][smart_frame.c:518] is_need_update:1, is_dp_passive:0
[04-11 11:37:51 ty D][smart_frame.c:2492] dp rept_type:0, data:{"160":60}
[04-11 11:37:51 ty D][mqc_app.c:691] Send MQTT Msg.P:4 N:22603 Q:1 Data:{"dps":{"160":60}}

说明:
1.附件中,audio_true.txt和audio_false.txt文件分别是上述问题中,在开始配置的时候使用TRUE和FALSE配置的日志。
2.TUYA_APP_Put_Frame ret=0, video ch=0 size=2395 type=0 pts:139073494 sub:66661 ts:139073494 日志中该打印是送给ring buffer的视频时间戳打印,pts是MEDIA_FRAME_T数据结构中的pts变量,sub是指前后两次pts的差值,ts是MEDIA_FRAME_T数据结构中的timestamp变量,这个timestamp变量我看代码好像未使用。单位是us。每帧数据的增量是66660微秒的样子。还是比较均匀的。

麻烦你,有空的时候帮忙看看,我们在哪里配置上是否出现了问题。谢谢你。

Attachments
audio_true.txt
(784.33 KiB) Downloaded 8 times
audio_false.txt
(261.77 KiB) Downloaded 10 times
User avatar
pippin-bobo
Posts: 164

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

1)音频测试不用这么复杂,只需要APP上面关闭喇叭,不播放声音看看还是否卡顿,然后就是音频数据不要2048暴力切分为两份
2)dp那个如果数据上报设备端没有明显报错,可能还是和PID的配置关联,这个需要志山这边帮忙再次确认下

HanW
Posts: 36

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

谢谢,感谢你的回复。
1)音频测试不用这么复杂,只需要APP上面关闭喇叭,不播放声音看看还是否卡顿,然后就是音频数据不要2048暴力切分为两份
我尝试了直接送2048直接,可是报错,数据too big。
请问我如果按照原来切分为两份的方式写入ring buffer 但是在APP上关闭喇叭,这样来确认图像是卡顿的。(不知道是否可行)
2)dp那个如果数据上报设备端没有明显报错,可能还是和PID的配置关联,这个需要志山这边帮忙再次确认下
好的,谢谢。
3)想跟你们确认一下
===SDK Version:< TuyaOS V:6.1.0 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
< BUILD AT:2023_11_23_18_32_03 BY ci_manage FOR tuyaos-ipc AT ssc377 >
IOT DEFS < WIFI_GW:1 DEBUG:0 KV_FILE:0 LITTLE_END:1 SL:1 OPERATING_SYSTEM:100 RELIABLE_TRANSFER:0 >
SDK6这个版本,是否支持IPV6。谢谢你。

期盼回复。感谢。

User avatar
pippin-bobo
Posts: 164

Re: 【求助】【TuyaOS SDK】对接4G行车记录仪问题

1)音频还是按照原来的输入或者不塞入音频数据到ringbuffer,APP上面不打开,关注下视频是否卡顿
3)当前公版不支持IPV6,这个是白名单推送的,需要联系下PM,确认后方可释放

Post Reply