Esempio n. 1
0
void getFileTimeStamp( char *newFileTime, char *oldFileTime )
{
	char* convertMonth( char * ) ;
	char *word, *toParse, *year, *month, *day, *time ;
	int numParses ;
		
	numParses = 0 ;
	word = toParse = NULL ;
	
	toParse = strtok( oldFileTime, "\n" ) ;
	if( toParse != NULL )
		word = strtok( toParse, " " ) ;
	
	while( word != NULL )
	{
		switch( numParses )
		{
			case 1	: 	month = strdup( convertMonth ( word ) ) ;
					break ;
								
			case 2	: 	day = strdup( word ) ;
					break ;
			
			case 3	: 	time = strdup( word ) ;
					break ;
								
			case 4	: 	year = strdup( word ) ;
					break ;
		}
		numParses++ ;
		word = strtok( NULL, " " ) ;		
	}

	if( strlen( day ) == 1 )
		sprintf( newFileTime,"%s/%s/0%s %s", year, month, day, time ) ;
	else
		sprintf( newFileTime,"%s/%s/%s %s", year, month, day, time ) ;
	
	free( month ) ;
	free( day ) ;
	free( time ) ;
	free( year ) ;	
}
Esempio n. 2
0
//function for writing to the appropriate file once a client is connected
void *  writeToFile(void * param)
{
	int s = * (int * ) param;
	FILE * fp;
	char * year, * month, * day, * weekDay, * hour, * minute, * second;
	char  * group;
	char fileName[50] = {0};
	char fileString[50] = {0};
	struct tempdata package1, package2;

	if(unpack(&package1, s) < 0)	//unpacking information about 1st sensor
	{
		perror("Error unpacking structure");
		return 0;
	}

	if(package1.nSensors == 2)
	{
		if(unpack(&package2, s) < 0)	//unpacking information about 2nd sensor if avaiable
		{
			perror("Error unpacking structure");
			return 0;
		}
		if(package1.action == 0)	//storing sensor information in the specified file if not a request status packet
		{
			day = strtok(package1.timestamp, " :");
			month = strtok(NULL, " :"); 
			weekDay = strtok(NULL, " :"); 
			hour = strtok(NULL, " :"); 
			minute = strtok(NULL, " :");
			second = strtok(NULL, " :"); 
			year = strtok(NULL, " :");
			group = "g04";
			sprintf(fileName, "/var/log/therm/temp_logs/%s_%s_%d_%s", group, year, convertMonth(month), package1.host);
			sprintf(fileString, "%s %d %s %s %s %5.2f %5.2f", year, convertMonth(month), weekDay, hour, minute, package1.sensorData, package2.sensorData);
			fp = fopen(fileName, "a");
			fprintf(fp, "%s \n", fileString);
			fclose(fp);
		
		}
	}
	else if(package1.action == 0)
	{
		day = strtok(package1.timestamp, " :");
		month = strtok(NULL, " :"); 
		weekDay = strtok(NULL, " :"); 
		hour = strtok(NULL, " :"); 
		minute = strtok(NULL, " :");
		second = strtok(NULL, " :"); 
		year = strtok(NULL, " :");
		group = "g04";
		sprintf(fileName, "/var/log/therm/temp_logs/%s_%s_%d_%s", group, year, convertMonth(month), package1.host);
		sprintf(fileString, "%s %d %s %s %s %f.2", year, convertMonth(month), weekDay, hour, minute, package1.sensorData);

		fp = fopen(fileName, "a");
		fprintf(fp, "%s \n", fileString);
		fclose(fp);
		
	}

	
	
	#ifdef DEBUG
		printf("Received info:\n");
		printf("Number of sensors: %d\n",package2.nSensors);
		printf("Host: %s\n",package2.host);
		printf("Temperature: %lf\n",package2.sensorData);
		printf("Low Threshold: %lf\n",package2.lowVal);
		printf("High Threshold: %lf\n",package2.highVal);
		printf("Time: %s\n",package2.timestamp);
		printf("Action: %s\n\n",(package2.action == 0)?"send":"request status");
	#endif

	
	free(param);	//freeing the socket identifier passed to this function
}