/** * \brief Method to test the flash chip. * @return void */ static void TestFlash(void) { uint8_t errCode; uint8_t test=55; uint8_t result=27; uint32_t testAddr=0x0000F300; uint8_t status=1; FLASH_Init(); WAIT1_Waitms(1000); errCode = FLASH_ReadStatusReg(&status); if(errCode!=ERR_OK) { for(;;) {} } CLS1_SendStr((const unsigned char*)"\r\nStatus: ",CLS1_GetStdio()->stdOut); CLS1_SendNum16u(status,CLS1_GetStdio()->stdOut); for(;;) {} errCode = FLASH_WriteByte(testAddr,&test); if(errCode!=ERR_OK) { for(;;) {} } errCode = FLASH_ReadByte(testAddr,&result); if(errCode!=ERR_OK) { for(;;) {} } CLS1_SendStr((const unsigned char*)"\r\nOutput: ",CLS1_GetStdio()->stdOut); CLS1_SendNum16u(result,CLS1_GetStdio()->stdOut); }
/*! * \brief Parses a command * \param cmd Command string to be parsed * \param handled Sets this variable to TRUE if command was handled * \param io I/O stream to be used for input/output * \return Error code, ERR_OK if everything was fine */ uint8_t Q4CLeft_ParseCommand(const unsigned char *cmd, bool *handled, const CLS1_StdIOType *io) { uint8_t res=ERR_OK; if (UTIL1_strcmp((const char*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((const char *)cmd, "Q4CLeft help")==0) { CLS1_SendHelpStr((const unsigned char*)"Q4CLeft", (const unsigned char*)"Q4CLeft command group\r\n", io->stdOut); CLS1_SendHelpStr((const unsigned char*)" help|status", (const unsigned char*)"Print help or status information\r\n", io->stdOut); CLS1_SendHelpStr((const unsigned char*)" reset", (const unsigned char*)"Reset the current position counter\r\n", io->stdOut); *handled = TRUE; } else if (UTIL1_strcmp((const char*)cmd, CLS1_CMD_STATUS)==0 || UTIL1_strcmp((const char*)cmd, "Q4CLeft status")==0) { CLS1_SendStr((const unsigned char*)"Q4CLeft:\r\n", io->stdOut); CLS1_SendStatusStr((const unsigned char*)" pos", (const unsigned char*)"", io->stdOut); #if Q4CLeft_CNTR_BITS==16 CLS1_SendNum16u(Q4CLeft_currPos, io->stdOut); #elif Q4CLeft_CNTR_BITS==32 CLS1_SendNum32u(Q4CLeft_currPos, io->stdOut); #else #error "unknown counter size!" #endif CLS1_SendStr((const unsigned char*)", ", io->stdOut); #if Q4CLeft_CNTR_BITS==16 CLS1_SendNum16s((int16_t)Q4CLeft_currPos, io->stdOut); #elif Q4CLeft_CNTR_BITS==32 CLS1_SendNum32s((int32_t)Q4CLeft_currPos, io->stdOut); #else #error "unknown counter size!" #endif CLS1_SendStr((const unsigned char*)"\r\n", io->stdOut); CLS1_SendStatusStr((const unsigned char*)" C1 C2", (const unsigned char*)"", io->stdOut); if (Q4CLeft_GET_C1_PIN()!=0) { CLS1_SendStr((const unsigned char*)"1 ", io->stdOut); } else { CLS1_SendStr((const unsigned char*)"0 ", io->stdOut); } if (Q4CLeft_GET_C2_PIN()!=0) { CLS1_SendStr((const unsigned char*)"1\r\n", io->stdOut); } else { CLS1_SendStr((const unsigned char*)"0\r\n", io->stdOut); } CLS1_SendStatusStr((const unsigned char*)" errors", (const unsigned char*)"", io->stdOut); CLS1_SendNum16u(Q4CLeft_nofErrors, io->stdOut); CLS1_SendStr((const unsigned char*)"\r\n", io->stdOut); *handled = TRUE; } else if (UTIL1_strcmp((const char*)cmd, "Q4CLeft reset")==0) { Q4CLeft_SetPos(0); Q4CLeft_nofErrors = 0; *handled = TRUE; } return res; }
void APP_Start(void) { uint8_t val=0; uint8_t range, res; uint16_t ambient; CLS1_ConstStdIOType *io = CLS1_GetStdio(); VL_Init(); /* initialize sensor driver */ for(;;) { res = VL_ReadRangeSingle(&range); if (res!=ERR_OK) { CLS1_SendStr("ERROR Range: ", io->stdErr); CLS1_SendNum8u(res, io->stdErr); } else { CLS1_SendStr("Range: ", io->stdOut); CLS1_SendNum8u(range, io->stdOut); } res = VL_ReadAmbientSingle(&ambient); if (res!=ERR_OK) { CLS1_SendStr(" ERROR Ambient: ", io->stdErr); CLS1_SendNum8u(res, io->stdErr); } else { CLS1_SendStr(" Ambient: ", io->stdOut); CLS1_SendNum16u(ambient, io->stdOut); } CLS1_SendStr("\r\n", io->stdOut); LED1_Neg(); WAIT1_Waitms(500); } }
static void REMOTE_PrintStatus(const CLS1_StdIOType *io) { int i; uint8_t buf[32]; CLS1_SendStatusStr((unsigned char*)"remote", (unsigned char*)"\r\n", io->stdOut); CLS1_SendStatusStr((unsigned char*)" channels", "", io->stdOut); for(i=0;i<sizeof(REMOTE_channels)/sizeof(REMOTE_channels[0]);i++) { CLS1_SendNum16u(REMOTE_channels[i], io->stdOut); CLS1_SendStr(" ", io->stdOut); } CLS1_SendStr("\r\n", io->stdOut); }
void REF_DumpHistory(void) { int i; unsigned char buf[16]; CLS1_SendStr((unsigned char*)"history: #", CLS1_GetStdio()->stdOut); CLS1_SendNum16u(REF_nofHistory, CLS1_GetStdio()->stdOut); for (i=0;i<REF_NOF_SENSORS;i++) { CLS1_SendStr((unsigned char*)" 0x", CLS1_GetStdio()->stdOut); buf[0] = '\0'; UTIL1_strcatNum16Hex(buf, sizeof(buf), SensorHistory[i]); CLS1_SendStr(buf, CLS1_GetStdio()->stdOut); } CLS1_SendStr((unsigned char*)"\r\n", CLS1_GetStdio()->stdOut); }