DMX512 send/recv library with STM32 slave support originally from http://mbed.org/users/okini3939/notebook/dmx512

Fork of DMX by Suga koubou

Revision:
6:9e7b4eeac6ec
Parent:
5:72039cd4c874
Child:
7:16d6874076dd
--- a/DMX.cpp	Fri Jan 04 04:31:53 2013 +0000
+++ b/DMX.cpp	Sun Jan 13 01:33:17 2013 +0000
@@ -1,6 +1,6 @@
 /*
  * DMX512 send/recv library
- * Copyright (c) 2011 Hiroshi Suga
+ * Copyright (c) 2013 Hiroshi Suga
  * Released under the MIT License: http://mbed.org/license/mit
  */
 
@@ -71,12 +71,26 @@
 //    timeout01.attach_us(this, &DMX::int_timer, DMX_TIME_BETWEEN);
 }
 
-void DMX::put (int ch, int data) {
-    data_tx[ch] = data;
+void DMX::put (int addr, int data) {
+    if (addr < 0 || addr >= DMX_SIZE) return;
+    data_tx[addr] = data;
 }
 
-int DMX::get (int ch) {
-    return data_rx[ch];
+void DMX::put (unsigned char *buf, int addr, int len) {
+    if (addr < 0 || addr >= DMX_SIZE) return;
+    if (len > DMX_SIZE - addr) len = DMX_SIZE - addr;
+    memcpy(&data_tx[addr], buf, len);
+}
+
+int DMX::get (int addr) {
+    if (addr < 0 || addr >= DMX_SIZE) return -1;
+    return data_rx[addr];
+}
+
+void DMX::get (unsigned char *buf, int addr, int len) {
+    if (addr < 0 || addr >= DMX_SIZE) return;
+    if (len > DMX_SIZE - addr) len = DMX_SIZE - addr;
+    memcpy(buf, &data_rx[addr], len);
 }
 
 void DMX::int_timer () {