summaryrefslogtreecommitdiffstats
path: root/actuators
diff options
context:
space:
mode:
authorSebastian Reichel <sre@ring0.de>2012-06-15 22:56:00 +0200
committerSebastian Reichel <sre@ring0.de>2012-06-15 22:56:00 +0200
commit8a08b9dce9cfc161494ddb07a1c979c7796780ff (patch)
treee86e8a83212c617da44e1b9aed480fe6b50374af /actuators
parent626580d3a16d01f3ba5481d291c4c0c844ef4c46 (diff)
downloadmicrocopterd-8a08b9dce9cfc161494ddb07a1c979c7796780ff.tar.bz2
restructure code
it is now loading its components from plugins
Diffstat (limited to 'actuators')
-rw-r--r--actuators/blinkm.vala6
-rw-r--r--actuators/motor-controller.vala6
-rw-r--r--actuators/motor/Makefile14
-rw-r--r--actuators/motor/atmostripe.vala19
4 files changed, 40 insertions, 5 deletions
diff --git a/actuators/blinkm.vala b/actuators/blinkm.vala
index be98260..8068666 100644
--- a/actuators/blinkm.vala
+++ b/actuators/blinkm.vala
@@ -47,7 +47,7 @@ public class BlinkM : I2CDevice {
}
public BlinkM(uint8 dev, uint8 addr = 0x09) throws I2CError {
- base(dev, addr);
+ setup(dev, addr);
}
public void get_firmware_version(out char major, out char minor) throws I2CError {
@@ -81,14 +81,14 @@ public class BlinkM : I2CDevice {
write_byte(start);
}
- public void set(uint8 red, uint8 green, uint8 blue) throws I2CError {
+ public void set_color(uint8 red, uint8 green, uint8 blue) throws I2CError {
write_byte('n');
write_byte(red);
write_byte(green);
write_byte(blue);
}
- public void get(out uint8 red, out uint8 green, out uint8 blue) throws I2CError {
+ public void get_color(out uint8 red, out uint8 green, out uint8 blue) throws I2CError {
write_byte('g');
red = read_byte();
green = read_byte();
diff --git a/actuators/motor-controller.vala b/actuators/motor-controller.vala
index fb596dd..d348e53 100644
--- a/actuators/motor-controller.vala
+++ b/actuators/motor-controller.vala
@@ -14,6 +14,10 @@
*/
public interface MotorController : Device {
- public abstract void set(uint8 m, uint8 v);
+ public abstract uint8 min { get ; }
+ public abstract uint8 max { get ; }
+
+ public abstract void init(KeyFile cfg) throws Error;
+ public abstract void set_single(uint8 m, uint8 v);
public abstract void set_all(uint8 v);
}
diff --git a/actuators/motor/Makefile b/actuators/motor/Makefile
new file mode 100644
index 0000000..bd35015
--- /dev/null
+++ b/actuators/motor/Makefile
@@ -0,0 +1,14 @@
+include ../../config.mk
+
+all: AtmostripeMotorController.so
+
+clean:
+ rm -f *.c *.so
+
+atmostripe.c: atmostripe.vala
+ $(VALAC) --pkg gmodule-2.0 --pkg posix --pkg linux -C $< ../motor-controller.vala ../../hw/serial-device.vala ../../hw/device.vala
+
+AtmostripeMotorController.so: atmostripe.c
+ $(CC) -shared -fPIC `pkg-config --cflags --libs glib-2.0 gobject-2.0 gmodule-2.0` -o $@ $<
+
+.PHONY: all clean
diff --git a/actuators/motor/atmostripe.vala b/actuators/motor/atmostripe.vala
index 0cc4eef..ad996e7 100644
--- a/actuators/motor/atmostripe.vala
+++ b/actuators/motor/atmostripe.vala
@@ -14,7 +14,19 @@
*/
public class AtmostripeMotorController : SerialDevice, MotorController {
- public void set(uint8 m, uint8 v) {
+ public uint8 min {
+ get { return 0; }
+ }
+
+ public uint8 max {
+ get { return 255; }
+ }
+
+ public void init(KeyFile cfg) throws Error {
+ /* */
+ }
+
+ public void set_single(uint8 m, uint8 v) {
/* */
}
@@ -22,3 +34,8 @@ public class AtmostripeMotorController : SerialDevice, MotorController {
/* */
}
}
+
+public Type register_plugin (Module module) {
+ // types are registered automatically
+ return typeof(AtmostripeMotorController);
+}