Page 1 of 1

【已解决】【SDK】涂鸦虚拟网卡实现

Posted: 2024年 Jan 13日 13:14
by selimily

采用虚拟网卡,每次启动时,虚拟网卡的MAC地址和IP地址均会改变

step1,涂鸦APP,拿到token
step2,启动虚拟网卡,IP:a, MAC:b
step3,启动设备端软件,则涂鸦APP可正常出图

step4,再次启动虚拟网卡, IP:c, MAC:d
step5,再次启动设备端软件,则涂鸦APP将删除原绑定设备,出现新设备,但是新设备不出图;

如下测试正常
step1,涂鸦APP,拿到token
step2,启动虚拟网卡,IP:a, MAC:b
step3,启动设备端软件,则涂鸦APP可正常出图
step4,关闭设备端软件,再次启动设备端软件,则涂鸦APP可正常出图;


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 15日 09:48
by 起个中文名

提供下DEBUG级别日志。另外,在日志中标明分别对应你每个操作的时间


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 15日 11:53
by selimily

好,我搞一下

猜测,大概率是设备用MAC地址作为自己的唯一标识符了

冒昧咨询,您是否知道哪里配置设备的标识符,或者标识符是哪个(全局)变量?

有关键词,我可以尝试解决


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 15日 16:43
by 起个中文名

涂鸦的设备,仅跟设备id有关系。设备id是配网生成的。按理说不会出现你说的情况,所以需要提供下日志来看看


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 15日 21:24
by selimily

尴尬,现在流也不出了,log如下

[01-15 21:21:55 TUYA D][tuya_upnp_module_mg.c:1605] [UPnP]UPNP_MODULE_RUNNING...

[01-15 21:21:55 TUYA E][tuya_upnp_module_mg.c:1609] get mac failed, dont allow next route

[01-15 21:21:55 TUYA D][tuya_upnp_module_mg.c:1355] get wifi mac failed! try to get wired mac

WIFI Get MAC CE-35-15-3B-03-F2
[01-15 21:21:56 TUYA D][mqtt_client.c:982] serverIP 717233933 port:8883
[01-15 21:21:56 TUYA D][tuya_ipc_p2p.c:3783] video send proc alive [5000]
[01-15 21:21:56 TUYA D][mqtt_client.c:1007] mqtt over TLS is enabled. Host:m2.tuyacn.com Port:8883
[01-15 21:21:56 TUYA D][tuya_tls.c:1274] ----enable_cert:1,DEFAULT_LOAD_CERT:1
[01-15 21:21:56 TUYA D][tuya_tls.c:1317] TUYA_TLS Begin Connect m2.tuyacn.com:8883 CustomNet:TRUE Enable_Cert:TRUE Default:TRUE
[01-15 21:21:56 TUYA D][tuya_tls.c:1390] load tuya cert.
[01-15 21:21:56 TUYA D][tuya_tls.c:1395] parse crt <0> len <2002> ret <0>
[01-15 21:21:56 TUYA D][tuya_iot_com_api.c:259] tuya public url
[01-15 21:21:56 TUYA D][tuya_tls.c:1505] socket fd is set. set to inner send/recv to handshake
read int exc: cat /tmp/tuya.cfgs/tuya_sd_record_on_off
cat: can't open '/tmp/tuya.cfgs/tuya_sd_record_on_off': No such file or directory
readstr: andint:0
curr sd_record_on_off:0
[01-15 21:21:56 TUYA D][tuya_tls.c:1550] handshake finish for m2.tuyacn.com. set send/recv to user set
[01-15 21:21:56 TUYA D][tuya_tls.c:1565] TUYA_TLS Success Connect m2.tuyacn.com:8883 CustomNet:TRUE Suit:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
[01-15 21:21:56 TUYA N][mqtt_client.c:1523] mqtt create success, begin to connect
[01-15 21:21:56 TUYA E][mqtt_client.c:1078] mqtt connect resp err:5
[01-15 21:21:56 TUYA D][direct_connect_tuya.c:207] mqtt connect deny:6
[01-15 21:21:56 TUYA E][mqtt_client.c:1655] mq_logic_conn_proc err:-2313
[01-15 21:21:56 TUYA N][mqtt_client.c:1695] mqtt close
[01-15 21:21:56 TUYA N][mqtt_client.c:834] close mqtt -->>
[01-15 21:21:56 TUYA D][mqtt_client.c:846] shutdown fd enabled
[01-15 21:21:56 TUYA D][tuya_tls.c:1645] TUYA_TLS Disconnect ENTER
[01-15 21:21:56 TUYA D][tuya_tls.c:1700] TUYA_TLS Disconnect Success
[01-15 21:21:56 TUYA N][mqtt_client.c:879] close mqtt <<--
[01-15 21:21:56 TUYA D][mqtt_client.c:1712] mqtt fail_cnt:7, sleeptime:11310 ms
read int exc: cat /tmp/tuya.cfgs/tuya_sd_record_on_off
cat: can't open '/tmp/tuya.cfgs/tuya_sd_record_on_off': No such file or directory
readstr: andint:0
curr sd_record_on_off:0
read int exc: cat /tmp/tuya.cfgs/tuya_sd_record_on_off
cat: can't open '/tmp/tuya.cfgs/tuya_sd_record_on_off': No such file or directory
readstr: andint:0
curr sd_record_on_off:0


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 15日 22:21
by selimily

醉了,手机端卸载APP,重新安装又正常出流了


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 15日 23:25
by selimily

log文件如下

1_first_conn_first_mac_app_camera_works_well.log: 设备端第一次连接,设备端使用第一个MAC,APP端使用camera,正常出视频流;

2_second_conn_second_mac_but_app_delete_camera_add_camera2_works_well.log:设备端第二次连接,设备端使用第二个MAC,APP端【自动】删除camera并增加camera2,正常出视频流;

3_third_conn_second_mac_app_use_camera2_works_well.log:设备端第三次连接,设备端使用第二个MAC地址,APP端使用camera2,正常出视频流

4_forth_conn_third_mac_app_use_camera2_not_work.log:设备端第四次连接,设备端使用第三个MAC地址,APP端使用camera2,无法出视频流

5_forth_conn_third_mac_app_use_camera2_not_work.log:设备端第五次连接,设备端使用第三个MAC地址,APP端使用camera2,无法出视频流


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 16日 09:45
by 起个中文名

最后一份日志,涂鸦的db文件已经读取不到了。因为db读不到,所以进入了重新配网阶段;你启动的时候带了token,但是这个token已经过期,不能用于重新配网了。所以这时候应该是离线的。

问题的根源是你重新启动程序后,/tmp/tuya_user.db应该不存在了。这个存放涂鸦db文件的目录要求掉电不丢失的,你程序重新换个可用的目录。


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 16日 20:54
by selimily

追问一个问题

第一次连接,涂鸦用uuid auth token耗时较长

第二次连接,在存在tuya_user.db的情况下,是否还需要带uuid auth token启动?

第二次之后的连接,是否可以不带参数启动,降低耗时?


Re: 涂鸦虚拟网卡实现

Posted: 2024年 Jan 17日 10:27
by 起个中文名

你现在的启动方式是demo的启动方式。实际在硬件产品上,你是要自己调用tuya_ipc_sdk_init等接口启动的。接口里面有uuid等参数,你就要填写。
配网token,你实际开发的时候也不用直接用参数传入,你程序扫描到配网二维码后,解析成字符串调用涂鸦的接口即可。

你现在看的demo,里面你都可以改。建议你研究下demo里面代码在做什么,后面硬件产品开发的时候,按照流程,自己去调用sdk接口,而不是调用demo接口