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);
};
我把这个类单拿出来看看.
用这个功能先看看
类里面就是这些东西
其实我有点不懂.这个类名和一个函数名字一样.我不懂最后一个参数的意思是什么是相机的型号吗?我没有看到有什么地方调用这个参数
函数几个
开始
发啥?
确认连接