void usage() { xSerialxPrintf_P(&xSerialPort,PSTR("E-Kermit %s\r\n"),VERSION); xSerialxPrintf_P(&xSerialPort,PSTR("Usage: %s <options>\r\n"),xname); xSerialxPrint_P(&xSerialPort,PSTR("Options:\r\n")); xSerialxPrint_P(&xSerialPort,PSTR(" -r Receive files\r\n")); #ifndef RECVONLY xSerialxPrint_P(&xSerialPort,PSTR(" -s <files> Send files\r\n")); #endif /* RECVONLY */ xSerialxPrint_P(&xSerialPort,PSTR(" -p [neoms] Parity: none, even, odd, mark, space\r\n")); #ifdef F_CRC xSerialxPrint_P(&xSerialPort,PSTR(" -b [1235] Block check type: 1, 2, 3, or 5\r\n")); #endif /* F_CRC */ xSerialxPrint_P(&xSerialPort,PSTR(" -k Keep incompletely received files\r\n")); xSerialxPrint_P(&xSerialPort,PSTR(" -B Force binary mode\r\n")); xSerialxPrint_P(&xSerialPort,PSTR(" -T Force text mode\r\n")); xSerialxPrint_P(&xSerialPort,PSTR(" -R Remote mode (vs local)\r\n")); xSerialxPrint_P(&xSerialPort,PSTR(" -L Local mode (vs remote)\r\n")); #ifdef DEBUG xSerialxPrint_P(&xSerialPort,PSTR(" -E <number> Simulated error rate (0-100)\r\n")); xSerialxPrint_P(&xSerialPort,PSTR(" -d Create debug.log\r\n")); #endif /* DEBUG */ xSerialxPrint_P(&xSerialPort,PSTR(" -h Help (this message)\r\n")); doexit(FAILURE); }
void fatal(char *msg1, char *msg2, char *msg3) { /* Not to be called except */ if (msg1) { /* from this module */ xSerialxPrintf_P(&xSerialPort,PSTR("%s: %s"),xname,msg1); if (msg2) xSerialxPrintf_P(&xSerialPort,PSTR("%s"),msg2); if (msg3) xSerialxPrintf_P(&xSerialPort,PSTR("%s"),msg3); xSerialxPrint_P(&xSerialPort,PSTR("\n")); } doexit(FAILURE); }
ERRORTYPE SensorManager::printResultsStdOut() { ERRORTYPE eRet = ET_OK; //iterate through each sensor for(uint8_t u8SensorNo = 0; u8SensorNo < m_sConfig.u8SensorCount; ++u8SensorNo) { //iterate through each measurment data type which is provided by the sensor for(uint8_t u8MeasDataNo = 0; u8MeasDataNo < m_sConfig.pSensorList[u8SensorNo]->getMeasDataCount(); ++u8MeasDataNo) { ISensor::MeasurementDataInfo eMeasDataInfo = m_sConfig.pSensorList[u8SensorNo]->getMeasDataInfo(u8MeasDataNo); uint32_t u32Result = m_sConfig.pSensorList[u8SensorNo]->getResult(eMeasDataInfo.eMeasDataType); xSemaphoreTake(xConsoleMutex, portMAX_DELAY); xSerialPrint_P(PSTR("|Sensor Mgr| ")); xSerialPrint_P(eMeasDataInfo.psMeasDataDescription); xSerialxPrintf_P( &xSerialPort, PSTR(" = %lu "),u32Result); xSerialPrint_P(eMeasDataInfo.psUnits); xSerialPrint_P(PSTR("\r\n")); xSemaphoreGive(xConsoleMutex); } } return eRet; }
ERRORTYPE SensorManager::run() { ERRORTYPE eRet = ET_OK; for(uint8_t u8Loop = 0; u8Loop < m_sConfig.u8SensorCount; ++u8Loop) { eRet = m_sConfig.pSensorList[u8Loop]->run(); if(ET_OK != eRet) { xSemaphoreTake(xConsoleMutex, portMAX_DELAY); xSerialPrint_P(PSTR("/SENSOR MGR/ ")); xSerialPrint_P(m_sConfig.pSensorList[u8Loop]->getMeasDataInfo(0).psMeasDataDescription); xSerialxPrintf_P( &xSerialPort, PSTR(", in state %u, encountered problems.\r\n"),m_sConfig.pSensorList[u8Loop]->getSensorState()); xSemaphoreGive(xConsoleMutex); break; } } if( (ET_OK == eRet) && (pdTRUE == xTaskCheckForTimeOut(&m_sLastResultPrintTimestamp, &m_sPrintResultsTimeout))) { this->printResultsStdOut(); vTaskSetTimeOutState(&m_sLastResultPrintTimestamp); m_sPrintResultsTimeout = m_sConfig.sPrintResultsTimeout; } return eRet; }
// see xbee/device.h for documentation xbee_wpan_debug int _xbee_handle_transmit_status( xbee_dev_t *xbee, const void FAR *payload, uint16_t length, void FAR *context) { #ifdef XBEE_DEVICE_VERBOSE const xbee_frame_transmit_status_t FAR *frame = payload; #else XBEE_UNUSED_PARAMETER( payload); #endif // standard XBee frame handler; stub isn't using any parameters yet XBEE_UNUSED_PARAMETER( xbee); XBEE_UNUSED_PARAMETER( length); XBEE_UNUSED_PARAMETER( context); // it may be necessary to push information up to user code so they know when // a packet has been received or if it didn't make it out #ifdef XBEE_DEVICE_VERBOSE xSerialxPrintf_P( &xSerial1Port, PSTR( "%s: id 0x%02x to 0x%04x retries=%d del=0x%02x disc=0x%02x\n"), __FUNCTION__, frame->frame_id, be16toh( frame->network_address_be), frame->retries, frame->delivery, frame->discovery); #endif return 0; }
/*-----------------------------------------------------------*/ static void TaskBlinkGreenLED(void *pvParameters) // Main Green LED Flash { (void) pvParameters;; portTickType xLastWakeTime; /* The xLastWakeTime variable needs to be initialised with the current tick count. Note that this is the only time we access this variable. From this point on xLastWakeTime is managed automatically by the vTaskDelayUntil() API function. */ xLastWakeTime = xTaskGetTickCount(); DDRB |= _BV(DDB5); while(1) { PORTB |= _BV(PORTB5); // main (red PB5) LED on. Arduino LED on vTaskDelayUntil( &xLastWakeTime, ( 500 / portTICK_RATE_MS ) ); PORTB &= ~_BV(PORTB5); // main (red PB5) LED off. Arduino LED off vTaskDelayUntil( &xLastWakeTime, ( 500 / portTICK_RATE_MS ) ); xSerialxPrintf_P(&xSerialPort, PSTR("Current Timestamp: %lu xTaskGetTickCount(): %u\r\n"), time(NULL), xTaskGetTickCount()); } }
/*** EndHeader */ bool_t xbee_ser_invalid( xbee_serial_t *serial) { bool_t disabled; if (serial) { disabled = 1; switch (serial->usart) { case USART0: disabled = FALSE; break; #if defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega644PA__) || defined(__AVR_ATmega640__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) case USART1: disabled = FALSE; break; #endif default: disabled = TRUE; break; } #ifdef XBEE_SERIAL_VERBOSE if (disabled) { xSerialxPrintf_P( &xSerial1Port, PSTR("ERROR: Support for port %c not compiled in. " \ "Define XBEE_ON_USART%c and recompile.\n"), serial->usart + '0', serial->usart + '0'); } #endif return disabled; } return TRUE; }