Application that checks a sensor value and sends it off using UDP
diff --git a/contiki-msp430/apps/sensorcheck.c b/contiki-msp430/apps/sensorcheck.c
new file mode 100644
index 0000000..7d8095c
--- /dev/null
+++ b/contiki-msp430/apps/sensorcheck.c
@@ -0,0 +1,76 @@
+#include "ctk.h"
+#include "dispatcher.h"
+#include "loader.h"
+#include "sensors.h"
+
+#include "uip-signal.h"
+
+#include <stdio.h>
+
+
+static void sensorcheck_idle(void);   
+static DISPATCHER_SIGHANDLER(sensorcheck_sighandler, s, data);
+static struct dispatcher_proc p =
+  {DISPATCHER_PROC("Sensor check", sensorcheck_idle,
+		   sensorcheck_sighandler, NULL)};
+static ek_id_t id = EK_ID_NONE;
+
+static unsigned char dataavail;
+
+static struct uip_udp_conn *conn;
+static int vib;
+
+/*-----------------------------------------------------------------------------------*/
+LOADER_INIT_FUNC(sensorcheck_init, arg)
+{
+  u16_t server[2];
+  arg_free(arg);
+    
+  if(id == EK_ID_NONE) {
+    id = dispatcher_start(&p);
+    uip_ipaddr(server, 192,168,1,1);
+    conn = uip_udp_new(server, 5125);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+sensorcheck_quit(void)
+{
+  dispatcher_exit(&p);
+  id = EK_ID_NONE;
+  LOADER_UNLOAD();
+}
+/*-----------------------------------------------------------------------------------*/
+static
+DISPATCHER_SIGHANDLER(sensorcheck_sighandler, s, data)
+{
+  DISPATCHER_SIGHANDLER_ARGS(s, data);
+
+  if(s == dispatcher_signal_quit) {
+    sensorcheck_quit();
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+sensorcheck_idle(void)
+{
+  /* Check vibration sensor, and send out data. */
+  if(sensors_vib != vib) {
+    vib = sensors_vib;
+    ++dataavail;
+    if(conn != NULL) {
+      dispatcher_emit(uip_signal_poll_udp, conn, DISPATCHER_BROADCAST);
+    }
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+udp_appcall(void)
+{
+  if(dataavail) {
+    *(int *)uip_appdata = vib;
+    uip_udp_send(sizeof(int));
+    dataavail = 0;
+  }
+}
+/*-----------------------------------------------------------------------------------*/