void DeleteTemp(void) { STRING *list = NULL, *ptr; struct dirent *de; DIR *mydir; mydir = opendir("."); if (mydir) { while ((de = readdir(mydir))) { if (strncmp(de->d_name, "ezin", 4) == 0 && strlen(de->d_name) == 10 && CheckTemp(de->d_name)) appendstring(&list, de->d_name); } } for (ptr = list; ptr; ptr = ptr->next) unlink(ptr->string); freestringlist(list); }
int main(int argc, char *argv[]) { if ((cwd = getcwd(NULL, 64)) == NULL) { perror("pwd"); exit(2); } strcat(config_cond_path, cwd); strcat(config_cond_path, config_condition); strcat(config_state_path, cwd); strcat(config_state_path, config_state); strcat(relay_exec_path, cwd); strcat(relay_exec_path, relay_exec); if (argc < 2) { printf("Missing input argument!\n"); printf("Usage: r to read and w to write\n"); printf("mycodo r\n"); printf("mycodo w cond minTemp maxTemp minHum maxHum webOR\n"); printf("mycodo w state tempState humState\n"); return 1; } // write input to config file - for web php control interface if (strcmp(argv[1], "w") == 0 && strcmp(argv[2], "cond") == 0) { readCfgCond(); minTemp = atoi(argv[3]); maxTemp = atoi(argv[4]); minHum = atoi(argv[5]); maxHum = atoi(argv[6]); webOR = atoi(argv[7]); writeCfgCond(); } // write input to config file - for web php control interface else if (strcmp(argv[1], "w") == 0 && strcmp(argv[2], "state") == 0) { readCfgState(); tempState = atoi(argv[3]); humState = atoi(argv[4]); writeCfgState(); } // read config file and print only variable values to screen else if (strcmp(argv[1], "r") == 0) { readCfgCond(); readCfgState(); printf("%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i\n", minTemp, maxTemp, minHum, maxHum, webOR, tempState, humState, relay1o, relay2o, relay3o, relay4o, relay5o, relay6o, relay7o, relay8o); } else { // convert string input to int year = atoi(argv[1]); month = atoi(argv[2]); day = atoi(argv[3]); hour = atoi(argv[4]); min = atoi(argv[5]); sec = atoi(argv[6]); timestampL = atoi(argv[7]); hum = atof(argv[8]); temp = atof(argv[9]); // read config file and set variables printf("\n%s:%s:%s %i Read config file %s", argv[4], argv[5], argv[6], timestampL, config_cond_path); readCfgCond(); printf("\n%s:%s:%s %i Read config file %s", argv[4], argv[5], argv[6], timestampL, config_state_path); readCfgState(); printf("\nminTemp: %i, maxTemp: %i, minHum: %i, maxHum: %i, webOR: %i, tempState: %i, humState: %i", minTemp, maxTemp, minHum, maxHum, webOR, tempState, humState); if ( tempState == 2 ) printf("\nTemp: %.1f C Range: (%i - %i) %.1f C from minTemp. ", temp, minTemp, maxTemp, temp - minTemp); else printf("\nTemp: %.1f C Range: (%i - %i) %.1f C from minTemp. ", temp, minTemp, maxTemp, minTemp - temp); // read temperature sensor CheckTemp(); if ( humState == 2 ) printf("\nHumi: %.1f %% Range: (%i - %i) %.1f %% from minHumi. ", hum, minHum, maxHum, hum - minHum); else printf("\nHumi: %.1f %% Range: (%i - %i) %.1f %% from minHumi. ", hum, minHum, maxHum, minHum - hum); CheckHum(); if (!webOR) { ChangeRelays ( maxTemp - temp, maxHum - hum ); } else { printf("\nWebOverride activated - No relay change!"); printf("\nWaiting 60 seconds.\n"); sleep ( 60 ); } } return 0; }