Changeset - dc8e0a6ef3b7
[Not reviewed]
default
0 6 0
ethanzonca@CL-ENS241-08.cedarville.edu - 12 years ago 2013-04-12 15:47:19
ethanzonca@CL-ENS241-08.cedarville.edu
Commenting and syntax fixes
6 files changed with 66 insertions and 43 deletions:
0 comments (0 inline, 0 general)
master/master/lib/ini/ini.c
Show inline comments
 
/* inih -- simple .INI file parser
 
 
inih is released under the New BSD license (see LICENSE.txt). Go to the project
 
home page for more info:
 
 
http://code.google.com/p/inih/
 
 
*/
 
/*
 
 * Master Firmware: INI Parse Backend
 
 *
 
 * Wireless Observational Modular Aerial Network
 
 * 
 
 * Ethan Zonca
 
 * Matthew Kanning
 
 * Kyle Ripperger
 
 * Matthew Kroening
 
 *
 
 * This library was modified to use SD card FAT read/write operations
 
 *
 
 * Original library:
 
 *
 
 *	 inih is released under the New BSD license (see LICENSE.txt). Go to the project
 
 *	 home page for more info:
 
 *	 http://code.google.com/p/inih/
 
 *
 
 */
 
 
#include <stdio.h>
 
#include <ctype.h>
 
@@ -21,6 +32,7 @@ http://code.google.com/p/inih/
 
#define MAX_SECTION 50
 
#define MAX_NAME 50
 
 
 
/* Strip whitespace chars off end of given string, in place. Return s. */
 
static char* rstrip(char* s)
 
{
master/master/lib/ini/ini.h
Show inline comments
 
/* inih -- simple .INI file parser
 
 
inih is released under the New BSD license (see LICENSE.txt). Go to the project
 
home page for more info:
 
 
http://code.google.com/p/inih/
 
 
*/
 
/*
 
 * Master Firmware: INI Parse Backend
 
 *
 
 * Wireless Observational Modular Aerial Network
 
 * 
 
 * Ethan Zonca
 
 * Matthew Kanning
 
 * Kyle Ripperger
 
 * Matthew Kroening
 
 *
 
 * This library was modified to use SD card FAT read/write operations
 
 *
 
 * Original library:
 
 *
 
 *	 inih is released under the New BSD license (see LICENSE.txt). Go to the project
 
 *	 home page for more info:
 
 *	 http://code.google.com/p/inih/
 
 *
 
 */
 
 
#ifndef __INI_H__
 
#define __INI_H__
master/master/lib/iniparse.c
Show inline comments
 
@@ -18,33 +18,31 @@
 
#include "ini/ini.h"
 
#include "logger.h"
 
 
 
// Callback function for INI file parsing
 
static int handler(void* user, const char* section, const char* name, const char* value)
 
{
 
	
 
	configuration* pconfig = (configuration*)user;
 
 
	#define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 0
 
		
 
	
 
	// MATCH(section name, variable name)
 
	if (MATCH("general", "temp")) {
 
		pconfig->heater_threshold = atoi(value);
 
		
 
		
 
	} else if (MATCH("general", "reqrate")) {
 
		pconfig->datarequest_rate = strtol(value, NULL, 10);
 
		
 
		
 
	} else if (MATCH("blackout", "enable")) {
 
		pconfig->blackout_enable = strncmp(value, "false", 4);
 
		
 
		
 
	} else if (MATCH("blackout", "timeout")) {
 
		pconfig->blackout_timeout = strtol(value, NULL, 10);
 
		
 
		
 
	} else if (MATCH("buzzer", "failsafe")) {
 
		pconfig->buzzer_failsafe_duration = strtol(value, NULL, 10);
 
		
 
		
 
	} else if (MATCH("buzzer", "mintime")) {
 
		pconfig->buzzer_trigger_minduration = strtol(value, NULL, 10);
 
		
 
@@ -53,13 +51,10 @@ static int handler(void* user, const cha
 
		
 
	} else if (MATCH("aprs", "call")) {
 
		strncpy(pconfig->s_callsign, value, 10);
 
		//pconfig->s_callsign = strdup(value);
 
		
 
		
 
	} else if (MATCH("aprs", "call_id")) {
 
		pconfig->s_callsign_id = atoi(value);
 
		
 
		
 
	} else if (MATCH("aprs", "period")) {
 
		pconfig->aprs_transmit_period = strtol(value, NULL, 10);
 
		
 
@@ -68,11 +63,12 @@ static int handler(void* user, const cha
 
		return 0;  /* unknown section/name, error */
 
	}
 
	
 
	
 
	return 1;
 
}
 

	
 
configuration config = {
 
// Initialize configuration structure pre-set to DEFINE'ed defaults
 
configuration config = 
 
{
 
	#ifdef BLACKOUT_ENABLE
 
	.blackout_enable = true,
 
	#else
 
@@ -90,20 +86,19 @@ configuration config = {
 
	.aprs_transmit_period = APRS_TRANSMIT_PERIOD
 
};
 

	
 
// Parse config file from SD card and set global configuration struct
 
void iniparse_getconfig()
 
{
 
	// Init configuration with default values from config.h
 
 
	if (ini_parse(handler, &config) < 0) {
 
		// ERROR: Make new error code here!
 
	if (ini_parse(handler, &config) < 0)
 
	{
 
		error_log(ERROR_CONFIGPARSE, false);
 
	}
 
 
	sysconfig = &config;
 
	
 
	// Print configuration to err
 
	// Print critical configuration options to CSV error log for reference
 
	error_log_rawwrite("\nConf:\n");
 
		
 
	char msg[50];
 
	snprintf(msg, 50,"reqrate: %lu\n",sysconfig->datarequest_rate);
 
	error_log_rawwrite(msg);
master/master/lib/iniparse.h
Show inline comments
 
@@ -14,7 +14,6 @@
 
#ifndef INIPARSE_H_
 
#define INIPARSE_H_
 
 
 
 
void iniparse_getconfig();
 
 
#endif /* INIPARSE_H_ */
 
\ No newline at end of file
master/master/lib/watchdog.c
Show inline comments
 
@@ -21,7 +21,8 @@
 
#include "led.h"
 
#include "logger.h"
 
 
//initialize watchdog
 
 
// Initialize watchdog timer
 
void watchdog_setup(void)
 
{
 
	cli();
 
@@ -33,6 +34,7 @@ void watchdog_setup(void)
 
	sei();
 
}
 
 
// Check if a WDT reset occurred on the previous boot
 
void watchdog_checkreset(void)
 
{
 
	// Check if WDT reset occurred
 
@@ -40,21 +42,23 @@ void watchdog_checkreset(void)
 
	{
 
		MCUSR &= ~(1<<WDRF);
 
		
 
		// Restore timer from EEPROM
 
		// Restore software program timer from EEPROM
 
		uint32_t oldtimer = 0;
 
		oldtimer = eeprom_read_dword((uint32_t*)WATCHDOG_PROGTIMER_EEPROM_ADDR);
 
		time_watchdogrestore(oldtimer);
 
		
 
		// Log error to SD card
 
		error_log_msg(ERROR_WATCHDOG,false,"Booting up after watchdog reset");
 
	}
 
}
 
 
// Store program timer to EEPROM before WDT reboot
 
ISR(WDT_vect) 
 
{
 
	// Store timer in EEPROM
 
	eeprom_write_dword((uint32_t*)WATCHDOG_PROGTIMER_EEPROM_ADDR, time_millis());
 
	// Store timer + WDT delay in EEPROM
 
	eeprom_write_dword((uint32_t*)WATCHDOG_PROGTIMER_EEPROM_ADDR, time_millis()+4000);
 
	
 
	// Trippy error LEDs while waiting 4 seconds for system reset
 
	// Flash all LEDs while waiting 4 seconds for system reset
 
	while(1)
 
	{
 
		led_on(LED_ACT0);
master/master/master.c
Show inline comments
 
@@ -60,7 +60,7 @@ int main(void)
 
	afsk_setup();
 
	serial0_sendString("Hello.\n\n");
 
	
 
	// Blocking ZigBee node discovery
 
	// ZigBee network discovery (blocking ~6s)
 
	slavesensors_network_scan();
 
	
 
	// Software timers	
 
@@ -108,6 +108,7 @@ int main(void)
 
				led_off(LED_SIDEBOARD);
 
			}
 
			
 
			// Read board temperature and battery level
 
			sensors_readBoardTemp();
 
			sensors_readBatt();
 
		
 
@@ -119,7 +120,8 @@ int main(void)
 
		}		
 
		
 
		// Periodic: Buzzer
 
		if(time_millis() - lastBuzz > BUZZER_RATE) {
 
		if(time_millis() - lastBuzz > BUZZER_RATE)
 
		{
 
			if(sensordata_isTouchdown())
 
			{
 
				led_on(LED_BUZZ);
 
@@ -128,8 +130,8 @@ int main(void)
 
			}			
 
			lastBuzz = time_millis();
 
		}
 
		 
 
		if(buzz && time_millis() - lastBuzzOn > BUZZER_DURATION) {
 
		if(buzz && time_millis() - lastBuzzOn > BUZZER_DURATION) 
 
		{
 
			led_off(LED_BUZZ);
 
			buzz = false;
 
		}
0 comments (0 inline, 0 general)