Slide 9
Slide 9 text
setup() {}
loop() {
int32_t data = _incoming_from_sensor();
if (data > 0) {
int16_t cId = Wio.SocketOpen("uni.soracom.io");
Wio.SocketSend(cId, data);
}
}
センサーからデータを
読み出し
(データがあったら)
データを送信
え?明らかに簡潔で、
こっちの方が良くね?
OS が無いと、どうなる?
#include
struct QUEUE_DATA {
uint8_t count;
};
void readTask(void *pvParameters) {
QueueHandle_t xQueue = pvParameters;
struct QUEUE_DATA queue_data;
for (;;) {
int32_t data = _incoming_data();
if (data > 0) {
queue_data.count = data;
xQueueSend(xQueue, queue_data);
}
}
}
void sendTask(void *pvParameters) {
QueueHandle_t xQueue = pvParameters;
struct QUEUE_DATA queue_data;
for (;;) {
xQueueReceive(xQueue, queue_data);
int16_t cId = Wio.SocketOpen("uni.soracom.io");
Wio.SocketSend(cId, queue_data.count);
}
}
void setup() {
QueueHandle_t xQueue = xQueueCreate(1);
xTaskCreate(readButtonTask, xQueue);
xTaskCreate(senddataTask, xQueue);
vTaskStartScheduler();
}
void loop () {}
Arduino 初学者が書くと…?
※ コードは簡略化してます。正しい引数は調べてくださいね