Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / listings / interface.h
index 24e369a..31fa4d3 100644 (file)
@@ -1,32 +1,65 @@
 #ifndef INTERFACE_H
 #define INTERFACE_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include <stdbool.h>
 #include <stdint.h>
 #include <stdarg.h>
 
-#define read16() 256*(uint8_t)read_byte() + (uint8_t)read_byte()
-#define from16(a, b) 256*a+b
-#define write16(i) { write_byte((uint8_t)i/256); write_byte((uint8_t)i%256); }
+#ifdef LINUX
+#define APINS 128
+#define DPINS 128
+#define STACKSIZE 1024
+#define MEMSIZE 1024
+#define HAVELED 1
+#define HAVEHB 1
+#elif defined STM
+...
+#endif
+
+/* Communication */
+bool    input_available(void);
 uint8_t read_byte(void);
-void write_byte(uint8_t b);
+void    write_byte(uint8_t b);
 
+/* Analog and digital pins */
+#if DPINS > 0
 void write_dpin(uint8_t i, bool b);
 bool read_dpin(uint8_t i);
-
-void write_apin(uint8_t i, uint8_t a);
+#endif
+#if APINS > 0
+void    write_apin(uint8_t i, uint8_t a);
 uint8_t read_apin(uint8_t i);
+#endif
 
+/* UserLED */
+#if HAVELED == 1
 void led_on(uint8_t i);
 void led_off(uint8_t i);
+#endif
 
-long millis(void);
-bool input_available(void);
-void delay(long ms);
+#if HAVEHB == 1
+uint16_t get_hb();
+bool     valid_hb();
+uint16_t get_spo2();
+bool     valid_spo2();
+#endif
 
-void setup(void);
-void debug(char *fmt, ...);
+/* Delay and communication */
+unsigned long getmillis(void);
+void msdelay(unsigned long ms);
+
+/* Auxilliary */
+void real_setup(void);
+void real_debug(char *fmt, ...);
 void pdie(char *s);
 void die(char *fmt, ...);
+void reset(void);
 
+#ifdef __cplusplus
+}
+#endif
 #endif