Loading src/app/uart-to-dmx/main.cc +28 −7 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ #include "driver/gpio.h" #include "driver/stdout.h" #include "driver/stdin.h" #include "driver/stdout3.h" #include "driver/stdin3.h" #include "driver/uptime.h" #if defined(CONFIG_meta_driver_dmx1) Loading @@ -24,14 +26,19 @@ #include "driver/timer.h" volatile unsigned char timer_done = 0; char buffer[24]; char buffer[64]; unsigned char buf_pos = 0; void input_to_dmx(void) { unsigned char num = 0; unsigned char dmx_frame = 1; for (unsigned int i = 0; i < buf_pos; i++) { if ((buffer[0] == 'W') || buffer[0] == 'M') { return; } for (unsigned int i = 3; i < buf_pos; i++) { if ((buffer[i] >= '0') && (buffer[i] <= '9')) { num *= 10; num += buffer[i] - '0'; Loading @@ -49,26 +56,39 @@ int main(void) gpio.setup(); kout.setup(); kin.setup(); kout3.setup(); kin3.setup(); for (unsigned char i = 0; i < 16; i++) { for (unsigned char i = 0; i < dmx.num_frames; i++) { dmx.frames[i] = 0; } dmx.setup(); timer.setup_hz(15); timer.setup_hz(4); timer.start(1); kout << "Ready" << endl; while (1) { while (!timer_done) { arch.idle(); while (kin.hasKey() && (buf_pos < 24)) { char key = kin.getKey(); while (kin3.hasKey()) { char key = kin3.getKey(); buffer[buf_pos++] = key; kout << key << flush; gpio.led_toggle(1); if (buf_pos >= sizeof(buffer)) { buf_pos = 0; } if ((key == '\n') || (key == '\r')) { input_to_dmx(); kout << endl << "DMX: " << dmx.frames[1] << " " << dmx.frames[2] << " " << dmx.frames[3] << " " << dmx.frames[4] << endl << "> "; kout << endl << "DMX: "; for (unsigned char i = 1; i < dmx.num_frames; i++) { kout << dmx.frames[i] << " "; } kout << endl << "> " << flush; buf_pos = 0; } } Loading @@ -77,6 +97,7 @@ int main(void) timer_done = 0; timer.start(1); //gpio.led_toggle(0); dmx.write(); } Loading Loading
src/app/uart-to-dmx/main.cc +28 −7 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ #include "driver/gpio.h" #include "driver/stdout.h" #include "driver/stdin.h" #include "driver/stdout3.h" #include "driver/stdin3.h" #include "driver/uptime.h" #if defined(CONFIG_meta_driver_dmx1) Loading @@ -24,14 +26,19 @@ #include "driver/timer.h" volatile unsigned char timer_done = 0; char buffer[24]; char buffer[64]; unsigned char buf_pos = 0; void input_to_dmx(void) { unsigned char num = 0; unsigned char dmx_frame = 1; for (unsigned int i = 0; i < buf_pos; i++) { if ((buffer[0] == 'W') || buffer[0] == 'M') { return; } for (unsigned int i = 3; i < buf_pos; i++) { if ((buffer[i] >= '0') && (buffer[i] <= '9')) { num *= 10; num += buffer[i] - '0'; Loading @@ -49,26 +56,39 @@ int main(void) gpio.setup(); kout.setup(); kin.setup(); kout3.setup(); kin3.setup(); for (unsigned char i = 0; i < 16; i++) { for (unsigned char i = 0; i < dmx.num_frames; i++) { dmx.frames[i] = 0; } dmx.setup(); timer.setup_hz(15); timer.setup_hz(4); timer.start(1); kout << "Ready" << endl; while (1) { while (!timer_done) { arch.idle(); while (kin.hasKey() && (buf_pos < 24)) { char key = kin.getKey(); while (kin3.hasKey()) { char key = kin3.getKey(); buffer[buf_pos++] = key; kout << key << flush; gpio.led_toggle(1); if (buf_pos >= sizeof(buffer)) { buf_pos = 0; } if ((key == '\n') || (key == '\r')) { input_to_dmx(); kout << endl << "DMX: " << dmx.frames[1] << " " << dmx.frames[2] << " " << dmx.frames[3] << " " << dmx.frames[4] << endl << "> "; kout << endl << "DMX: "; for (unsigned char i = 1; i < dmx.num_frames; i++) { kout << dmx.frames[i] << " "; } kout << endl << "> " << flush; buf_pos = 0; } } Loading @@ -77,6 +97,7 @@ int main(void) timer_done = 0; timer.start(1); //gpio.led_toggle(0); dmx.write(); } Loading