feat: 全量同步 254 个常用的 Arduino 扩展库文件
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
#ifndef _URLCODE_CPP_
|
||||
#define _URLCODE_CPP_
|
||||
|
||||
#include "URLCode.h"
|
||||
|
||||
int URLCode :: hex2dec(char c){
|
||||
if ('0' <= c && c <= '9')
|
||||
{
|
||||
return c - '0';
|
||||
}
|
||||
else if ('a' <= c && c <= 'f')
|
||||
{
|
||||
return c - 'a' + 10;
|
||||
}
|
||||
else if ('A' <= c && c <= 'F')
|
||||
{
|
||||
return c - 'A' + 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
char URLCode :: dec2hex(short int c)
|
||||
{
|
||||
if (0 <= c && c <= 9)
|
||||
{
|
||||
return c + '0';
|
||||
}
|
||||
else if (10 <= c && c <= 15)
|
||||
{
|
||||
return c + 'A' - 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Chinese 编码一个url
|
||||
// English Encode URLCode
|
||||
void URLCode :: urlencode()
|
||||
{
|
||||
urlcode = "";
|
||||
int i = 0;
|
||||
int len = strcode.length();
|
||||
for (i = 0; i < len; ++i)
|
||||
{
|
||||
wdtFeed();
|
||||
char c = strcode[i];
|
||||
if ( ('0' <= c && c <= '9') ||
|
||||
('a' <= c && c <= 'z') ||
|
||||
('A' <= c && c <= 'Z') ||
|
||||
c == '/' || c == '.')
|
||||
{
|
||||
urlcode += String(c);
|
||||
}
|
||||
else
|
||||
{
|
||||
int j = (short int)c;
|
||||
if (j < 0)
|
||||
j += 256;
|
||||
int i1, i0;
|
||||
i1 = j / 16;
|
||||
i0 = j - i1 * 16;
|
||||
urlcode += String('%');
|
||||
urlcode += String((char)dec2hex(i1));
|
||||
urlcode += String((char)dec2hex(i0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Chinese 解码url
|
||||
// English Decode URLCode
|
||||
void URLCode :: urldecode()
|
||||
{
|
||||
strcode = "";
|
||||
int i = 0;
|
||||
int len = urlcode.length();
|
||||
for (i = 0; i < len; ++i)
|
||||
{
|
||||
wdtFeed();
|
||||
char c = urlcode[i];
|
||||
if (c != '%') {
|
||||
strcode += String(c);
|
||||
} else {
|
||||
char c1 = urlcode[++i];
|
||||
char c0 = urlcode[++i];
|
||||
int num = 0;
|
||||
num = hex2dec(c1) * 16 + hex2dec(c0);
|
||||
strcode += String((char)num);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Chinese 喂看门狗
|
||||
// English Feed Watchdog)
|
||||
void URLCode :: wdtFeed(){
|
||||
// 喂看门狗代码 如果需要解码的URL太过长,会导致芯片以为运行出错,所以需要进行喂狗
|
||||
// 如果是 ESP8266 只需要 #define ESP8266 即可 其他芯片的喂狗代码请自行添加
|
||||
|
||||
#ifdef ESP8266
|
||||
ESP.wdtFeed();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user