Tunnel(Serial To IEEE1888)
修订版 | c7562623ec4d4b15568f572c948502040503c2e5 (tree) |
---|---|
时间 | 2015-07-10 14:49:53 |
作者 | MirrgieRiana Kurilab |
Commiter | MirrgieRiana Kurilab |
rename: AntsElement -> FiapPacketBuffer
@@ -1,53 +0,0 @@ | ||
1 | -#ifndef INCLUDE_AntsElement_h | |
2 | -#define INCLUDE_AntsElement_h | |
3 | - | |
4 | -class DateTime | |
5 | -{ | |
6 | -public: | |
7 | - unsigned short year; | |
8 | - byte month; // 1~12 | |
9 | - byte day; // 1~31 | |
10 | - byte hour; // 0~23 | |
11 | - byte minute; // 0~59 | |
12 | - byte second; // 0~59 | |
13 | -}; | |
14 | - | |
15 | -// addElementをひたすら呼び出すだけで送信される。 | |
16 | -// 内部でバッファリングされるので、一連の追加が終わったらflushする。 | |
17 | -class AntsElement | |
18 | -{ | |
19 | -public: | |
20 | - | |
21 | -#define AntsElement_ELEMENTS_MAX_LENGTH 15 | |
22 | -#define AntsElement_CID_MAX_LENGTH 40 | |
23 | -#define AntsElement_VALUE_MAX_LENGTH 40 | |
24 | - | |
25 | - AntsElement(); | |
26 | - | |
27 | - // 現在入っているデータを破棄する。 | |
28 | - void clear(); | |
29 | - | |
30 | - // すべての引数は、メソッド内で複製されるので呼び出した後は変更してよい。 | |
31 | - // これ以上追加できない場合は自動的にflushされる | |
32 | - // 文字数制限あり。 | |
33 | - void acceptElement(char* cid, char* value, DateTime dateTime); | |
34 | - | |
35 | - // 自動的にclearされる。 | |
36 | - void flush(); | |
37 | - | |
38 | - struct fiap_element fiapElements[AntsElement_ELEMENTS_MAX_LENGTH]; | |
39 | - | |
40 | - char fiapElement_cids | |
41 | - [AntsElement_ELEMENTS_MAX_LENGTH] | |
42 | - [AntsElement_CID_MAX_LENGTH]; | |
43 | - | |
44 | - char fiapElement_values | |
45 | - [AntsElement_ELEMENTS_MAX_LENGTH] | |
46 | - [AntsElement_VALUE_MAX_LENGTH]; | |
47 | - | |
48 | - int fiapElementLength; | |
49 | - | |
50 | -}; | |
51 | - | |
52 | -#endif | |
53 | - |
@@ -1,57 +0,0 @@ | ||
1 | -#include "AntsElement.h" | |
2 | - | |
3 | -AntsElement::AntsElement() | |
4 | -{ | |
5 | - clear(); | |
6 | -} | |
7 | - | |
8 | -void AntsElement::clear() | |
9 | -{ | |
10 | - fiapElementLength = 0; | |
11 | -} | |
12 | - | |
13 | -void AntsElement::acceptElement(char* cid, char* value, DateTime dateTime) | |
14 | -{ | |
15 | - if (fiapElementLength >= AntsElement_ELEMENTS_MAX_LENGTH) { | |
16 | - flush(); | |
17 | - } | |
18 | - | |
19 | - strcpy(fiapElement_cids[fiapElementLength], cid); | |
20 | - strcpy(fiapElement_values[fiapElementLength], value); | |
21 | - | |
22 | - struct fiap_element tmp = { | |
23 | - fiapElement_cids[fiapElementLength], | |
24 | - fiapElement_values[fiapElementLength], | |
25 | - dateTime.year, | |
26 | - dateTime.month, | |
27 | - dateTime.day, | |
28 | - dateTime.hour, | |
29 | - dateTime.minute, | |
30 | - dateTime.second, | |
31 | - "+09:00", | |
32 | - }; | |
33 | - fiapElements[fiapElementLength] = tmp; | |
34 | - | |
35 | - fiapElementLength++; | |
36 | - if (fiapElementLength >= AntsElement_ELEMENTS_MAX_LENGTH) { | |
37 | - flush(); | |
38 | - } | |
39 | -} | |
40 | - | |
41 | -void AntsElement::flush() | |
42 | -{ | |
43 | - if (fiapElementLength > 0) { | |
44 | - int res = fiapUploadAgent.post(fiapElements, fiapElementLength); | |
45 | - clear(); | |
46 | - | |
47 | - if (res == 5) { | |
48 | - Serial.println("[Warning]:HTTP timeout"); | |
49 | - } else if (res != 0) { | |
50 | - Serial.print("[Warning]:HTTP error: "); | |
51 | - Serial.print(res); | |
52 | - Serial.println(""); | |
53 | - } | |
54 | - } | |
55 | -} | |
56 | - | |
57 | - |
@@ -0,0 +1,56 @@ | ||
1 | +#ifndef INCLUDE_FiapPacketBuffer_h | |
2 | +#define INCLUDE_FiapPacketBuffer_h | |
3 | + | |
4 | +class DateTime | |
5 | +{ | |
6 | +public: | |
7 | + unsigned short year; | |
8 | + byte month; // 1~12 | |
9 | + byte day; // 1~31 | |
10 | + byte hour; // 0~23 | |
11 | + byte minute; // 0~59 | |
12 | + byte second; // 0~59 | |
13 | +}; | |
14 | + | |
15 | +#define FiapPacketBuffer_ELEMENTS_MAX_LENGTH 15 | |
16 | +#define FiapPacketBuffer_CID_MAX_LENGTH 40 | |
17 | +#define FiapPacketBuffer_VALUE_MAX_LENGTH 40 | |
18 | + | |
19 | +// acceptElementをひたすら呼び出すだけで送信される。 | |
20 | +// 内部でバッファリングされる。一連の追加が終わったらflushすると、送信される。 | |
21 | +// まったくflushしなくても、上限に到達したら自動的にflushされる。 | |
22 | +class FiapPacketBuffer | |
23 | +{ | |
24 | +public: | |
25 | + | |
26 | + FiapPacketBuffer(); | |
27 | + | |
28 | + // 現在入っているデータを破棄する。 | |
29 | + void clear(); | |
30 | + | |
31 | + // すべての引数は、メソッド内で複製されるので呼び出した後は変更してよい。 | |
32 | + // これ以上追加できない場合は自動的にflushされる | |
33 | + // 文字数制限あり。 | |
34 | + void acceptElement(char* cid, char* value, DateTime dateTime); | |
35 | + | |
36 | + // 自動的にclearされる。 | |
37 | + void flush(); | |
38 | + | |
39 | +private: | |
40 | + | |
41 | + struct fiap_element fiapElements[FiapPacketBuffer_ELEMENTS_MAX_LENGTH]; | |
42 | + | |
43 | + char fiapElement_cids | |
44 | + [FiapPacketBuffer_ELEMENTS_MAX_LENGTH] | |
45 | + [FiapPacketBuffer_CID_MAX_LENGTH]; | |
46 | + | |
47 | + char fiapElement_values | |
48 | + [FiapPacketBuffer_ELEMENTS_MAX_LENGTH] | |
49 | + [FiapPacketBuffer_VALUE_MAX_LENGTH]; | |
50 | + | |
51 | + int fiapElementLength; | |
52 | + | |
53 | +}; | |
54 | + | |
55 | +#endif | |
56 | + |
@@ -0,0 +1,57 @@ | ||
1 | +#include "FiapPacketBuffer.h" | |
2 | + | |
3 | +FiapPacketBuffer::FiapPacketBuffer() | |
4 | +{ | |
5 | + clear(); | |
6 | +} | |
7 | + | |
8 | +void FiapPacketBuffer::clear() | |
9 | +{ | |
10 | + fiapElementLength = 0; | |
11 | +} | |
12 | + | |
13 | +void FiapPacketBuffer::acceptElement(char* cid, char* value, DateTime dateTime) | |
14 | +{ | |
15 | + if (fiapElementLength >= FiapPacketBuffer_ELEMENTS_MAX_LENGTH) { | |
16 | + flush(); | |
17 | + } | |
18 | + | |
19 | + strcpy(fiapElement_cids[fiapElementLength], cid); | |
20 | + strcpy(fiapElement_values[fiapElementLength], value); | |
21 | + | |
22 | + struct fiap_element tmp = { | |
23 | + fiapElement_cids[fiapElementLength], | |
24 | + fiapElement_values[fiapElementLength], | |
25 | + dateTime.year, | |
26 | + dateTime.month, | |
27 | + dateTime.day, | |
28 | + dateTime.hour, | |
29 | + dateTime.minute, | |
30 | + dateTime.second, | |
31 | + "+09:00", | |
32 | + }; | |
33 | + fiapElements[fiapElementLength] = tmp; | |
34 | + | |
35 | + fiapElementLength++; | |
36 | + if (fiapElementLength >= FiapPacketBuffer_ELEMENTS_MAX_LENGTH) { | |
37 | + flush(); | |
38 | + } | |
39 | +} | |
40 | + | |
41 | +void FiapPacketBuffer::flush() | |
42 | +{ | |
43 | + if (fiapElementLength > 0) { | |
44 | + int res = fiapUploadAgent.post(fiapElements, fiapElementLength); | |
45 | + clear(); | |
46 | + | |
47 | + if (res == 5) { | |
48 | + Serial.println("[Warning]:HTTP timeout"); | |
49 | + } else if (res != 0) { | |
50 | + Serial.print("[Warning]:HTTP error: "); | |
51 | + Serial.print(res); | |
52 | + Serial.println(""); | |
53 | + } | |
54 | + } | |
55 | +} | |
56 | + | |
57 | + |
@@ -1,7 +1,7 @@ | ||
1 | 1 | #include "TunnelSerialToIEEE1888.h" |
2 | 2 | #include "core.h" |
3 | 3 | |
4 | -#include "AntsElement.h" | |
4 | +#include "FiapPacketBuffer.h" | |
5 | 5 | |
6 | 6 | void initCore() |
7 | 7 | { |
@@ -22,7 +22,7 @@ | ||
22 | 22 | waitMs = 200; |
23 | 23 | } |
24 | 24 | |
25 | -AntsElement antsElement; | |
25 | +FiapPacketBuffer fiapPacketBuffer; | |
26 | 26 | |
27 | 27 | void tunnel::invokeCommand(SerialReader* serialReader) |
28 | 28 | { |
@@ -63,7 +63,7 @@ | ||
63 | 63 | if (strcmp(serialReader->argumentsString[0], "FlushFiapPacket") == 0) { |
64 | 64 | |
65 | 65 | // 操作 |
66 | - antsElement.flush(); | |
66 | + fiapPacketBuffer.flush(); | |
67 | 67 | |
68 | 68 | // ptint |
69 | 69 | Serial.println("Message:flush"); |
@@ -82,7 +82,7 @@ | ||
82 | 82 | dateTime.minute = serialReader->argumentsInt[4]; |
83 | 83 | dateTime.second = serialReader->argumentsInt[5]; |
84 | 84 | |
85 | - antsElement.acceptElement( | |
85 | + fiapPacketBuffer.acceptElement( | |
86 | 86 | serialReader->argumentsString[1], |
87 | 87 | serialReader->argumentsString[2], |
88 | 88 | dateTime); |