Subversion Repositories HomeAutomation

Rev

Rev 127 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 127 Rev 142
Line 44... Line 44...
44
   
44
   
45
    uint32_t timeStamp = 0;
45
    uint32_t timeStamp = 0;
46
   
46
   
47
    Can_Message_t txMsg;
47
    Can_Message_t txMsg;
48
    Can_Message_t rxMsg;
48
    Can_Message_t rxMsg;
49
   
-
 
50
    txMsg.DataLength = 8;
49
    txMsg.DataLength = 8;
51
    txMsg.Data.bytes[0] = 7;
50
    txMsg.Data.bytes[0] = 7;
52
    txMsg.Id = 0;
51
    txMsg.Id = 0;
53
    txMsg.RemoteFlag = 0;
52
    txMsg.RemoteFlag = 0;
54
    txMsg.ExtendedFlag = 1;
53
    txMsg.ExtendedFlag = 1;
55
   
54
   
56
    /* main loop */
55
    /* main loop */
57
    while (1) {
56
    while (1) {
58
        /* any new CAN messages received? */
57
        /* service the CAN routines */
59
        if (Can_Receive(&rxMsg) == CAN_OK) {
58
        Can_Service();
60
            ProtocolParseCanMessage(&rxMsg);
-
 
61
        }
-
 
62
       
59
       
63
        /* send CAN message and check for CAN errors once every second */
60
        /* send CAN message and check for CAN errors once every second */
64
        if (Timebase_PassedTimeMillis(timeStamp) >= 1000) {
61
        if (Timebase_PassedTimeMillis(timeStamp) >= 1000) {
-
 
62
            timeStamp = Timebase_CurrentTime();
65
            /* send txMsg */
63
            /* send txMsg */
66
            txMsg.Id++;
64
            txMsg.Id++;
67
            Can_Send(&txMsg);
65
            //Can_Send(&txMsg);
68
            /* check for errors */
66
            printf(".");
-
 
67
        }
-
 
68
       
69
            timeStamp = Timebase_CurrentTime();
69
        /* check if any messages have been received */
70
            if (Can_CheckError() != CAN_OK) {
70
        while (Can_Receive(&rxMsg) == CAN_OK) {
-
 
71
            //printf("MSG Received: ID=%lx, DLC=%u, EXT=%u, RTR=%u, ", rxMsg.Id, (uint16_t)(rxMsg.DataLength), (uint16_t)(rxMsg.ExtendedFlag), (uint16_t)(rxMsg.RemoteFlag));
-
 
72
            //printf("data={ ");
-
 
73
            /*for (uint8_t i=0; i<rxMsg.DataLength; i++) {
71
                printf("CAN ERROR detected!\n");
74
                printf("%x ", rxMsg.Data.bytes[i]);
-
 
75
            }*/
-
 
76
            //printf("}\n");
-
 
77
            if (Can_Send(&rxMsg) != CAN_OK) {
-
 
78
                break;
72
            }
79
            }
73
        }
80
        }
74
    }
81
    }
75
   
82
   
76
    return 0;
83
    return 0;