#include "Particle.h"
#include "Thread_Test.h"
SYSTEM_THREAD(ENABLED);
//Forward declaration
void ledBlink();
Thread thread("LED_Blink", ledBlink);
os_queue_t *test_queue = nullptr;
bool PostMsg(void)
{
bool result{false};
int i{1};
if(nullptr != test_queue)
{
result = os_queue_put(test_queue, &i, 0, nullptr);
}
else
{
result = false;
}
return result;
}
void ledBlink()
{
pinMode(D6, OUTPUT);
if(0 != os_queue_create(test_queue, sizeof(int), 5, nullptr))
{
digitalWrite(D6, 1);
}
else
{
//Success
}
while(1)
{
int ptr{0};
os_queue_take(test_queue, &ptr, CONCURRENT_WAIT_FOREVER, nullptr);
digitalWrite(D6, 1);
os_queue_take(test_queue, &ptr, CONCURRENT_WAIT_FOREVER, nullptr);
digitalWrite(D6, 0);
//delay(1000);
}
}
I2luY2x1ZGUgIlBhcnRpY2xlLmgiCiNpbmNsdWRlICJUaHJlYWRfVGVzdC5oIgoKU1lTVEVNX1RIUkVBRChFTkFCTEVEKTsKLy9Gb3J3YXJkIGRlY2xhcmF0aW9uCnZvaWQgbGVkQmxpbmsoKTsKClRocmVhZCB0aHJlYWQoIkxFRF9CbGluayIsIGxlZEJsaW5rKTsKb3NfcXVldWVfdCAqdGVzdF9xdWV1ZSA9IG51bGxwdHI7Cgpib29sIFBvc3RNc2codm9pZCkKewogICAgYm9vbCByZXN1bHR7ZmFsc2V9OwogICAgaW50IGl7MX07CgogICAgaWYobnVsbHB0ciAhPSB0ZXN0X3F1ZXVlKQogICAgewogICAgICAgIHJlc3VsdCA9IG9zX3F1ZXVlX3B1dCh0ZXN0X3F1ZXVlLCAmaSwgMCwgbnVsbHB0cik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmVzdWx0ID0gZmFsc2U7CiAgICB9CiAgICAKICAgIHJldHVybiByZXN1bHQ7Cn0KCnZvaWQgbGVkQmxpbmsoKQp7CiAgICBwaW5Nb2RlKEQ2LCBPVVRQVVQpOwoKICAgIGlmKDAgIT0gb3NfcXVldWVfY3JlYXRlKHRlc3RfcXVldWUsIHNpemVvZihpbnQpLCA1LCBudWxscHRyKSkKICAgIHsKICAgICAgICBkaWdpdGFsV3JpdGUoRDYsIDEpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIC8vU3VjY2VzcwogICAgfQogICAgCiAgICB3aGlsZSgxKQogICAgewogICAgICAgIGludCBwdHJ7MH07CiAgICAgICAgb3NfcXVldWVfdGFrZSh0ZXN0X3F1ZXVlLCAmcHRyLCBDT05DVVJSRU5UX1dBSVRfRk9SRVZFUiwgbnVsbHB0cik7CiAgICAgICAgZGlnaXRhbFdyaXRlKEQ2LCAxKTsKICAgICAgICBvc19xdWV1ZV90YWtlKHRlc3RfcXVldWUsICZwdHIsIENPTkNVUlJFTlRfV0FJVF9GT1JFVkVSLCBudWxscHRyKTsKICAgICAgICBkaWdpdGFsV3JpdGUoRDYsIDApOwogICAgICAgIC8vZGVsYXkoMTAwMCk7CiAgICB9Cn0=