From 8321e9e5a40aadd62a2495fe7fa434a029a84b2c Mon Sep 17 00:00:00 2001 From: Demo User Date: Thu, 27 Feb 2020 15:31:36 -0600 Subject: [PATCH] all measures --- daq | Bin 13748 -> 13884 bytes daq.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 71 insertions(+), 11 deletions(-) diff --git a/daq b/daq index 3db01afdd59a56022554f6810523dd79be978493..4bfcfbb92ed149b08ff8b5e76f363662f1b8ce9c 100755 GIT binary patch delta 5845 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 N&GB+1ewc0M{{ZIG6M6su diff --git a/daq.c b/daq.c index 89f06dc..dfc49aa 100644 --- a/daq.c +++ b/daq.c @@ -24,10 +24,14 @@ #define get_readigns "Q\r\n" #define percent_oxigen "%\r\n" #define ppm_oxigen "O\r\n" +#define M_zZTHBD "M 14406\r\n" +#define Readings_CM "Q\r\n" +#define Readings_OX "A\r\n" int sensConf(unsigned char uartNumber, int baudRate, unsigned char mode[], unsigned char response[]); int measure(unsigned char uartNumber, unsigned char command[], int multiplier, int excess); +char *gmeasures(char src[], char fval, int nchar); int str2int(unsigned char *ptr); @@ -36,8 +40,10 @@ int DAQ(int t_hrs, int tm_s); int main(int argc, char *argv[]){ - int T,t; + //char bioxCsen[], OXsen[], monoxCsen[]; + int T,t; + if(argc!=3){ printf("Invalid number of arguments,\n usage: daq \nexiting!\n"); return -2; @@ -48,13 +54,16 @@ int main(int argc, char *argv[]){ sensConf(GC0017, B9600, Pulling_Mode, " K 00002\r\n"); printf("Configuring CO sensor\n"); sensConf(CM31911, B9600, Pulling_Mode, "K 00002\r\n"); + sensConf(CM31911, B9600, M_zZTHBD, "M 14406\r\n"); printf("Configuring O2 sensor\n"); sensConf(OX0052, B9600, OX_P_Mode, "M 01\r\n"); //adquisición T = atoi(argv[1]);//str to int t = atoi(argv[2]); + printf("Starting data acquisition with duration of %dh and every %ds\n", T, t); + DAQ(T, t); sleep(1); @@ -132,7 +141,15 @@ int str2int(unsigned char *ptr){ int DAQ(int t_hrs, int tm_s) { FILE* dfp; // create a file pointer dfp + int co2, co, o2, temp; + unsigned char co_uf[10]="", co_f[10]="", + o2_ppm[10]="", o2_xcent[10]="", + co2_temp[10]="", o2_temp[10]="", + co2_press[10]="", o2_press[10]="", + co2_relH[10]=""; + + clock_t start_t, end_t; time_t new_time, prev_time, t0; double tm_ms = tm_s*1e6 - 0.20e6; @@ -142,7 +159,10 @@ int DAQ(int t_hrs, int tm_s) dfp = fopen(data_file_path, "w"); // open file for writing time_t curtime; time(&curtime); - fprintf(dfp, "%sStarting DAQ\ntime(s)\tCO2(ppm)\tCO(ppm)\tO2(ppm)\tTemperaure(ºC*10)\n", ctime(&curtime)); // send the value to the file + fprintf(dfp, "%sStarting DAQ\ntime(s)\tCO2(ppm)\tCO unfil(ppm)\tCO fil(ppm)"\ + "\tO2(ppm)\tO2(%c)\tTemperaure C02(ºC*10)\tTemperaure 02(ºC)"\ + "\tPressure C02(.mBar)\tPresure 02(mBar)\tRelative Humidity(.)\n", + ctime(&curtime), '%'); // send the value to the file fclose(dfp); // close the file using the file pointer //ciclo @@ -158,17 +178,48 @@ int DAQ(int t_hrs, int tm_s) start_t = clock(); new_time = time(NULL); - uartTransmit(CM31911, fil_gas_con); - uartTransmit(GC0017, fil_gas_con); - co = read_measure(CM31911, 1, 0); - uartTransmit(CM31911, Temperature); - uartTransmit(OX0052, ppm_oxigen); - co2 = read_measure(GC0017, 10, 0); - o2 = read_measure(OX0052, 1, 0); - temp = read_measure(CM31911, 1, 1000); + //command transmitions + uartTransmit(CM31911, Readings_CM); + uartTransmit(OX0052, Readings_OX); + uartTransmit(GC0017, unf_gas_con); + + //uart receptions + uartReceive(OX0052); + uartReceive(CM31911); + co2 = read_measure(GC0017, 10, 0); + + //co = read_measure(CM31911, 1, 0); + //uartTransmit(CM31911, Temperature); + //o2 = read_measure(OX0052, 1, 0); + //temp = read_measure(CM31911, 1, 1000); + //printf("unfil co: %s\n",gmeasures(receive[CM31911], 'H', 5)); + //printf("unfil co: %s\n",gmeasures(receive[CM31911], 'Z', 5)); + + memcpy(co_uf, gmeasures(receive[CM31911], 'z', 5), 5); + memcpy(co_f, gmeasures(receive[CM31911], 'Z', 5), 5); + memcpy(o2_ppm, gmeasures(receive[OX0052], 'O', 6), 6); + memcpy(o2_xcent, gmeasures(receive[OX0052], '%', 6), 6); + memcpy(co2_temp, gmeasures(receive[CM31911], 'T', 5), 5); + memcpy(o2_temp, gmeasures(receive[OX0052], 'T', 5), 5); + memcpy(co2_press,gmeasures(receive[CM31911], 'B', 5), 5); + memcpy(o2_press, gmeasures(receive[OX0052], 'P', 4), 4); + memcpy(co2_relH, gmeasures(receive[CM31911], 'H', 5), 5); + + + //printf("pressure: %s\n",gmeasures(receive[OX0052], 'P', 4)); + //printf("oxigen xcent: %s\n",gmeasures(receive[OX0052], '%', 6)); + //printf("Temperature: %s\n",gmeasures(receive[OX0052], 'T', 5)); + dfp = fopen(data_file_path, "a"); // open file for writing - fprintf(dfp, "%d \t%d\t%d\t%d\t%d\n", (int)(new_time-t0), co2, co, o2, temp); // send the value to the file + fprintf(dfp, "%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", + (int)(new_time-t0), co2, co_uf, co_f, o2_ppm, o2_xcent, + co2_temp, o2_temp, co2_press, o2_press, co2_relH); + /* gmeasures(receive[CM31911], 'Z', 5), gmeasures(receive[OX0052], 'O', 6), + gmeasures(receive[OX0052], '%', 6), gmeasures(receive[CM31911], 'T', 5), + gmeasures(receive[OX0052], 'T', 5), gmeasures(receive[CM31911], 'P', 5), + gmeasures(receive[OX0052], 'P', 4), gmeasures(receive[CM31911], 'H', 5)); // send the value to the file + */ fclose(dfp); // close the file using the file pointer new_time += tm_s; end_t = clock(); @@ -179,3 +230,12 @@ int DAQ(int t_hrs, int tm_s) return 0; } +char *gmeasures(char src[], char fval, int nchar){ + char * ptr = &src[0]; + static char s[10]=""; + + while(*ptr != fval) ptr++; + ptr += 2; + memcpy(s, ptr, nchar); + return s; +} \ No newline at end of file