The program sends the current location over the cellular network.
Dependencies: aconno_I2C ublox-at-cellular-interface gnss ublox-cellular-base Lis2dh12 ublox-cellular-base-n2xx ublox-at-cellular-interface-n2xx low-power-sleep
Fork of example-gnss by
Diff: tasks/tasks.cpp
- Revision:
- 8:2bf886335fd0
- Child:
- 9:f943c09d9173
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tasks/tasks.cpp Fri Nov 30 16:19:41 2018 +0100
@@ -0,0 +1,85 @@
+/**
+ * Collection of all tasks
+ * Made by Jurica @ aconno
+ * More info @ aconno.de
+ *
+ */
+
+#include "tasks.h"
+#include "aconnoHelpers.h"
+#include "gnss.h"
+#include "aconnoConfig.h"
+
+extern MainStates state;
+extern char locationGlobal[UDP_MSG_SIZE_B];
+
+void idleCallback()
+{
+ while(1)
+ {
+ Thread::signal_wait(IDLE_SIGNAL);
+ Thread::signal_clr(IDLE_SIGNAL);
+ printf("In idle thread.\r\n");
+ while(state == STATE_IDLE)
+ {
+ wait_ms(1000);
+ }
+ }
+}
+
+void alarmCallback(myParams_t *myParams)
+{
+ //char udpMsg[UDP_MSG_SIZE_B];
+
+ while(1)
+ {
+ Thread::signal_wait(ALARM_SIGNAL);
+ Thread::signal_clr(ALARM_SIGNAL);
+ printf("Alarm thread.\r\n");
+ while(state == STATE_ALARM)
+ {
+ printf("Sending location on server...\r\n");
+ myParams->sara->sendUdpMsg(locationGlobal);
+ wait_ms(5000);
+ }
+ }
+}
+
+void alarmOffCallback()
+{
+ while(1)
+ {
+ Thread::signal_wait(ALARM_OFF_SIGNAL);
+ Thread::signal_clr(ALARM_OFF_SIGNAL);
+ printf("In alarm off thread.\r\n");
+ while(state == STATE_ALARM_OFF)
+ {
+ wait_ms(1000);
+ }
+ }
+}
+
+void movementCallback()
+{
+ while(1)
+ {
+ while(state == STATE_LIS_DETECTION)
+ {
+ printf("In movement thread.\r\n");
+ wait_ms(1000);
+ }
+ }
+}
+
+void gnssLocationCallback(GnssSerial *gnss)
+{
+ while(1)
+ {
+ while(state == STATE_ALARM)
+ {
+ getGPSData(locationGlobal, gnss);
+ Thread::wait(UPDATE_LOCATION_TIME_MS);
+ }
+ }
+}
+
