Radio Structures in OOP

Dependencies:   mbed mbed-rtos

Committer:
jjones646
Date:
Thu Jan 15 07:15:33 2015 +0000
Revision:
6:4a3dbfbc30f1
Parent:
5:146523a0d1f4
socket interface confirmed working.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jjones646 1:c935902c73ef 1 #include "robot.h"
jjones646 1:c935902c73ef 2
jjones646 2:7d523bdd2f50 3 // Create a file system if needed for writing startup information to the boot log
jjones646 2:7d523bdd2f50 4 #if RJ_BOOT_LOG
jjones646 2:7d523bdd2f50 5 LocalFileSystem local("local"); // Create the local filesystem object
jjones646 2:7d523bdd2f50 6 #endif
jjones646 3:dc7e9c6bc26c 7 DigitalOut led1(LED1);
jjones646 3:dc7e9c6bc26c 8 DigitalOut led2(LED2);
jjones646 3:dc7e9c6bc26c 9 DigitalOut led3(LED3);
jjones646 3:dc7e9c6bc26c 10 DigitalOut led4(LED4);
jjones646 3:dc7e9c6bc26c 11
jjones646 5:146523a0d1f4 12 Serial pc(USBTX, USBRX);
jjones646 5:146523a0d1f4 13
jjones646 2:7d523bdd2f50 14 // Sets the mbed's baudrate for debugging purposes
jjones646 2:7d523bdd2f50 15 void baud(int baudrate)
jjones646 2:7d523bdd2f50 16 {
jjones646 2:7d523bdd2f50 17 Serial s(USBTX, USBRX);
jjones646 2:7d523bdd2f50 18 s.baud(baudrate);
jjones646 2:7d523bdd2f50 19 }
jjones646 2:7d523bdd2f50 20
jjones646 2:7d523bdd2f50 21 // Main program operations =======================
jjones646 2:7d523bdd2f50 22 int main()
jjones646 2:7d523bdd2f50 23 {
jjones646 3:dc7e9c6bc26c 24 led4 = 0;
jjones646 5:146523a0d1f4 25 // Set the baud rate
jjones646 2:7d523bdd2f50 26 baud(57600);
jjones646 2:7d523bdd2f50 27
jjones646 2:7d523bdd2f50 28 // Check the mbed's firmware if enabled
jjones646 2:7d523bdd2f50 29 #if RJ_CHECK_FIRMWARE
jjones646 3:dc7e9c6bc26c 30 std::string firmware;
jjones646 3:dc7e9c6bc26c 31 firmware_version(firmware); // this is from FirmwareHelper.h
jjones646 3:dc7e9c6bc26c 32 LOG("Firmware Version: %s\r\n", firmware.c_str());
jjones646 3:dc7e9c6bc26c 33
jjones646 2:7d523bdd2f50 34 // Write any errors to a log file if enabled
jjones646 2:7d523bdd2f50 35 #if RJ_BOOT_LOG
jjones646 3:dc7e9c6bc26c 36 LOG("Begin logging\r\n");
jjones646 2:7d523bdd2f50 37 #endif
jjones646 3:dc7e9c6bc26c 38
jjones646 2:7d523bdd2f50 39 #endif
jjones646 2:7d523bdd2f50 40
jjones646 6:4a3dbfbc30f1 41 DigitalOut temppp(RJ_PRIMARY_RADIO_INT, 1);
jjones646 5:146523a0d1f4 42
jjones646 5:146523a0d1f4 43 // Create a new physical hardware communication link
jjones646 3:dc7e9c6bc26c 44 CC1101 radio_900(
jjones646 3:dc7e9c6bc26c 45 RJ_SPI_BUS,
jjones646 3:dc7e9c6bc26c 46 RJ_PRIMARY_RADIO_CS,
jjones646 3:dc7e9c6bc26c 47 RJ_PRIMARY_RADIO_INT
jjones646 3:dc7e9c6bc26c 48 );
jjones646 2:7d523bdd2f50 49
jjones646 5:146523a0d1f4 50 // Create a Communication Module Object
jjones646 2:7d523bdd2f50 51 CommModule comm;
jjones646 6:4a3dbfbc30f1 52
jjones646 6:4a3dbfbc30f1 53 radio_900.setModule(comm);
jjones646 6:4a3dbfbc30f1 54
jjones646 4:989d51f3e6ef 55 comm.TxHandler((CommLink*)&radio_900, &CommLink::sendPacket, 8);
jjones646 4:989d51f3e6ef 56 comm.openSocket(8);
jjones646 2:7d523bdd2f50 57
jjones646 5:146523a0d1f4 58 // Open a socket for the Communication Module. Give it a port number and a function to call when a packet of that port number is received
jjones646 3:dc7e9c6bc26c 59 led3 = 1;
jjones646 3:dc7e9c6bc26c 60
jjones646 5:146523a0d1f4 61 // Create a dummy packet that is set to send out from socket connection 8
jjones646 3:dc7e9c6bc26c 62 RTP_t dummy_packet;
jjones646 6:4a3dbfbc30f1 63 for (int i=0; i<20; i++)
jjones646 6:4a3dbfbc30f1 64 dummy_packet.data[i] = i;
jjones646 6:4a3dbfbc30f1 65
jjones646 6:4a3dbfbc30f1 66 dummy_packet.data_size = 20;
jjones646 3:dc7e9c6bc26c 67 dummy_packet.port = 8;
jjones646 3:dc7e9c6bc26c 68 dummy_packet.subclass = 1;
jjones646 6:4a3dbfbc30f1 69
jjones646 2:7d523bdd2f50 70
jjones646 5:146523a0d1f4 71 // Enable watchdog timer
jjones646 5:146523a0d1f4 72 //Watchdog watchdog;
jjones646 5:146523a0d1f4 73 //watchdog.set(RJ_WATCHDOG_TIMER_VALUE);
jjones646 3:dc7e9c6bc26c 74
jjones646 5:146523a0d1f4 75 led1 = 0;
jjones646 1:c935902c73ef 76
jjones646 1:c935902c73ef 77 while(1) {
jjones646 5:146523a0d1f4 78 led1 = !led1;
jjones646 6:4a3dbfbc30f1 79 //radio_900.status();
jjones646 5:146523a0d1f4 80 //comm.send(dummy_packet);
jjones646 5:146523a0d1f4 81 osDelay(500);
jjones646 3:dc7e9c6bc26c 82
jjones646 1:c935902c73ef 83 }
jjones646 1:c935902c73ef 84 }