Skip to content

gummoni/FreeRTOS_Job

Repository files navigation

Arduino Async Framework

This library FreeRTOS extensions.

The code is simple module programming.

Functionality

The async functions available in the library include

invoke();
action();          // sync execute
fork();            // parallel execute
cancel();          // job cancel
pause();           // job pause
resume();          // job resume
report();          // report progress
wait();            // sync execute

How to use

create module

header file

class example01 {
   private:
    queue que;
    static void func(job* parameter);  // function
  public:
    void init();
    job* funcAsync();                  // async function
};

c source

void example01::func(job* parameter) {
  Serial.println("hello world");
}

void example01::init() {
  Serial.begin(19200);
  taskStart(&que, "example01", 4096, 3, 1);
}

void example01::funcAsync() {
  return que.invoke(this, func, NULL, NULL);
}

ino source

static example01 ex;

void setup() {
  ex.init();
}

void loop() {
  ex.funcAsync()->wait();
}

let's enjoy!

About

FreeRTOS extension library. async/await like module programming. (for arduino)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages