Psi Swarm Code V0.41 [With Beautiful Meme program]

Dependencies:   PsiSwarmLibrary mbed

Fork of BeautifulMemeProjectBT by Alan Millard

Revision:
30:513457c1ad12
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BeautifulMeme/bmeme.h	Tue Mar 15 00:58:43 2016 +0000
@@ -0,0 +1,58 @@
+/// PsiSwarm Beautiful Meme Project Source Code
+/// Version 0.41
+/// James Hilder, Alan Millard, Homero Elizondo, Jon Timmis
+/// University of York
+
+
+#ifndef BMEME_H
+#define BMEME_H
+
+#include "main.h"
+#include "beacon.h"
+#include "programs.h"
+#include "vector.h"
+#include <math.h>
+
+// Define the on-period for a IR pulse in microseconds (eg 50000 for 2Hz system, 25000 for a 4Hz system or 20000 for a 5Hz system)
+#define BEACON_PERIOD 25000 
+
+
+// Define the on-period for a IR pulse in microseconds (eg 50000 for 2Hz system, 25000 for a 4Hz system or 20000 for a 5Hz system)
+#define BEACON_PERIOD 25000        
+
+extern char beacon_found;                       // This will be a 1 if beacon is detected, 0 if it isn't 
+extern int beacon_heading;                      // The heading from the last time the beacon was detected
+extern char robots_found[8];                    // These will be a 1 when the respective robot [excluding self] was detected during the previous 500ms window
+extern int robots_heading[8];                   // These are the headings from the last time the respective robots were detected
+extern unsigned short robots_distance[8];       // This is the maximum sensor value from the last time the respective robot was detected
+extern unsigned short reflected_sensor_data[8]; // The reflected IR values when this robots emitters are on
+extern unsigned short background_sensor_data[8];// The raw IR values when no robot (or beacon) should have its IR on
+extern char disable_ir_emitters; 
+extern char step_cycle;
+extern char target_reached;
+extern char recharging_state;
+extern char prog_name [17];
+extern char prog_info [17];
+extern char main_program_state;
+extern char program_changed;   
+extern char program_run_init;
+extern float battery_low_threshold;      
+extern float battery_high_threshold; 
+extern int flocking_headings[8];
+
+char * get_program_name(int index);
+void set_program(int index);
+void set_program_info(char * info);
+
+void update_display(void);
+void display_debug_info(void);
+
+void bmeme_user_code_setup(void);
+void bmeme_user_code_loop(void);
+void bmeme_handle_switch_event(char switch_state); 
+void bmeme_handle_user_serial_message(char * message, char length, char interface);
+
+void display_ir_readings(void);
+void out(const char* format, ...) ;   
+
+#endif
\ No newline at end of file