Merge pull request #9111 from embeddedteam103/can_signness_mismatch

CAN: Fix signness mismatch in `CANMessage` constructors
pull/10215/head
Cruz Monrreal 2019-04-01 17:06:09 -05:00 committed by GitHub
commit d2c9d9ddc8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 7 deletions

View File

@ -41,10 +41,10 @@ public:
*/
CANMessage() : CAN_Message()
{
len = 8;
len = 8U;
type = CANData;
format = CANStandard;
id = 0;
id = 0U;
memset(data, 0, 8);
}
@ -56,7 +56,25 @@ public:
* @param _type Type of Data: Use enum CANType for valid parameter values
* @param _format Data Format: Use enum CANFormat for valid parameter values
*/
CANMessage(unsigned _id, const char *_data, char _len = 8, CANType _type = CANData, CANFormat _format = CANStandard)
CANMessage(unsigned int _id, const unsigned char *_data, unsigned char _len = 8, CANType _type = CANData, CANFormat _format = CANStandard)
{
len = _len & 0xF;
type = _type;
format = _format;
id = _id;
memcpy(data, _data, _len);
}
/** Creates CAN message with specific content.
*
* @param _id Message ID
* @param _data Mesaage Data
* @param _len Message Data length
* @param _type Type of Data: Use enum CANType for valid parameter values
* @param _format Data Format: Use enum CANFormat for valid parameter values
*/
CANMessage(unsigned int _id, const char *_data, unsigned char _len = 8, CANType _type = CANData, CANFormat _format = CANStandard)
{
len = _len & 0xF;
type = _type;
@ -70,7 +88,7 @@ public:
* @param _id Message ID
* @param _format Data Format: Use enum CANType for valid parameter values
*/
CANMessage(unsigned _id, CANFormat _format = CANStandard)
CANMessage(unsigned int _id, CANFormat _format = CANStandard)
{
len = 0;
type = CANRemote;
@ -104,10 +122,10 @@ public:
* CAN can1(MBED_CONF_APP_CAN1_RD, MBED_CONF_APP_CAN1_TD);
* CAN can2(MBED_CONF_APP_CAN2_RD, MBED_CONF_APP_CAN2_TD);
*
* char counter = 0;
* unsigned char counter = 0;
*
* void send() {
* if(can1.write(CANMessage(1337, &counter, 1))) {
* if(can1.write(CANMessage(1337U, &counter, 1))) {
* printf("Message sent: %d\n", counter);
* counter++;
* }
@ -116,7 +134,7 @@ public:
*
* int main() {
* ticker.attach(&send, 1);
* CANMessage msg;
* CANMessage msg;
* while(1) {
* if(can2.read(msg)) {
* printf("Message received: %d\n\n", msg.data[0]);