Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Eeabp1.h
00001 #if !defined(EEAPP1_H) 00002 #define EEAPP1_H 00003 #include "mbed.h" 00004 #include "types.h" 00005 #include "Sht31.h" 00006 #include "ADXL345_I2C.h" 00007 00008 typedef enum { 00009 LED_OFF, 00010 LED_ON, 00011 LED_BLINK_FAST, 00012 LED_BLINK_MID, 00013 LED_BLINK_SLOW, 00014 }EeabLedState; 00015 00016 typedef enum { 00017 GROVE_CH1, 00018 GROVE_CH2, 00019 }EeabGrovePort; 00020 00021 typedef enum { 00022 GROVE_SIG1, 00023 GROVE_SIG2, 00024 }EeabGroveSig; 00025 00026 typedef enum { 00027 GROVE_DIO, 00028 GROVE_ANALOG, 00029 }EeabGrovePortType; 00030 00031 typedef enum { 00032 GROVE_DIO_OUT, 00033 GROVE_DIO_IN, 00034 }EeabGroveDioDirection; 00035 00036 typedef enum { 00037 GROVE_DIO_LOW = 0, 00038 GROVE_DIO_HIGH = 1, 00039 }EeabGroveDio; 00040 00041 class Eeabp1 00042 { 00043 public: 00044 Eeabp1(); 00045 int setLedState(EeabLedState state); 00046 void loop(void); 00047 int debug(const char * format, ...); 00048 int setLoRaPower(bool on); 00049 int sendLoRaString(const char * format, ...); 00050 int sendLoRaStringAndReceiveResponse(char res[], const char * format, ...); 00051 int sendLoRaBinary(const char *payload, size_t len); 00052 void setGrovePower(bool on); 00053 int setGrovePortType(EeabGrovePort port, EeabGrovePortType type); 00054 int setGroveDioDirection(EeabGrovePort port, EeabGroveDioDirection dir, Callback<void()> func = NULL); 00055 int setGroveDio(EeabGrovePort port, EeabGroveDio val); 00056 int setGroveDio(EeabGrovePort port, EeabGroveSig sig , EeabGroveDio val); 00057 int getGroveDio(EeabGrovePort port, EeabGroveSig sig); 00058 float getGroveAnalog(EeabGrovePort port, EeabGroveSig sig); 00059 int enableTempHumidSensor(void); 00060 float getTemp(void); 00061 float getHumid(void); 00062 int enableAccelerometer(void); 00063 int getAcc(int *x, int *y, int *z); 00064 00065 private: 00066 DigitalOut pwr_en; 00067 /* state LED */ 00068 DigitalOut led; 00069 EeabLedState led_state; 00070 /* LoRa */ 00071 RawSerial *serial; 00072 DigitalOut lora_power; 00073 DigitalOut lora_reset; 00074 bool lora_enabled; 00075 /* Grove */ 00076 DigitalOut grove_power; 00077 bool grove_enabled; 00078 DigitalOut grv_sel2a; 00079 DigitalOut grv_sel2g; 00080 DigitalOut grv_sel1a; 00081 DigitalOut grv_sel1g; 00082 00083 DigitalOut *grv_p1s1do; //Port1, Signal1, Digital Out // GP2 00084 DigitalOut *grv_p1s2do; //Port1, Signal2, Digital Out // GP1 00085 InterruptIn *grv_p1s1di; //Port1, Signal1, Digital In // GP2 00086 InterruptIn *grv_p1s2di; //Port1, Signal1, Digital In // GP2 00087 AnalogIn grv_p1s1a; //Port1, Signal1, Analog In // AN2 00088 AnalogIn grv_p1s2a; //Port1, Signal2, Analog In // AN2 00089 00090 DigitalOut *grv_p2s1do; //Port2, Signal1, Digital Out // GP4 00091 DigitalOut *grv_p2s2do; //Port2, Signal2, Digital Out // GP3 00092 InterruptIn *grv_p2s1di; //Port2, Signal1, Digital In // GP4 00093 InterruptIn *grv_p2s2di; //Port2, Signal2, Digital In // GP3 00094 AnalogIn grv_p2s1a; //Port2, Signal1, Analog In // AN4 00095 AnalogIn grv_p2s2a; //Port2, Signal2, Analog In // AN3 00096 00097 Sht31 *temp_humid_sensor; 00098 ADXL345_I2C *accelerometer; 00099 00100 void flushSerial(); 00101 ssize_t getline(char *buf, size_t bufsize, int timeout_ms); 00102 int chkSerialChar(const char,uint16_t); 00103 int waitSerialChar(const char,uint16_t); 00104 int chkSerialCharOk(); 00105 int chkSerialCharRes(char); 00106 00107 int getLoraPort(void) { 00108 static int port = 1; 00109 00110 port += 1; 00111 if (233 < port) 00112 port = 1; 00113 00114 return port; 00115 } 00116 }; 00117 00118 #endif /* !defined(EEAPP1_H) */
Generated on Sun Jul 24 2022 23:52:11 by
