/* package whatever; // don't place package name! */
// Template header
///
template<size_t stack_size> struct static_task{
TaskHandle_t handle; /// Task handle after initialization
StaticTask_t state; /// Internal task state struct
const char* const name; /// Task name
const BaseType_t affinity; /// Task core
const BaseType_t basic_priority; /// Task init priority
const TaskFunction_t function; /// Task function pointer
void* const ctx; /// Task context pointer
struct stack{
static constexpr size_t size = stack_size; /// Stack size
StackType_t data[stack_size]; /// Stack data pointer
};
};
// Lib header
template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct);
// Lib CPP
template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct){
task_struct.handle = xTaskCreateStaticPinnedToCore
(
task_struct->function,
task_struct.name,
task_struct.stack.size,
task_struct.ctx,
task_struct.basic_priority,
task_struct.stack.data,
&task_struct.state,
task_struct.affinity
);
if(task_struct.handle == nullptr) { return ESP_FAIL; }
else { return ESP_OK; }
};
// Main CPP
static_task<2048> board_task = {
.name = "board_task",
.affinity = 1,
.basic_priority = 5,
.function = BoardTask,
.ctx = nullptr,
};
void main(void){
xTaskStaticInit(board_task);
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwovLyBUZW1wbGF0ZSBoZWFkZXIKLy8vCnRlbXBsYXRlPHNpemVfdCBzdGFja19zaXplPiBzdHJ1Y3Qgc3RhdGljX3Rhc2t7CgkKCVRhc2tIYW5kbGVfdAkJCWhhbmRsZTsJCQkJCS8vLyBUYXNrIGhhbmRsZSBhZnRlciBpbml0aWFsaXphdGlvbgoJU3RhdGljVGFza190CQkJc3RhdGU7CQkJCQkvLy8gSW50ZXJuYWwgdGFzayBzdGF0ZSBzdHJ1Y3QKCWNvbnN0IGNoYXIqIGNvbnN0CQluYW1lOwkJCQkJLy8vIFRhc2sgbmFtZQoJY29uc3QgQmFzZVR5cGVfdAkJYWZmaW5pdHk7CQkJCS8vLyBUYXNrIGNvcmUKCWNvbnN0IEJhc2VUeXBlX3QJCWJhc2ljX3ByaW9yaXR5OwkJCS8vLyBUYXNrIGluaXQgcHJpb3JpdHkKCWNvbnN0IFRhc2tGdW5jdGlvbl90CWZ1bmN0aW9uOwkJCQkvLy8gVGFzayBmdW5jdGlvbiBwb2ludGVyCgl2b2lkKiBjb25zdCAJCQljdHg7CQkJCQkvLy8gVGFzayBjb250ZXh0IHBvaW50ZXIKCXN0cnVjdCBzdGFja3sKCQlzdGF0aWMgY29uc3RleHByIHNpemVfdAlzaXplID0gc3RhY2tfc2l6ZTsJLy8vIFN0YWNrIHNpemUKCQlTdGFja1R5cGVfdCAJCQlkYXRhW3N0YWNrX3NpemVdOwkvLy8gU3RhY2sgZGF0YSBwb2ludGVyCgl9Owp9OwoKLy8gTGliIGhlYWRlcgp0ZW1wbGF0ZTxzaXplX3Qgc2l6ZT4gZXNwX2Vycl90IHhUYXNrU3RhdGljSW5pdChzdGF0aWNfdGFzazxzaXplPiYgdGFza19zdHJ1Y3QpOwoKLy8gTGliIENQUAp0ZW1wbGF0ZTxzaXplX3Qgc2l6ZT4gZXNwX2Vycl90IHhUYXNrU3RhdGljSW5pdChzdGF0aWNfdGFzazxzaXplPiYgdGFza19zdHJ1Y3QpewoJCQoJCQoJCXRhc2tfc3RydWN0LmhhbmRsZSA9IHhUYXNrQ3JlYXRlU3RhdGljUGlubmVkVG9Db3JlCgkJKAoJCQl0YXNrX3N0cnVjdC0+ZnVuY3Rpb24sCgkJCXRhc2tfc3RydWN0Lm5hbWUsCgkJCXRhc2tfc3RydWN0LnN0YWNrLnNpemUsCgkJCXRhc2tfc3RydWN0LmN0eCwKCQkJdGFza19zdHJ1Y3QuYmFzaWNfcHJpb3JpdHksCgkJCXRhc2tfc3RydWN0LnN0YWNrLmRhdGEsCgkJCSZ0YXNrX3N0cnVjdC5zdGF0ZSwKCQkJdGFza19zdHJ1Y3QuYWZmaW5pdHkKCQkpOwoJCQoJCWlmKHRhc2tfc3RydWN0LmhhbmRsZSA9PSBudWxscHRyKSB7IHJldHVybiBFU1BfRkFJTDsgfQoJCWVsc2UgeyByZXR1cm4gRVNQX09LOyB9Cgl9OwoKCi8vIE1haW4gQ1BQCgpzdGF0aWNfdGFzazwyMDQ4PiBib2FyZF90YXNrID0gewoJLm5hbWUgPSAiYm9hcmRfdGFzayIsCgkuYWZmaW5pdHkgPSAxLAoJLmJhc2ljX3ByaW9yaXR5ID0gNSwKCS5mdW5jdGlvbiA9IEJvYXJkVGFzaywKCS5jdHggPSBudWxscHRyLAp9OwoKdm9pZCBtYWluKHZvaWQpewoKICAgIHhUYXNrU3RhdGljSW5pdChib2FyZF90YXNrKTsKfQo=
Main.java:4: error: class, interface, or enum expected
template<size_t stack_size> struct static_task{
^
Main.java:7: error: class, interface, or enum expected
StaticTask_t state; /// Internal task state struct
^
Main.java:8: error: class, interface, or enum expected
const char* const name; /// Task name
^
Main.java:9: error: class, interface, or enum expected
const BaseType_t affinity; /// Task core
^
Main.java:10: error: class, interface, or enum expected
const BaseType_t basic_priority; /// Task init priority
^
Main.java:11: error: class, interface, or enum expected
const TaskFunction_t function; /// Task function pointer
^
Main.java:12: error: class, interface, or enum expected
void* const ctx; /// Task context pointer
^
Main.java:13: error: class, interface, or enum expected
struct stack{
^
Main.java:15: error: class, interface, or enum expected
StackType_t data[stack_size]; /// Stack data pointer
^
Main.java:16: error: class, interface, or enum expected
};
^
Main.java:17: error: class, interface, or enum expected
};
^
Main.java:20: error: class, interface, or enum expected
template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct);
^
Main.java:23: error: class, interface, or enum expected
template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct){
^
Main.java:38: error: class, interface, or enum expected
if(task_struct.handle == nullptr) { return ESP_FAIL; }
^
Main.java:38: error: class, interface, or enum expected
if(task_struct.handle == nullptr) { return ESP_FAIL; }
^
Main.java:39: error: class, interface, or enum expected
else { return ESP_OK; }
^
Main.java:45: error: class, interface, or enum expected
static_task<2048> board_task = {
^
Main.java:53: error: class, interface, or enum expected
void main(void){
^
Main.java:56: error: class, interface, or enum expected
}
^
19 errors