Changeset - 2c432ac682ed
[Not reviewed]
default
0 2 0
kripperger@CL-SEC241-09.cedarville.edu - 12 years ago 2013-01-24 16:43:44
kripperger@CL-SEC241-09.cedarville.edu
More work on Slave-Master comms
2 files changed with 77 insertions and 8 deletions:
0 comments (0 inline, 0 general)
slave/slave/lib/masterComm.c
Show inline comments
 
@@ -17,6 +17,19 @@
 
uint8_t dataTypes;
 
char buff2[64];
 
 
 
char masterComm_checksum(const char* stringPtr)
 
{
 
	char sum = 0;
 
	while(*stringPtr != 0x00)
 
	{
 
		sum += *stringPtr;
 
		stringPtr++;
 
	}
 
	return sum;
 
}
 
 
 
void masterComm_types()
 
{
 
	switch(io_getModuleId())
 
@@ -50,6 +63,14 @@ void masterComm_types()
 
 
void masterComm_modules()
 
{
 
	// Send BoardTemperature (Common for all modules)
 
	serial0_sendString("[");
 
	snprintf(buff2,64,"1%u",sensors_getBoardTemp());
 
	serial0_sendString(buff2);
 
	serial0_sendString("]");	
 
	serial0_sendString(masterComm_checksum(buff2));	
 
	
 
	// Send module specific sensor readings
 
	switch(io_getModuleId())
 
	{
 
		case 0:
 
@@ -60,11 +81,55 @@ void masterComm_modules()
 
		case 1:
 
			// Sensors
 
			
 
			// Send SPI Temperature (Air)
 
			serial0_sendString("[");
 
			snprintf(buff2,64,"2%u",sensors_getSpiTemp());
 
			serial0_sendString(buff2);
 
			serial0_sendString("]");
 
			serial0_sendString(masterComm_checksum(buff2));
 
			
 
			// Send Ambient Light (Needs to be formatted)
 
			serial0_sendString("[");
 
			snprintf(buff2,64,"3%u",geiger_getCpm());		//FIX
 
			serial0_sendString(buff2);
 
			serial0_sendString("]");
 
			serial0_sendString(masterComm_checksum(buff2));
 
			
 
/*			
 
			// Send CPM (radiation)
 
			serial0_sendString("[");
 
			snprintf(buff2,64,"7%u",geiger_getCpm());
 
			serial0_sendString(buff2);
 
			serial0_sendString("]");
 
			serial0_sendString(masterComm_checksum(buff2));
 
		
 
			// Send CPM (radiation)
 
			serial0_sendString("[");
 
			snprintf(buff2,64,"7%u",geiger_getCpm());
 
			serial0_sendString(buff2);
 
			serial0_sendString("]");
 
			serial0_sendString(masterComm_checksum(buff2));
 
		
 
			// Send CPM (radiation)
 
			serial0_sendString("[");
 
			snprintf(buff2,64,"7%u",geiger_getCpm());
 
			serial0_sendString(buff2);
 
			serial0_sendString("]");
 
			serial0_sendString(masterComm_checksum(buff2));
 
*/
 
			
 
			break;
 
		
 
			
 
		case 2:
 
			// Geiger
 
			
 
			// Send CPM (radiation)
 
			serial0_sendString("[");
 
			snprintf(buff2,64,"7%u",geiger_getCpm());
 
			serial0_sendString(buff2);
 
			serial0_sendString("]");
 
			serial0_sendString(masterComm_checksum(buff2));
 
			
 
			break;
 
		
 
		case 3:
 
@@ -81,20 +146,23 @@ void masterComm_modules()
 
 
void masterComm_send()
 
{
 
	masterComm_types();
 
	serial0_sendString("[@");
 
	snprintf(buff2,64,"%u]%u",dataTypes,('@'+dataTypes));
 
	masterComm_types();		// Calculates how many data types to send
 
	
 
	// Return resquest with number of data types to be sent
 
	serial0_sendString("[");						// Send opening bracket
 
	snprintf(buff2,64,"@%u",dataTypes);				// Send package (@ reply and number of data types)
 
	serial0_sendString(buff2);
 
	serial0_sendString("]");						// Send closing bracket
 
	serial0_sendString(masterComm_checksum(buff2));	// Calculate and send checksum
 
	
 
	masterComm_modules();
 
 
	masterComm_modules();	// Send sensor data
 
	
 
	
 
	serial0_sendString("got request\r\n");		//DEBUG
 
}
 
 
 
void masterComm_check()
 
void masterComm_checkParser()
 
{
 
	if (serparser_parse() == PARSERESULT_PARSEOK)
 
	{
slave/slave/lib/masterComm.h
Show inline comments
 
@@ -8,11 +8,12 @@
 
#ifndef MASTERCOMM_H_
 
#define MASTERCOMM_H_
 
 
char masterComm_checksum(const char* stringPtr);
 
 
void masterComm_types();	// Calculates the number of types the module has
 
void masterComm_modules();	// Sends sensor data depending on module
 
 
void masterComm_check();	// Runs parser and checks for data request
 
void masterComm_checkParser();	// Runs parser and checks for data request
 
void masterComm_send();		// Sends data after being requested
 
 
0 comments (0 inline, 0 general)