Exemplo n.º 1
0
static void radioComSendControlSignalsNow()
{
    // Assumption: txBytesLoaded is 0 (we are not in the middle of populating a data packet)
    // Assumption: radioLinkTxAvailable() >= 1

    uint8 XDATA * packet;

    packet = radioLinkTxCurrentPacket();
    packet[0] = 1;   // Payload length is one byte.
    packet[1] = radioComTxSignals;
    sendSignalsSoon = 0;
    radioLinkTxSendPacket(PAYLOAD_TYPE_CONTROL_SIGNALS);
}
Exemplo n.º 2
0
void radioComTxSendByte(uint8 byte)
{
    // Assumption: The user called radioComTxAvailable recently and it returned a non-zero value.
    if (txBytesLoaded == 0)
    {
        txPointer = packetPointer = radioLinkTxCurrentPacket();
    }

    txPointer++;
    *txPointer = byte;
    txBytesLoaded++;

    if (txBytesLoaded == RADIO_LINK_PAYLOAD_SIZE)
    {
        radioComSendDataNow();
    }
}
Exemplo n.º 3
0
void processByte(uint8 c)
{
    uint8 XDATA *tmt;

    switch(c) {
    // these cases handle encoder readings; a better
    // implementation would use sscanf in the processBytesUart0
    // function
	    case '0':
	    	usbComTxSendByte(c);
	    	break;
	    case '1':
	    	usbComTxSendByte(c);
	    	break;
	    case '2':
	    	usbComTxSendByte(c);
	    	break;
	    case '3':
	    	usbComTxSendByte(c);
	    	break;
	    case '4':
	    	usbComTxSendByte(c);
	    	break;
	    case '5':
	    	usbComTxSendByte(c);
	    	break;
	    case '6':
	    	usbComTxSendByte(c);
	    	break;
	    case '7':
	    	usbComTxSendByte(c);
	    	break;
	    case '8':
	    	usbComTxSendByte(c);
	    	break;
	    case '9':
	    	usbComTxSendByte(c);
	    	break;
	    case '\r':
	    	usbComTxSendByte(c);
	    	break;
		case '\n':
		 	usbComTxSendByte(c);
		 	break;

    // just in case we can't print anything to screen
    // this command allows for a visual that we are
    // at least getting serial commands
    case COMMAND_TOGGLE_YELLOW_LED:
        yellowLedOn ^= 1;
        break;

		
	case COMMAND_RESET_DSPIC:
    	tmt = radioLinkTxCurrentPacket();
    	if(tmt != NULL) {
        	tmt[0] = 1; // payload length
        	tmt[1] = COMMAND_RESET_DSPIC; // payload data
        	radioLinkTxSendPacket(0);
    	}
		break;
		
	case COMMAND_ENABLE_QEI:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
    		tmt[0] = 1; // payload length
    		tmt[1] = COMMAND_ENABLE_QEI; // payload data
    		radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_DISABLE_QEI:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_DISABLE_QEI; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_READ_QEI:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_READ_QEI; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_SEND_T:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_SEND_T; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_RUN_MOTOR:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_RUN_MOTOR; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_HALT_MOTOR:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_HALT_MOTOR; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_RUN_FASTER:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_RUN_FASTER; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
		
	case COMMAND_RUN_SLOWER:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_RUN_SLOWER; // payload data
			radioLinkTxSendPacket(0);
		}
		break;
			
		
	case COMMAND_INVERT_DIRECTION:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_INVERT_DIRECTION; // payload data
			radioLinkTxSendPacket(0);
			yellowLedOn ^= 1;
		}
		break;
		
	case COMMAND_READ_ADC:
		tmt = radioLinkTxCurrentPacket();
		if(tmt != NULL) {
			tmt[0] = 1; // payload length
			tmt[1] = COMMAND_READ_ADC; // payload data
			radioLinkTxSendPacket(0);
			yellowLedOn ^= 1;
		}
		break;
		
    }
}