Mario Bambagini / Mbed 2 deprecated can

Dependencies:   mbed

Committer:
mariob
Date:
Sun Aug 02 12:55:55 2015 +0000
Revision:
0:8097eeede645
Child:
1:8446a0d14877
first commit: ECU tester

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mariob 0:8097eeede645 1 #include "mbed.h"
mariob 0:8097eeede645 2
mariob 0:8097eeede645 3 #include "net.hpp"
mariob 0:8097eeede645 4
mariob 0:8097eeede645 5 /*
mariob 0:8097eeede645 6 Ticker ticker;
mariob 0:8097eeede645 7 DigitalOut led1(LED1);
mariob 0:8097eeede645 8 DigitalOut led2(LED2);
mariob 0:8097eeede645 9 CAN can1(p9, p10);
mariob 0:8097eeede645 10 CAN can2(p30, p29);
mariob 0:8097eeede645 11 char counter = 0;
mariob 0:8097eeede645 12
mariob 0:8097eeede645 13 void send() {
mariob 0:8097eeede645 14 printf("send()\r\n");
mariob 0:8097eeede645 15 if(can1.write(CANMessage(1337, &counter, 1))) {
mariob 0:8097eeede645 16 printf("wloop()\r\n");
mariob 0:8097eeede645 17 counter++;
mariob 0:8097eeede645 18 printf("Message sent: %d\r\n", counter);
mariob 0:8097eeede645 19 }
mariob 0:8097eeede645 20 led1 = !led1;
mariob 0:8097eeede645 21 }
mariob 0:8097eeede645 22 */
mariob 0:8097eeede645 23
mariob 0:8097eeede645 24
mariob 0:8097eeede645 25 Ticker ticker;
mariob 0:8097eeede645 26
mariob 0:8097eeede645 27 DigitalOut led_body(LED1);
mariob 0:8097eeede645 28 DigitalOut led_engine(LED2);
mariob 0:8097eeede645 29 DigitalOut led_time(LED3);
mariob 0:8097eeede645 30
mariob 0:8097eeede645 31 CAN can(p9, p10);
mariob 0:8097eeede645 32
mariob 0:8097eeede645 33 can_cmd_body_t can_cmd_body;
mariob 0:8097eeede645 34
mariob 0:8097eeede645 35 int counter = 0;
mariob 0:8097eeede645 36
mariob 0:8097eeede645 37 #define BODY_ 2
mariob 0:8097eeede645 38 #define ENGINE_ 13
mariob 0:8097eeede645 39 #define TIME_ 40
mariob 0:8097eeede645 40
mariob 0:8097eeede645 41 void send() {
mariob 0:8097eeede645 42 printf("send()\r\n");
mariob 0:8097eeede645 43
mariob 0:8097eeede645 44 static int body_n_sent = 0;
mariob 0:8097eeede645 45
mariob 0:8097eeede645 46 counter++;
mariob 0:8097eeede645 47
mariob 0:8097eeede645 48 if ((counter%BODY_)==0) {
mariob 0:8097eeede645 49 can_cmd_body.payload.msg.light_r = (body_n_sent&0x0001)==0x0001;
mariob 0:8097eeede645 50 can_cmd_body.payload.msg.light_l = (body_n_sent&0x0002)==0x0002;
mariob 0:8097eeede645 51 can_cmd_body.payload.msg.light_c = (body_n_sent&0x0004)==0x0004;
mariob 0:8097eeede645 52 if(can.write(CANMessage(CAN_CMD_BODY_ID, (char*)(can_cmd_body.payload.buf), 4)))
mariob 0:8097eeede645 53 printf("BODY OK\r\n");
mariob 0:8097eeede645 54 else
mariob 0:8097eeede645 55 printf("BODY NOT OK\r\n");
mariob 0:8097eeede645 56 led_body = !led_body;
mariob 0:8097eeede645 57 body_n_sent++;
mariob 0:8097eeede645 58 }
mariob 0:8097eeede645 59
mariob 0:8097eeede645 60 }
mariob 0:8097eeede645 61
mariob 0:8097eeede645 62
mariob 0:8097eeede645 63 int main() {
mariob 0:8097eeede645 64 /*
mariob 0:8097eeede645 65 printf("main()\r\n");
mariob 0:8097eeede645 66 ticker.attach(&send, 1);
mariob 0:8097eeede645 67 CANMessage msg;
mariob 0:8097eeede645 68 while(1) {
mariob 0:8097eeede645 69 printf("loop()\r\n");
mariob 0:8097eeede645 70 if(can2.read(msg)) {
mariob 0:8097eeede645 71 printf("Message received: %d\r\n", msg.data[0]);
mariob 0:8097eeede645 72 led2 = !led2;
mariob 0:8097eeede645 73 }
mariob 0:8097eeede645 74 wait(0.2);
mariob 0:8097eeede645 75 }
mariob 0:8097eeede645 76 */
mariob 0:8097eeede645 77
mariob 0:8097eeede645 78 printf("main()\r\n");
mariob 0:8097eeede645 79 ticker.attach(&send, 1);
mariob 0:8097eeede645 80
mariob 0:8097eeede645 81 CANMessage msg;
mariob 0:8097eeede645 82 while(1) {
mariob 0:8097eeede645 83 if(can.read(msg)) {
mariob 0:8097eeede645 84 can_sts_body_payload_t x;
mariob 0:8097eeede645 85 x.buf[0] = msg.data[0]; x.buf[1] = msg.data[1]; x.buf[2] = msg.data[2]; x.buf[3] = msg.data[3];
mariob 0:8097eeede645 86 x.buf[4] = msg.data[4]; x.buf[5] = msg.data[5]; x.buf[6] = msg.data[6]; x.buf[7] = msg.data[7];
mariob 0:8097eeede645 87 printf("Message received: %d %d %d %d\r\n", x.buf[0], x.msg.eye_back_l, x.msg.eye_back_r, x.msg.eye_front);
mariob 0:8097eeede645 88 }
mariob 0:8097eeede645 89 wait(1.0);
mariob 0:8097eeede645 90 }
mariob 0:8097eeede645 91 }