
MAX20361 Demo with LoRa Module on LP0 mode
Dependencies: SX1276GenericLib USBDevice
Fork of NonPingPong_PICO_LoRa_LP0 by
OT07Lib/OT07_lib.cpp@7:c0872971aef4, 2020-10-16 (annotated)
- Committer:
- walterluu
- Date:
- Fri Oct 16 06:50:42 2020 +0000
- Revision:
- 7:c0872971aef4
- Parent:
- 5:9e751733a6f3
MAX20361 Demo with LoRa Module on LP0 mode
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
walterluu | 3:85fc843a9d7d | 1 | |
walterluu | 3:85fc843a9d7d | 2 | #include "mbed.h" |
walterluu | 3:85fc843a9d7d | 3 | #include "OT07_lib.h" |
walterluu | 3:85fc843a9d7d | 4 | |
walterluu | 3:85fc843a9d7d | 5 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 6 | // OT07_write_register(char, char, char) writes single byte to OT07 |
walterluu | 3:85fc843a9d7d | 7 | // char I2C address |
walterluu | 3:85fc843a9d7d | 8 | // char OT07 register address |
walterluu | 3:85fc843a9d7d | 9 | // char data byte to be writen |
walterluu | 3:85fc843a9d7d | 10 | // returns 0 on success ACK, 1 on NACK |
walterluu | 3:85fc843a9d7d | 11 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 12 | |
walterluu | 3:85fc843a9d7d | 13 | int OT07_write_register(I2C *i2c, char I2C_add, char reg_add, char byte){ |
walterluu | 3:85fc843a9d7d | 14 | char data[2]; // char type ranges from 0 to 255 (8 bytes) |
walterluu | 3:85fc843a9d7d | 15 | int error; |
walterluu | 3:85fc843a9d7d | 16 | data[0] = reg_add; |
walterluu | 3:85fc843a9d7d | 17 | data[1] = byte; |
walterluu | 3:85fc843a9d7d | 18 | error = i2c->write(I2C_add,data,2); |
walterluu | 3:85fc843a9d7d | 19 | //if(DEBUG)db.printf("wr[%02X %02X %d]\r\n", data[0], data[1], error); |
walterluu | 3:85fc843a9d7d | 20 | return error; |
walterluu | 3:85fc843a9d7d | 21 | |
walterluu | 3:85fc843a9d7d | 22 | } |
walterluu | 3:85fc843a9d7d | 23 | |
walterluu | 3:85fc843a9d7d | 24 | /// **************************************************************************** |
walterluu | 3:85fc843a9d7d | 25 | // OT07_write_register(char, char, char *, int) writes multiple bytes to OT07 |
walterluu | 3:85fc843a9d7d | 26 | // char I2C address |
walterluu | 3:85fc843a9d7d | 27 | // char OT07 register address |
walterluu | 3:85fc843a9d7d | 28 | // char * data vector of bytes to be written |
walterluu | 3:85fc843a9d7d | 29 | // int number of bytes to write |
walterluu | 3:85fc843a9d7d | 30 | // returns 0 on success ACK, 1 on NACK |
walterluu | 3:85fc843a9d7d | 31 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 32 | |
walterluu | 3:85fc843a9d7d | 33 | int OT07_write_register(I2C *i2c, char I2C_add, char reg_add, char *bytes, int n){ |
walterluu | 3:85fc843a9d7d | 34 | int i; |
walterluu | 3:85fc843a9d7d | 35 | //set start address |
walterluu | 3:85fc843a9d7d | 36 | char data[16]; |
walterluu | 3:85fc843a9d7d | 37 | int error; |
walterluu | 3:85fc843a9d7d | 38 | data[0] = reg_add; |
walterluu | 3:85fc843a9d7d | 39 | for(i=1;i<=n;i++){ |
walterluu | 3:85fc843a9d7d | 40 | data[i] = bytes[i-1]; |
walterluu | 3:85fc843a9d7d | 41 | } |
walterluu | 3:85fc843a9d7d | 42 | error = i2c->write(I2C_add,data,n+1); // send n bytes of data |
walterluu | 3:85fc843a9d7d | 43 | |
walterluu | 3:85fc843a9d7d | 44 | return error; |
walterluu | 3:85fc843a9d7d | 45 | } |
walterluu | 3:85fc843a9d7d | 46 | |
walterluu | 3:85fc843a9d7d | 47 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 48 | // OT07_read_register(char, char, char *, int) read byte(s) from OT07 |
walterluu | 3:85fc843a9d7d | 49 | // char I2C address |
walterluu | 3:85fc843a9d7d | 50 | // char OT07 register address |
walterluu | 3:85fc843a9d7d | 51 | // char * data vector for read bytes to be stored in |
walterluu | 3:85fc843a9d7d | 52 | // int number of bytes to read |
walterluu | 3:85fc843a9d7d | 53 | // returns 0 on success, 1 on fail |
walterluu | 3:85fc843a9d7d | 54 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 55 | |
walterluu | 3:85fc843a9d7d | 56 | int OT07_read_register(I2C *i2c, char I2C_add, char reg_add, char *bytes, int n){ |
walterluu | 3:85fc843a9d7d | 57 | int error; |
walterluu | 3:85fc843a9d7d | 58 | error = i2c->write(I2C_add,®_add,1,1); |
walterluu | 3:85fc843a9d7d | 59 | if(error)return error; |
walterluu | 3:85fc843a9d7d | 60 | error = i2c->read(I2C_add,bytes,n); |
walterluu | 3:85fc843a9d7d | 61 | //if(DEBUG)db.printf("rr e[%d]\r\n",error); |
walterluu | 3:85fc843a9d7d | 62 | return error; |
walterluu | 3:85fc843a9d7d | 63 | } |
walterluu | 3:85fc843a9d7d | 64 | |
walterluu | 3:85fc843a9d7d | 65 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 66 | // search_I2C_bus(OT07_struct *) searches I2C address 0xA0, 0xA2, 0xA4 and 0xA6 |
walterluu | 3:85fc843a9d7d | 67 | // OT07_struct * structure array to holds I2C address and rom_ids |
walterluu | 3:85fc843a9d7d | 68 | // returns number of devices found |
walterluu | 3:85fc843a9d7d | 69 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 70 | |
walterluu | 3:85fc843a9d7d | 71 | int search_I2C_bus(I2C *i2c, OT07_struct OT07[]){ |
walterluu | 3:85fc843a9d7d | 72 | char data[16]; |
walterluu | 3:85fc843a9d7d | 73 | char I2C_add; |
walterluu | 3:85fc843a9d7d | 74 | //char GPIO; |
walterluu | 3:85fc843a9d7d | 75 | int error; |
walterluu | 3:85fc843a9d7d | 76 | int device_count = 0; |
walterluu | 3:85fc843a9d7d | 77 | int i; |
walterluu | 3:85fc843a9d7d | 78 | int j; |
walterluu | 3:85fc843a9d7d | 79 | for(i = 0;i<4;i++){ |
walterluu | 3:85fc843a9d7d | 80 | I2C_add = 0xA0 + i*2; |
walterluu | 3:85fc843a9d7d | 81 | error = OT07_read_register(i2c, I2C_add,0xff,data,1); |
walterluu | 3:85fc843a9d7d | 82 | |
walterluu | 3:85fc843a9d7d | 83 | if(error == 0){ |
walterluu | 3:85fc843a9d7d | 84 | if(data[0] == 0x30){ |
walterluu | 3:85fc843a9d7d | 85 | |
walterluu | 3:85fc843a9d7d | 86 | OT07[device_count].I2C_address = I2C_add; |
walterluu | 3:85fc843a9d7d | 87 | |
walterluu | 3:85fc843a9d7d | 88 | OT07_read_register(i2c, I2C_add,OT07_ROM_ID,data,ID_LENGTH); |
walterluu | 3:85fc843a9d7d | 89 | for(j=ID_LENGTH-1;j>=0;j--){ |
walterluu | 3:85fc843a9d7d | 90 | OT07[device_count].rom_id[j] = data[j]; |
walterluu | 3:85fc843a9d7d | 91 | |
walterluu | 3:85fc843a9d7d | 92 | } |
walterluu | 3:85fc843a9d7d | 93 | device_count++; |
walterluu | 3:85fc843a9d7d | 94 | } |
walterluu | 3:85fc843a9d7d | 95 | } |
walterluu | 3:85fc843a9d7d | 96 | |
walterluu | 3:85fc843a9d7d | 97 | } |
walterluu | 3:85fc843a9d7d | 98 | return device_count; |
walterluu | 3:85fc843a9d7d | 99 | } |
walterluu | 3:85fc843a9d7d | 100 | |
walterluu | 3:85fc843a9d7d | 101 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 102 | // convert_temperature(char) sends convert command to OT07 device |
walterluu | 3:85fc843a9d7d | 103 | // char I2C address |
walterluu | 3:85fc843a9d7d | 104 | // ***************************************************************************** |
walterluu | 3:85fc843a9d7d | 105 | |
walterluu | 3:85fc843a9d7d | 106 | void convert_temperature(I2C *i2c, char I2C_add){ // set convert bit to start conversion |
walterluu | 3:85fc843a9d7d | 107 | |
walterluu | 3:85fc843a9d7d | 108 | char data[2]; |
walterluu | 3:85fc843a9d7d | 109 | |
walterluu | 3:85fc843a9d7d | 110 | //read ADC_SETUP register 0x14 |
walterluu | 3:85fc843a9d7d | 111 | OT07_read_register(i2c, I2C_add, OT07_ADC_SETUP,data,1); |
walterluu | 3:85fc843a9d7d | 112 | |
walterluu | 3:85fc843a9d7d | 113 | //mask convert register value with 0x01 and write back register 0x14 |
walterluu | 3:85fc843a9d7d | 114 | OT07_write_register(i2c, I2C_add, OT07_ADC_SETUP, data[0]|0x01); |
walterluu | 3:85fc843a9d7d | 115 | } |
walterluu | 3:85fc843a9d7d | 116 | |
walterluu | 3:85fc843a9d7d | 117 | //****************************************************************************** |
walterluu | 3:85fc843a9d7d | 118 | // get_temperature(char) read temperature from OT07 device FIFO register |
walterluu | 3:85fc843a9d7d | 119 | // char I2C address |
walterluu | 3:85fc843a9d7d | 120 | // returns TempResponse tempC = temperature in oC |
walterluu | 3:85fc843a9d7d | 121 | // status = register read result |
walterluu | 3:85fc843a9d7d | 122 | //****************************************************************************** |
walterluu | 3:85fc843a9d7d | 123 | |
walterluu | 3:85fc843a9d7d | 124 | TempResponse get_temperature(I2C *i2c, char I2C_add){ |
walterluu | 3:85fc843a9d7d | 125 | char data[2]; |
walterluu | 3:85fc843a9d7d | 126 | double T; |
walterluu | 3:85fc843a9d7d | 127 | int count; |
walterluu | 3:85fc843a9d7d | 128 | |
walterluu | 3:85fc843a9d7d | 129 | // Read temperature from FIFO, 2 bytes |
walterluu | 3:85fc843a9d7d | 130 | int error = OT07_read_register(i2c, I2C_add,OT07_FIFO_DATA,data,2); |
walterluu | 3:85fc843a9d7d | 131 | |
walterluu | 3:85fc843a9d7d | 132 | //calculate temperture from data |
walterluu | 3:85fc843a9d7d | 133 | count = (int)(data[0]*256 + data[1]); |
walterluu | 3:85fc843a9d7d | 134 | if (count >= 32768)count = count - 65536; // 2s comp |
walterluu | 3:85fc843a9d7d | 135 | T = (double)count*0.005; |
walterluu | 3:85fc843a9d7d | 136 | |
walterluu | 3:85fc843a9d7d | 137 | TempResponse resp; |
walterluu | 3:85fc843a9d7d | 138 | resp.tempC = T; |
walterluu | 3:85fc843a9d7d | 139 | resp.status = error; // 1 for nack/error. 0 for ack/success |
walterluu | 3:85fc843a9d7d | 140 | return resp; |
walterluu | 3:85fc843a9d7d | 141 | } |
walterluu | 3:85fc843a9d7d | 142 | |
walterluu | 5:9e751733a6f3 | 143 | |
walterluu | 5:9e751733a6f3 | 144 | double calc_temperature(char *data) { |
walterluu | 5:9e751733a6f3 | 145 | |
walterluu | 5:9e751733a6f3 | 146 | // data is an array of size 2 |
walterluu | 5:9e751733a6f3 | 147 | |
walterluu | 5:9e751733a6f3 | 148 | int count = (int)(data[0]*256 + data[1]); |
walterluu | 5:9e751733a6f3 | 149 | if (count >= 32768)count = count - 65536; // 2s comp |
walterluu | 5:9e751733a6f3 | 150 | double Temp = (double)count*0.005; |
walterluu | 5:9e751733a6f3 | 151 | |
walterluu | 5:9e751733a6f3 | 152 | return Temp; |
walterluu | 5:9e751733a6f3 | 153 | } |
walterluu | 5:9e751733a6f3 | 154 | |
walterluu | 3:85fc843a9d7d | 155 | // other functions |
walterluu | 3:85fc843a9d7d | 156 | |
walterluu | 3:85fc843a9d7d | 157 | //void write_settings_file(int interval, bool device_logged[MAX_DEVICES]) |
walterluu | 3:85fc843a9d7d | 158 | //{ |
walterluu | 3:85fc843a9d7d | 159 | // FILE *fp = fopen(settings_file, "w"); |
walterluu | 3:85fc843a9d7d | 160 | // if (fp != NULL) |
walterluu | 3:85fc843a9d7d | 161 | // { |
walterluu | 3:85fc843a9d7d | 162 | // fprintf(fp, "i %d\r\n", interval); |
walterluu | 3:85fc843a9d7d | 163 | // |
walterluu | 3:85fc843a9d7d | 164 | // fprintf(fp, "d"); |
walterluu | 3:85fc843a9d7d | 165 | // |
walterluu | 3:85fc843a9d7d | 166 | // for(int i = 0; i < MAX_DEVICES; i++) |
walterluu | 3:85fc843a9d7d | 167 | // { |
walterluu | 3:85fc843a9d7d | 168 | // if(device_logged[i] == true) |
walterluu | 3:85fc843a9d7d | 169 | // { |
walterluu | 3:85fc843a9d7d | 170 | // fprintf(fp," %d", i); |
walterluu | 3:85fc843a9d7d | 171 | // } |
walterluu | 3:85fc843a9d7d | 172 | // } |
walterluu | 3:85fc843a9d7d | 173 | // fprintf(fp,"\r\n"); |
walterluu | 3:85fc843a9d7d | 174 | // |
walterluu | 3:85fc843a9d7d | 175 | // fclose(fp); |
walterluu | 3:85fc843a9d7d | 176 | // } |
walterluu | 3:85fc843a9d7d | 177 | // return; |
walterluu | 3:85fc843a9d7d | 178 | //} |
walterluu | 3:85fc843a9d7d | 179 | |
walterluu | 3:85fc843a9d7d | 180 | //void clear_log_file() |
walterluu | 3:85fc843a9d7d | 181 | //{ |
walterluu | 3:85fc843a9d7d | 182 | // FILE *fp = fopen(log_file, "w"); |
walterluu | 3:85fc843a9d7d | 183 | // if (fp != NULL) |
walterluu | 3:85fc843a9d7d | 184 | // { |
walterluu | 3:85fc843a9d7d | 185 | // fclose(fp); |
walterluu | 3:85fc843a9d7d | 186 | // } |
walterluu | 3:85fc843a9d7d | 187 | // return; |
walterluu | 3:85fc843a9d7d | 188 | //} |
walterluu | 3:85fc843a9d7d | 189 | |
walterluu | 3:85fc843a9d7d | 190 | //bool print_settings_file() |
walterluu | 3:85fc843a9d7d | 191 | //{ |
walterluu | 3:85fc843a9d7d | 192 | // FILE *fp = fopen(settings_file, "r"); |
walterluu | 3:85fc843a9d7d | 193 | // if (fp != NULL) |
walterluu | 3:85fc843a9d7d | 194 | // { |
walterluu | 3:85fc843a9d7d | 195 | // pc.printf("*\r\n"); |
walterluu | 3:85fc843a9d7d | 196 | // |
walterluu | 3:85fc843a9d7d | 197 | // // Read contents from file |
walterluu | 3:85fc843a9d7d | 198 | // char c = fgetc(fp); |
walterluu | 3:85fc843a9d7d | 199 | // |
walterluu | 3:85fc843a9d7d | 200 | // while (!feof(fp)) |
walterluu | 3:85fc843a9d7d | 201 | // { |
walterluu | 3:85fc843a9d7d | 202 | // pc.printf("%c", c); |
walterluu | 3:85fc843a9d7d | 203 | // c = fgetc(fp); |
walterluu | 3:85fc843a9d7d | 204 | // } |
walterluu | 3:85fc843a9d7d | 205 | // |
walterluu | 3:85fc843a9d7d | 206 | // pc.printf("*\r\n"); |
walterluu | 3:85fc843a9d7d | 207 | // |
walterluu | 3:85fc843a9d7d | 208 | // fclose(fp); |
walterluu | 3:85fc843a9d7d | 209 | // } |
walterluu | 3:85fc843a9d7d | 210 | // else |
walterluu | 3:85fc843a9d7d | 211 | // { |
walterluu | 3:85fc843a9d7d | 212 | // return false; |
walterluu | 3:85fc843a9d7d | 213 | // } |
walterluu | 3:85fc843a9d7d | 214 | // return true; |
walterluu | 3:85fc843a9d7d | 215 | //} |
walterluu | 3:85fc843a9d7d | 216 | |
walterluu | 3:85fc843a9d7d | 217 | //bool print_log_file() |
walterluu | 3:85fc843a9d7d | 218 | //{ |
walterluu | 3:85fc843a9d7d | 219 | // FILE *fp = fopen(log_file, "r"); |
walterluu | 3:85fc843a9d7d | 220 | // if (fp != NULL) |
walterluu | 3:85fc843a9d7d | 221 | // { |
walterluu | 3:85fc843a9d7d | 222 | // pc.printf("*\r\n"); |
walterluu | 3:85fc843a9d7d | 223 | // |
walterluu | 3:85fc843a9d7d | 224 | // // Read contents from file |
walterluu | 3:85fc843a9d7d | 225 | // char c = fgetc(fp); |
walterluu | 3:85fc843a9d7d | 226 | // while (!feof(fp)) |
walterluu | 3:85fc843a9d7d | 227 | // { |
walterluu | 3:85fc843a9d7d | 228 | // pc.printf("%c", c); |
walterluu | 3:85fc843a9d7d | 229 | // c = fgetc(fp); |
walterluu | 3:85fc843a9d7d | 230 | // } |
walterluu | 3:85fc843a9d7d | 231 | // |
walterluu | 3:85fc843a9d7d | 232 | // pc.printf("*\r\n"); |
walterluu | 3:85fc843a9d7d | 233 | // |
walterluu | 3:85fc843a9d7d | 234 | // fclose(fp); |
walterluu | 3:85fc843a9d7d | 235 | // } |
walterluu | 3:85fc843a9d7d | 236 | // else |
walterluu | 3:85fc843a9d7d | 237 | // { |
walterluu | 3:85fc843a9d7d | 238 | // return false; |
walterluu | 3:85fc843a9d7d | 239 | // } |
walterluu | 3:85fc843a9d7d | 240 | // return true; |
walterluu | 3:85fc843a9d7d | 241 | //} |
walterluu | 3:85fc843a9d7d | 242 | |
walterluu | 3:85fc843a9d7d | 243 | //int getline(char **lineptr, int *n, FILE *stream) { |
walterluu | 3:85fc843a9d7d | 244 | // char *bufptr = NULL; |
walterluu | 3:85fc843a9d7d | 245 | // char *p = bufptr; |
walterluu | 3:85fc843a9d7d | 246 | // size_t size; |
walterluu | 3:85fc843a9d7d | 247 | // int c; |
walterluu | 3:85fc843a9d7d | 248 | // |
walterluu | 3:85fc843a9d7d | 249 | // if (lineptr == NULL) { |
walterluu | 3:85fc843a9d7d | 250 | // return -1; |
walterluu | 3:85fc843a9d7d | 251 | // } |
walterluu | 3:85fc843a9d7d | 252 | // if (stream == NULL) { |
walterluu | 3:85fc843a9d7d | 253 | // return -1; |
walterluu | 3:85fc843a9d7d | 254 | // } |
walterluu | 3:85fc843a9d7d | 255 | // if (n == NULL) { |
walterluu | 3:85fc843a9d7d | 256 | // return -1; |
walterluu | 3:85fc843a9d7d | 257 | // } |
walterluu | 3:85fc843a9d7d | 258 | // bufptr = *lineptr; |
walterluu | 3:85fc843a9d7d | 259 | // size = *n; |
walterluu | 3:85fc843a9d7d | 260 | // |
walterluu | 3:85fc843a9d7d | 261 | // c = fgetc(stream); |
walterluu | 3:85fc843a9d7d | 262 | // if (c == EOF) { |
walterluu | 3:85fc843a9d7d | 263 | // return -1; |
walterluu | 3:85fc843a9d7d | 264 | // } |
walterluu | 3:85fc843a9d7d | 265 | // if (bufptr == NULL) { |
walterluu | 3:85fc843a9d7d | 266 | // bufptr = (char *)malloc(128); |
walterluu | 3:85fc843a9d7d | 267 | // if (bufptr == NULL) { |
walterluu | 3:85fc843a9d7d | 268 | // return -1; |
walterluu | 3:85fc843a9d7d | 269 | // } |
walterluu | 3:85fc843a9d7d | 270 | // size = 128; |
walterluu | 3:85fc843a9d7d | 271 | // } |
walterluu | 3:85fc843a9d7d | 272 | // p = bufptr; |
walterluu | 3:85fc843a9d7d | 273 | // while(c != EOF) { |
walterluu | 3:85fc843a9d7d | 274 | // if ((p - bufptr) > (size - 1)) { |
walterluu | 3:85fc843a9d7d | 275 | // size = size + 128; |
walterluu | 3:85fc843a9d7d | 276 | // bufptr = (char *)realloc(bufptr, size); |
walterluu | 3:85fc843a9d7d | 277 | // if (bufptr == NULL) { |
walterluu | 3:85fc843a9d7d | 278 | // return -1; |
walterluu | 3:85fc843a9d7d | 279 | // } |
walterluu | 3:85fc843a9d7d | 280 | // } |
walterluu | 3:85fc843a9d7d | 281 | // *p++ = c; |
walterluu | 3:85fc843a9d7d | 282 | // if (c == '\n') { |
walterluu | 3:85fc843a9d7d | 283 | // break; |
walterluu | 3:85fc843a9d7d | 284 | // } |
walterluu | 3:85fc843a9d7d | 285 | // c = fgetc(stream); |
walterluu | 3:85fc843a9d7d | 286 | // } |
walterluu | 3:85fc843a9d7d | 287 | // |
walterluu | 3:85fc843a9d7d | 288 | // *p++ = '\0'; |
walterluu | 3:85fc843a9d7d | 289 | // *lineptr = bufptr; |
walterluu | 3:85fc843a9d7d | 290 | // *n = size; |
walterluu | 3:85fc843a9d7d | 291 | // |
walterluu | 3:85fc843a9d7d | 292 | // return p - bufptr - 1; |
walterluu | 3:85fc843a9d7d | 293 | //} |
walterluu | 3:85fc843a9d7d | 294 | // |
walterluu | 3:85fc843a9d7d | 295 | //bool print_settings_file_2() |
walterluu | 3:85fc843a9d7d | 296 | //{ |
walterluu | 3:85fc843a9d7d | 297 | // char * line = NULL; |
walterluu | 3:85fc843a9d7d | 298 | // int len = 0; |
walterluu | 3:85fc843a9d7d | 299 | // |
walterluu | 3:85fc843a9d7d | 300 | // FILE *fp = fopen(settings_file, "r"); |
walterluu | 3:85fc843a9d7d | 301 | // if (fp != NULL) |
walterluu | 3:85fc843a9d7d | 302 | // { |
walterluu | 3:85fc843a9d7d | 303 | // pc.printf("*\r\n"); |
walterluu | 3:85fc843a9d7d | 304 | // |
walterluu | 3:85fc843a9d7d | 305 | // // Read contents from file |
walterluu | 3:85fc843a9d7d | 306 | // while ((getline(&line, &len, fp)) != -1) |
walterluu | 3:85fc843a9d7d | 307 | // { |
walterluu | 3:85fc843a9d7d | 308 | // pc.printf("%s", line); |
walterluu | 3:85fc843a9d7d | 309 | // } |
walterluu | 3:85fc843a9d7d | 310 | // pc.printf("*\r\n"); |
walterluu | 3:85fc843a9d7d | 311 | // |
walterluu | 3:85fc843a9d7d | 312 | // fclose(fp); |
walterluu | 3:85fc843a9d7d | 313 | // } |
walterluu | 3:85fc843a9d7d | 314 | // else |
walterluu | 3:85fc843a9d7d | 315 | // { |
walterluu | 3:85fc843a9d7d | 316 | // return false; |
walterluu | 3:85fc843a9d7d | 317 | // } |
walterluu | 3:85fc843a9d7d | 318 | // return true; |
walterluu | 3:85fc843a9d7d | 319 | //} |
walterluu | 3:85fc843a9d7d | 320 | // |
walterluu | 3:85fc843a9d7d | 321 | ////returns true if settings file exists and is in the proper format |
walterluu | 3:85fc843a9d7d | 322 | //bool apply_settings_file(bool (&logged_devices)[MAX_DEVICES], int& interval) |
walterluu | 3:85fc843a9d7d | 323 | //{ |
walterluu | 3:85fc843a9d7d | 324 | // |
walterluu | 3:85fc843a9d7d | 325 | // char * line = NULL; |
walterluu | 3:85fc843a9d7d | 326 | // int len = 0; |
walterluu | 3:85fc843a9d7d | 327 | // int line_number = 0; |
walterluu | 3:85fc843a9d7d | 328 | // |
walterluu | 3:85fc843a9d7d | 329 | // |
walterluu | 3:85fc843a9d7d | 330 | // FILE *fp = fopen("/sd/settings.txt", "r"); |
walterluu | 3:85fc843a9d7d | 331 | // if (fp != NULL) |
walterluu | 3:85fc843a9d7d | 332 | // { |
walterluu | 3:85fc843a9d7d | 333 | // |
walterluu | 3:85fc843a9d7d | 334 | // //initialize devices to all false; |
walterluu | 3:85fc843a9d7d | 335 | // for(int i = 0; i < MAX_DEVICES; i++) |
walterluu | 3:85fc843a9d7d | 336 | // { |
walterluu | 3:85fc843a9d7d | 337 | // logged_devices[i] = false; |
walterluu | 3:85fc843a9d7d | 338 | // } |
walterluu | 3:85fc843a9d7d | 339 | // |
walterluu | 3:85fc843a9d7d | 340 | // // Read contents from file |
walterluu | 3:85fc843a9d7d | 341 | // while ((getline(&line, &len, fp)) != -1) |
walterluu | 3:85fc843a9d7d | 342 | // { |
walterluu | 3:85fc843a9d7d | 343 | // line_number++; |
walterluu | 3:85fc843a9d7d | 344 | // |
walterluu | 3:85fc843a9d7d | 345 | // char i = 0; |
walterluu | 3:85fc843a9d7d | 346 | // char c = line[i]; |
walterluu | 3:85fc843a9d7d | 347 | // while(c != '\0') |
walterluu | 3:85fc843a9d7d | 348 | // { |
walterluu | 3:85fc843a9d7d | 349 | // int number; |
walterluu | 3:85fc843a9d7d | 350 | // int n; |
walterluu | 3:85fc843a9d7d | 351 | // sscanf((line+i), "%d%n", &number, &n); |
walterluu | 3:85fc843a9d7d | 352 | // if(isdigit(c)) |
walterluu | 3:85fc843a9d7d | 353 | // { |
walterluu | 3:85fc843a9d7d | 354 | // if(line_number == 1) |
walterluu | 3:85fc843a9d7d | 355 | // { |
walterluu | 3:85fc843a9d7d | 356 | // interval = number; |
walterluu | 3:85fc843a9d7d | 357 | // } |
walterluu | 3:85fc843a9d7d | 358 | // else if(line_number == 2) |
walterluu | 3:85fc843a9d7d | 359 | // { |
walterluu | 3:85fc843a9d7d | 360 | // logged_devices[number] = true; |
walterluu | 3:85fc843a9d7d | 361 | // } |
walterluu | 3:85fc843a9d7d | 362 | // if(n > 1) |
walterluu | 3:85fc843a9d7d | 363 | // i = i + (n - 1); |
walterluu | 3:85fc843a9d7d | 364 | // } |
walterluu | 3:85fc843a9d7d | 365 | // i++; |
walterluu | 3:85fc843a9d7d | 366 | // c = line[i]; |
walterluu | 3:85fc843a9d7d | 367 | // } |
walterluu | 3:85fc843a9d7d | 368 | // } |
walterluu | 3:85fc843a9d7d | 369 | // |
walterluu | 3:85fc843a9d7d | 370 | // fclose(fp); |
walterluu | 3:85fc843a9d7d | 371 | // } |
walterluu | 3:85fc843a9d7d | 372 | // else |
walterluu | 3:85fc843a9d7d | 373 | // { |
walterluu | 3:85fc843a9d7d | 374 | // return false; |
walterluu | 3:85fc843a9d7d | 375 | // } |
walterluu | 3:85fc843a9d7d | 376 | // |
walterluu | 3:85fc843a9d7d | 377 | // return true; |
walterluu | 3:85fc843a9d7d | 378 | // |
walterluu | 3:85fc843a9d7d | 379 | //} |