【全志T113-S3】使用阿里云提供的C-link sdk实现摄像头的远程控制(一)
前言
之前写过一篇文章,讲的是远程控制树莓派摄像头拍照,今天这章讲的内容与那一章有些类似,但是使用的是阿里云提供的c
提示:以下是本篇文章正文内容,下面案例可供参考
一、阿里云创建产品
首先进入“公共实例”,创建产品,如下图所示。
在“产品”栏找到“功能定义”,添加功能:
这是我添加的功能,可以根据这个参考一下:
这个功能耍了点小心机,这个后面再讲。
添加完功能之后点击“发布上线”,此时才能正常使用。
完成这一步后,添加设备:
设备名称可以不用填,会自动给你一个设备名称,能够确保设备名字不会重复。
完成之后,准备获取sdk。
二、移植sdk
1.获取sdk
点击“文档与工具”,在link SDK中点击“SDK定制”,如图所示。
选项如下:
点击开始生成,就会自动下载。
2.在ubuntu使用
下载完成,我将它丢在 ubuntu共享文件夹里,解压命名为c-sdk,进入文件夹:
c-sdk->LinkeSDK->demos,可以看到官方给了挺多示例,想要完成我们所需的功能,只需要留下“mqtt_basic_demo.c”这个文件就够了,其他的文件可以删掉。
当然,不删也不影响。
下面修改“mqtt_basic_demo.c”这个文件。打开它,修改三元组:
接着修改mqtt_host,如何查看mqtt_host值如下图所示:
然后改端口号:
(别管后面的注释,我看连接参数给的就是1883)
修改这个函数:
在这里加一句“大锅~我要拍照了~”(需要注意的是,我这条printf没有加换行符,不是有什么特别目的,只是我现在截图才发现ꉂ(ˊᗜˋ*),记得加上)。
下面直接make,获得可执行文件。
make完会出现一个新的文件夹“output”。
直接运行里面的mqtt-basic-demo:
可以看到,我们的设备现在显示“在线” :
这时候点击在线调试,设置一下:
看看设备有什么反应:
嗯,可以看到,它显示我们刚刚加的那一句了(为什么有换行,因为我专门去加了),模拟拍照成功。
这时候明白我为什么添加功能的时候不用bool类型而用枚举类型了吧?因为如果返回的值的可能性大于1,那么我就得对返回的内容进行处理,json格式又不好直接转为字符串,那就得用cjson,很麻烦。既然如此,那让它返回值只有一个,只要有值返回就证明改拍照了,这样就偷了个懒。
那这样子的话功能模拟算是成功了,那么改怎么移植到t113呢?
今天有点晚了,我们明天再说ꉂ(ˊᗜˋ*)。