Skip to content

Commit a2f96a5

Browse files
Add gems for system and wifi
0 parents  commit a2f96a5

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

mrbgem.rake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
MRuby::Gem::Specification.new('mruby-esp32-system') do |spec|
2+
spec.license = 'MIT'
3+
spec.author = 'Carson McDonald'
4+
end

mrblib/mrb_esp32_system.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module ESP32
2+
module System
3+
end
4+
end

src/mrb_esp32_system.c

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include <mruby.h>
2+
#include <mruby/value.h>
3+
4+
#include <stdio.h>
5+
6+
#include "esp_system.h"
7+
8+
#include "freertos/FreeRTOS.h"
9+
#include "freertos/task.h"
10+
11+
static mrb_value
12+
mrb_esp32_system_delay(mrb_state *mrb, mrb_value self) {
13+
mrb_int delay;
14+
15+
mrb_get_args(mrb, "i", &delay);
16+
17+
vTaskDelay(delay / portTICK_PERIOD_MS);
18+
19+
return self;
20+
}
21+
22+
static mrb_value
23+
mrb_esp32_system_available_memory(mrb_state *mrb, mrb_value self) {
24+
return mrb_fixnum_value(system_get_free_heap_size());
25+
}
26+
27+
void
28+
mrb_mruby_esp32_system_gem_init(mrb_state* mrb) {
29+
struct RClass *esp32_module = mrb_define_module(mrb, "ESP32");
30+
31+
struct RClass *esp32_system_module = mrb_define_module_under(mrb, esp32_module, "System");
32+
33+
mrb_define_module_function(mrb, esp32_system_module, "delay", mrb_esp32_system_delay, MRB_ARGS_REQ(1));
34+
mrb_define_module_function(mrb, esp32_system_module, "available_memory", mrb_esp32_system_available_memory, MRB_ARGS_NONE());
35+
}
36+
37+
void
38+
mrb_mruby_esp32_system_gem_final(mrb_state* mrb) {
39+
}

0 commit comments

Comments
 (0)