void RplNode_TestRawSerial() { static unsigned char aBuff[2048]; static unsigned int nReadLen; nReadLen = 20; int i; for(i=0;i<nReadLen;i++) { aBuff[i] = 'a'; } aBuff[nReadLen++]='\n'; aBuff[nReadLen++]='\r'; USART_Open(USART3_FID, 38400); USART_Open(USART2_FID, 38400); for(i=0;;i++) { aBuff[0] = '1'+(i%10); USART_WriteBuff( USART3_FID, (unsigned char*)aBuff, nReadLen ); USART_WriteBuff( USART2_FID, (unsigned char*)aBuff, nReadLen); OS_TASK_EVENT ucCrtEvent = OS_WaitEventTimed( 0xFF, 15000 ); } }
void TestControllerInit() { testController.timeoutCounter = 0; //CommInterfaceInit(&testController.inf, &testController.port); StartTimer(&testController.pingTimer); testController.inc='A'; USART_Open(&testController.cameraPort, 1, USART_BAUD_9600, 10, 10, true, true); }
int main(void) { USART roverPort; USART devicePort; CommInterface inf; CommPacket * commPkt; USART_InitPortStructs(); USART_Open(&roverPort, 0, USART_BAUD_38400, 20, 20, true); CommInterfaceInit(&inf, &port0); USART_Open(&devicePort, 1, USART_BAUD_38400, 20, 20, true); while(1) { while(CommRXPacketsAvailable(&inf)) { commPkt = CommGetPacket(&inf); if (!commPkt) // didn't get packet returned, even though it said we had one. give up for now break; if (commPkt->length==0) { // bad 0-length packet, skip to the next one CommDeletePacket(commPkt); free(commPkt); continue; } // must at least have a length of 1, check the first byte to see what device this is targeted at if (commPkt->data[0]==SYS_PANTILT) { } else if (commPkt->data[0]==SYS_CAMERA) { } else if (commPkt->data[0]==SYS_BAROMETER) { } else if (commPkt->data[0]==SYS_ACCEL) { } CommDeletePacket(commPkt); free(commPkt); } } }
void InitRover(Rover * rov) { unsigned char i=0; for (i=0; i<NUM_MODULES; i++) { // init rov->messageHandlers[i] = 0; rov->moduleTickers[i] = 0; rov->messageTargets[i].pkt.data = rov->messageTargets[i].data; } USART_Open(&rov->dataSerial, 5, USART_BAUD_115200, 255, 255, false, true); CommInterfaceInit(&rov->dataIface, &rov->dataSerial); CommInterfaceSetRXCallback(&rov->dataIface, &WirelessMessageReceived); CommInterfaceSetTXCallback(&rov->dataIface, &WirelessMessageTransmitComplete); StartTimer(&(GlobalRover->pktTxTimer)); GlobalRover = rov; }
int main(void) { DDRD = 0b01110000; DDRA = 0b00000001; //wdt_reset(); //wdt_disable(); char replyDat[2]; i2c_init(); USART roverPort; USART devicePort; CommInterface inf; CommPacket commPkt; char commData[20]; char commRet; Timer accelTimer; Timer dataTimer; int sensorError; //PORTA = 1; //_delay_ms(250); //PORTA = 0; //_delay_ms(250); USART_InitPortStructs(); setDeviceCamera(); USART_Open(&roverPort, 0, USART_BAUD_38400, 20, 32, true); CommInterfaceInit(&inf, &roverPort); USART_Open(&devicePort, 1, USART_BAUD_9600, 20, 5, false); setDeviceServo(); sensorError = InitAccelerometer(&inf); sensorError = InitBarometer(&inf); InitServos(&devicePort); InitCamera(&devicePort); InitTimers(); //StartTimer(&accelTimer); //StartTimer(&dataTimer); setDeviceServo(); PORTA |= 1; PanTiltSetPosition(TILT_SERVO, TILT_CENTER); PanTiltSetPosition(PAN_SERVO, PAN_CENTER); char pingRespond = 0xAA; commPkt.data = commData; CommPacket pkt; char textBuffer[40]; char length; unsigned char aclBuf[6]; //ServiceBarometer(3); //Enable Watchdog //wdt_enable(0b111); while(1) { while(CommRXPacketsAvailable(&inf)) { commRet = CommGetPacket(&inf, &commPkt, 20); if (!commRet) // didn't get packet returned, even though it said we had one. give up for now break; if (commPkt.length==0) { // bad 0-length packet, skip to the next one continue; } // must at least have a length of 1, check the first byte to see what device this is targeted at if (commPkt.data[0]==SYS_PANTILT) { PORTA &= ~1; setDeviceServo(); PanTiltHandlePacket(&commPkt); PORTA = sensorError; } else if (commPkt.data[0]==SYS_CAMERA) { PORTA &= ~1; setDeviceCamera(); CameraHandlePacket(&commPkt); PORTA = sensorError; } else if (commPkt.data[0]==SYS_BAROMETER) { PORTA &= ~1; BarometerHandlePacket(&commPkt); PORTA = sensorError; } else if (commPkt.data[0]==SYS_ACCEL) { PORTA &= ~1; AccelHandlePacket(&commPkt); PORTA = sensorError; } else if (commPkt.data[0]==SYS_PING) { pkt.target = 1; pkt.length = 1; pkt.data = &pingRespond; CommSendPacket(&inf,&pkt); } } /* if (GetSpanUs(&dataTimer) > FROM_uS(1000000)) { USART_WriteByte(&roverPort,0xFE); USART_WriteByte(&roverPort,temperatureData>>8); USART_WriteByte(&roverPort,temperatureData&0xFF); USART_WriteByte(&roverPort,barometerData>>16); USART_WriteByte(&roverPort,(barometerData>>8)&0xFF); USART_WriteByte(&roverPort,barometerData&0xFF); AccelGetAverage(aclBuf); length = sprintf(textBuffer,"X: %d \tY: %d \n\r",(aclBuf[0]<<8)|aclBuf[1], (aclBuf[2]<<8)|aclBuf[3]); USART_Write(&roverPort,textBuffer,length); StartTimer(&dataTimer); } */ /* if (GetSpanUs(&accelTimer) > 39) { sensorError |= AccelAddDataToBuffer(); StartTimer(&accelTimer); } if (BarometerGetState() == 1) { sensorError |= ServiceBarometer(3); }*/ } }