@@ -41,10 +41,10 @@ class CANMessage : public CAN_Message {
41
41
*/
42
42
CANMessage () : CAN_Message()
43
43
{
44
- len = 8 ;
44
+ len = 8U ;
45
45
type = CANData;
46
46
format = CANStandard;
47
- id = 0 ;
47
+ id = 0U ;
48
48
memset (data, 0 , 8 );
49
49
}
50
50
@@ -56,7 +56,25 @@ class CANMessage : public CAN_Message {
56
56
* @param _type Type of Data: Use enum CANType for valid parameter values
57
57
* @param _format Data Format: Use enum CANFormat for valid parameter values
58
58
*/
59
- CANMessage (unsigned _id, const char *_data, char _len = 8 , CANType _type = CANData, CANFormat _format = CANStandard)
59
+ CANMessage (unsigned int _id, const unsigned char *_data, unsigned char _len = 8 , CANType _type = CANData, CANFormat _format = CANStandard)
60
+ {
61
+ len = _len & 0xF ;
62
+ type = _type;
63
+ format = _format;
64
+ id = _id;
65
+ memcpy (data, _data, _len);
66
+ }
67
+
68
+
69
+ /* * Creates CAN message with specific content.
70
+ *
71
+ * @param _id Message ID
72
+ * @param _data Mesaage Data
73
+ * @param _len Message Data length
74
+ * @param _type Type of Data: Use enum CANType for valid parameter values
75
+ * @param _format Data Format: Use enum CANFormat for valid parameter values
76
+ */
77
+ CANMessage (unsigned int _id, const char *_data, unsigned char _len = 8 , CANType _type = CANData, CANFormat _format = CANStandard)
60
78
{
61
79
len = _len & 0xF ;
62
80
type = _type;
@@ -70,7 +88,7 @@ class CANMessage : public CAN_Message {
70
88
* @param _id Message ID
71
89
* @param _format Data Format: Use enum CANType for valid parameter values
72
90
*/
73
- CANMessage (unsigned _id, CANFormat _format = CANStandard)
91
+ CANMessage (unsigned int _id, CANFormat _format = CANStandard)
74
92
{
75
93
len = 0 ;
76
94
type = CANRemote;
@@ -104,10 +122,10 @@ class CAN : private NonCopyable<CAN> {
104
122
* CAN can1(MBED_CONF_APP_CAN1_RD, MBED_CONF_APP_CAN1_TD);
105
123
* CAN can2(MBED_CONF_APP_CAN2_RD, MBED_CONF_APP_CAN2_TD);
106
124
*
107
- * char counter = 0;
125
+ * unsigned char counter = 0;
108
126
*
109
127
* void send() {
110
- * if(can1.write(CANMessage(1337 , &counter, 1))) {
128
+ * if(can1.write(CANMessage(1337U , &counter, 1))) {
111
129
* printf("Message sent: %d\n", counter);
112
130
* counter++;
113
131
* }
@@ -116,7 +134,7 @@ class CAN : private NonCopyable<CAN> {
116
134
*
117
135
* int main() {
118
136
* ticker.attach(&send, 1);
119
- * CANMessage msg;
137
+ * CANMessage msg;
120
138
* while(1) {
121
139
* if(can2.read(msg)) {
122
140
* printf("Message received: %d\n\n", msg.data[0]);
0 commit comments