GoPro Arduino控制库.阅读源码.1

打开plt->库

我怕这边已经安装好了饿

看库的路径

小东西,就vscode看就好了

先看README了解一下

支持的操作,可以看到基本上涵盖的方方面面了

支持的硬件8266和32,就是后面的不支持了.看起来是AT固件

去看一看at固件怎么样,是几年前的库了.比较老.先clone,然后再解剖

WiFiEsp

借助ESP8266开发板,WiFiEsp库允许Arduino开发板连接到互联网。它既可以用作接受传入连接的服务器,也可以用作进行传出连接的客户端。WiFiEsp库与Arduino WiFi和以太网库非常相似,并且许多函数调用是相同的。

支持ESP SDK版本1.1.1和更高版本(AT版本0.25和更高版本)。

特征

  • 与标准Arduino WiFi库兼容的API。

  • 使用标准ESP固件的AT命令(无需刷新自定义固件)。

  • 支持硬件和软件串行端口。

  • 可配置的跟踪级别。

接线

WiFiEsp库经过设计可与ESP WiFi防护板配合使用。它是Arduino WiFi防护板的廉价版本,它使用ESP-01模块为Arduino板提供联网功能。

例子

  • ConnectWPA-演示如何连接到使用WPA2 Personal加密的网络

  • WebClient-连接到远程Web服务器

  • WebClientRepeating-对Web服务器重复进行HTTP调用

  • WebServer-从WiFi防护板提供网页

  • WebServerAP-从WiFi防护板提供网页以启动本地访问点

  • WebServerLed-打开和关闭网页上的LED

  • UdpNTPClient-使用UDP查询网络时间协议(NTP)服务器

支持的API

大多数标准的Arduino WiFi库方法都可用。有关更多详细信息,请参阅WiFi库页面。

WiFiEsp类

  • begin()-并非所有身份验证类型

  • connect()-是

  • config()

  • setDNS()-否(无AT命令可用)

  • SSID()-是

  • BSSID()-是

  • RSSI()-是

  • encryptionType()-否(没有可用的AT命令)

  • scanNetworks()-是

  • getSocket()

  • macAddress()-是

WiFiEspServer类

WiFiEspServer类创建服务器,该服务器可以向连接的客户端(在其他计算机或设备上运行的程序)发送数据和从其接收数据。

  • WiFiEspServer()-是

  • begin()-是

  • available()-是

  • write()-是

  • print()-是

  • println()-是

客户类

WiFiEspClient类创建可以连接到服务器以及发送和接收数据的客户端。

  • WiFiEspClient()-是

  • connected()-是

  • connect()-是

  • write()-是

  • print()-是

  • println()-是

  • available()-是

  • read()-是

  • flush()-是

  • stop()-是

WiFiEspUDP类

UDP类允许发送和接收UDP消息。

  • WiFiUDP-是

  • begin()-是

  • available()-是

  • beginPacket()-是

  • endPacket()-是

  • write()-是

  • parsePacket()-是

  • 窥视()

  • read()-是

  • flush()

  • 停()

  • remoteIP()-是

  • remotePort()-是


    先复制一下描述~

全系相机都可以控制

安装方式

用arduino IDE

用就是我刚刚安装的方式

还有就是手动安装

mac和Linux可能有这个毛病

支持功能的相机对比,我发现3好像还多一点功能

没错哦

这个库的灵感来源,我也clone了.等等看

这个文件就像是Python里面pip库的配置文件一样.标识库文件

这个键码看不懂

Git库的忽略文件

一个是例子一个是源代码.我们先读后者

我是习惯先读读头文件,看看一些函数原型什么的

我把class关了


大致就是一个头文件,有条件编译语句.如果没有宏就创建一个宏.然后三个头文件.一个是arduino 的头,一个是setting的头.一会儿读.

下面简单,编译的设备目标.看起来支持8266和32.

还有一个http的头文件.http客户端头文件.

class GoProControl{ public: GoProControl(String ssid, String pwd, uint8_t camera); uint8_t begin(); static void sendWoL(WiFiUDP udp, byte *mac, size_t size_of_mac); uint8_t confirmPairing();
void enableDebug(HardwareSerial *debug_port, const uint32_t debug_baudrate = 115200); void disableDebug(); uint8_t getGoProStatus(); void printGoProStatus();
uint8_t turnOn(); uint8_t turnOff();
uint8_t startCapture(); uint8_t stopCapture();
uint8_t localizationOn(); uint8_t localizationOff();
uint8_t deleteLast(); uint8_t deleteAll();
uint8_t setMode(uint8_t option); uint8_t setOrientation(uint8_t option); uint8_t setVideoResolution(uint8_t option); uint8_t setPhotoResolution(uint8_t option); uint8_t setFrameRate(uint8_t option); uint8_t setFov(uint8_t option); uint8_t setVideoEncoding(uint8_t option); uint8_t setTimeLapseInterval(float option); uint8_t setContinuousShot(uint8_t option);
private: WiFiClient _client; HTTPClient _http;
String _url; String _ssid; String _pwd;
uint8_t _camera; String _host; uint16_t _port;
String _request; String _option;
uint8_t _GoProConnected = false;
HardwareSerial *_debug_port; uint8_t _debug;
uint8_t sendRequest(String request); String listen(); uint8_t validMode(int16_t mode, int16_t first, int16_t last);};

我把这个类单拿出来看看.

用这个功能先看看

类里面就是这些东西

其实我有点不懂.这个类名和一个函数名字一样.我不懂最后一个参数的意思是什么是相机的型号吗?我没有看到有什么地方调用这个参数





函数几个

  1. 开始

  2. 发啥?

  3. 确认连接


(0)

相关推荐

  • Phyphox结合ESP32和DS18B20测温度

    Phyphox结合ESP32和DS18B20测温度 有同好问:Phyphox如何外接温度传感器? 自Phyphox能够沟通ESP32之后,基本上所有的Arduino支持的传感器,都可以直接使用Ardu ...

  • ESP32下试验DS1302时钟模块

    DS1302是常用.便宜,而且可参考资料非常多的时钟模块.有分立IC可以自己搭,外围好象只要一两个元件,当然我会选择最简便的办法,直接淘来模块使用,大约3元钱一个,而且直接带了一个CR2032电池.一 ...

  • 远程开关机的方法(教你10元用esp8266 DIY远程开机棒)

    2020-06-04 13:13:05 在个人电脑使用或者服务器管理中经常需要对电脑进行远程开关机.重启的操作.出门在外想要查找电脑上的资料怎么办,服务器出了故障需要重启怎么办,下班回家需要控制单位的 ...

  • 协程库 libtask 源码分析

    本文在公司内网有不错的反响,但不同于传统的前端技术文章,所以阅读起来可能有点晦涩. 假设读者已经了解了协程的概念.实现协程的底层技术支持,基于底层基础,我们来看看如何实现协程以及协程的应用. 什么是 ...

  • 工具需用好,阅读源码没烦恼

    来源:Python 技术「ID: pythonall」 每当我们接手一个新项目时,面对庞杂的模块.繁复的代码,想必心情是非常绝望的,"这都特么啥呀?" 如果你也有这样的烦恼,那你就 ...

  • 优秀程序员必备技能之如何高效阅读源码

    "我能熟练使用这个框架/软件/技术就行了, 为什么要看源码?" "平时不用看源码, 看源码太费时间,还容易忘记,工作中出现问题再针对性地阅读,效率更高." &q ...

  • Gopro Ardunio控制库.3

    我还是觉得不对劲,我一定要解决这个枚举值的问题. 我现在去找个别的文档看 看英文吧,中文吐了 看见魔术包没有,远程开机也是这个 在头文件的这个地方就是魔术包的函数 完整定义 6字节 可以看到函数里面有 ...

  • Gopro Ardunio控制库.2

    三个函数原型 一个是使能调试 关闭调试 获得相机状态 打印状态 打开 关闭 开始抓取什么的 都是类似的功能,参数是从setting.h里面对应的 一个私有变量域 有一些字段,我这个地方没有读太懂.继续 ...

  • 模块一 GO语言基础知识-库源码文件

    你已经使用过 Go 语言编写了小命令(或者说微型程序)吗? 当你在编写"Hello, world"的时候,一个源码文件就足够了,虽然这种小玩意儿没什么用,最多能给你一点点莫名的成就 ...

  • 用Python标准库turtle画一头金牛,祝您新年牛气冲天!(附源码)

    今年是牛年,祝大家新年牛气冲天!嗨皮牛Year! 前几天在百度图片里下载了一张金牛的图片,就是封面的这张.想着用Python标准库turtle肯定可以画出这张图,所以说干就干,花两天时间实现了. 画图 ...

  • 如何修改组件库源码来封装符合自己需求的组件?

    Vue中文社区 昨天 作者:Huup_Wehttps://juejin.cn/post/6917771825808146446 前端开发的同学们或许会遇到这样的问题:产品中需要实现某项功能,常用的 e ...

  • 一个超级实用的源码阅读小技巧

    在学习编程的路途漫漫,优秀的源码是非常珍贵的学习资源,阅读源码也是有效提高自己的一个好方法. 工欲善其事必先利其器: 我发现函数调用图可以让我们更加直观地了解到源码函数直接的调用和层次关系,提高阅读源 ...