Exemplo n.º 1
0
int main( int argc, char *argv[] )
{
	if (!argc)
	{
		printf("Missing input argument!\n");
		return 1;
	}

	if (wiringPiSetup() == -1)
	{
		printf("wiringPiSetup returned -1!\n");
		return 1;
	}

	if (strcmp(argv[1], "w") == 0) {
		onTemp = atoi(argv[2]);
		offTemp =  atoi(argv[3]);
		highTemp =  atoi(argv[4]);
		onHum =  atoi(argv[5]);
		offHum =  atoi(argv[6]);
		webOR =  atoi(argv[7]);
		tempState =  atoi(argv[8]);
		humState =  atoi(argv[9]);

		writeCfg();
	}
	else if (strcmp(argv[1], "r") == 0) {
		readCfg();
		printf("%i %i %i %i %i %i %i %i\n", onTemp, offTemp, highTemp, onHum, offHum, webOR, tempState, humState);
	}
	else
	{
		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[10]);

		printf("\n%s:%s:%s %i Read config file %s",  argv[4], argv[5], argv[6], timestampL, config_file_name);
		readCfg();
		printf("\nonTemp: %i, offTemp: %i, highTemp: %i, onHum: %i, offHum: %i, webOR: %i, tempState: %i, humState: %i", onTemp, offTemp, highTemp, onHum, offHum, webOR, tempState, humState);

		printf("\n%s:%s:%s %i Read sensors", argv[4], argv[5], argv[6], timestampL);

		printf("\nTemperature: %.1f  Range: (%i - %i) %.1f degrees from offTemp. ", temp, onTemp, offTemp, offTemp - temp);
		CheckTemp();

		printf("\nHumidity:    %.1f  Range: (%i - %i) %.1f percent from offHum. ", hum, onHum, offHum, offHum - hum);
		CheckHum();

		if (!webOR) { ChangeRelays ( offTemp - temp, offHum - hum ); }
		else { printf("WebOverride activated - No relay change!\n"); }
	}

	return 0;
}
Exemplo n.º 2
0
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;
}