FBRLogger final version
Dependencies: EthernetInterface MSCAN Nanopb SDFileSystem mbed-rtos mbed
Diff: main.cpp
- Revision:
- 9:634a74d5aa41
- Parent:
- 8:99cca8c964e6
- Child:
- 11:594a9f668ccf
--- a/main.cpp Fri Mar 01 12:43:17 2013 +0000 +++ b/main.cpp Wed Mar 06 17:34:00 2013 +0000 @@ -25,7 +25,8 @@ #define ACCEL_SENSITIVITY (0.312 * ACCEL_SCALE) / ANALOG_SCALE State car; -CAN* can; + +CANComms can(&car, false, false, 0.0); SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board EthernetInterface eth; @@ -143,7 +144,7 @@ client.send_all(net_buf, net_buf_len); } led3 = !led3; - + //printf("Net Buf Emptied, %d messages\n", buf_msg_count); logFile->write(net_buf, net_buf_len); logFile->fsync(); @@ -168,38 +169,8 @@ printf("CAN Thread Running\n"); while(true) { - while(can->read(msg)) { - /*printf("CAN Message %08X %d %02X%02X%02X%02X%02X%02X%02X%02X\n", msg.id, msg.len, - msg.data[0], - msg.data[1], - msg.data[2], - msg.data[3], - msg.data[4], - msg.data[5], - msg.data[6], - msg.data[7] - );*/ - - header.parse(msg.id); - - //printf("Processing data, block %d\n", block); - - if(header.from_id == MSCAN_ID_MS) { - if(header.var_blk == 0) { - car.rpm = (msg.data[0] << 8) | msg.data[1]; - } else if(header.var_blk == 1) { - car.manifold_pres = ((msg.data[2] << 8) | msg.data[3]) / 10.0; - car.air_temp = (((msg.data[4] << 8) | msg.data[5]) - 320.0) * 0.05555; - car.coolant_temp = (((msg.data[6] << 8) | msg.data[7]) - 320.0) * 0.05555; - } - else { - car.throttle_pos = ((msg.data[0] << 8) | msg.data[1]) / 10.0; - car.voltage = ((msg.data[2] << 8) | msg.data[3]) / 10.0; - } - } - } - - Thread::wait(1); + can.receive(); + } } @@ -218,12 +189,12 @@ sprintf(&logFileName[0], "fbr/log.%d", logIndex - 1); printf("Log File: %s\n", &logFileName[0]); - + logFile = sd.open(logFileName, O_WRONLY | O_CREAT); logFile->fsync(); //fprintf(logFile, "FBR CANBUS Log File\n"); //fclose(logFile); - + eth.init("192.168.0.2", "255.255.255.0", "0.0.0.0"); eth.connect(1000); @@ -236,17 +207,14 @@ can_thread = new Thread(can_thread_start, NULL, osPriorityLow, 4096); sample_timer.start(10); - - can = new CAN(p30, p29); - can->frequency(500000); - //can->attach(&can_receive_isr); - printf("Can ISR Attached"); + + printf("Ready to Log\n"); TCPSocketConnection temp; - while (true) { + while (true) { // accept net connection printf("\nWait for new connection...\n"); server.accept(temp);