Пример #1
0
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 );	
		
 
	}
}
Пример #2
0
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);
}
Пример #3
0
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;
}
Пример #5
0
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);
		}*/				
	}
}