tool/CommandDownload.cpp
changeset 1254 c19d273a9e76
parent 1184 75cd6681eb08
child 1327 4d179b06dd3c
equal deleted inserted replaced
1253:8a081444a89a 1254:c19d273a9e76
     7 #include <iostream>
     7 #include <iostream>
     8 #include <iomanip>
     8 #include <iomanip>
     9 using namespace std;
     9 using namespace std;
    10 
    10 
    11 #include "CommandDownload.h"
    11 #include "CommandDownload.h"
    12 #include "byteorder.h"
       
    13 
    12 
    14 /*****************************************************************************/
    13 /*****************************************************************************/
    15 
    14 
    16 CommandDownload::CommandDownload():
    15 CommandDownload::CommandDownload():
    17     SdoCommand("download", "Write an Sdo entry to a slave.")
    16     SdoCommand("download", "Write an Sdo entry to a slave.")
   148                 }
   147                 }
   149             case 0x0003: // int16
   148             case 0x0003: // int16
   150                 {
   149                 {
   151                     int16_t val;
   150                     int16_t val;
   152                     strValue >> val;
   151                     strValue >> val;
   153                     *(int16_t *) data.data = cputole16(val);
   152                     *(int16_t *) data.data = cpu_to_le16(val);
   154                     break;
   153                     break;
   155                 }
   154                 }
   156             case 0x0004: // int32
   155             case 0x0004: // int32
   157                 {
   156                 {
   158                     int32_t val;
   157                     int32_t val;
   159                     strValue >> val;
   158                     strValue >> val;
   160                     *(int32_t *) data.data = cputole32(val);
   159                     *(int32_t *) data.data = cpu_to_le32(val);
   161                     break;
   160                     break;
   162                 }
   161                 }
   163             case 0x0005: // uint8
   162             case 0x0005: // uint8
   164                 {
   163                 {
   165                     uint16_t val; // uint8_t is interpreted as char
   164                     uint16_t val; // uint8_t is interpreted as char
   171                 }
   170                 }
   172             case 0x0006: // uint16
   171             case 0x0006: // uint16
   173                 {
   172                 {
   174                     uint16_t val;
   173                     uint16_t val;
   175                     strValue >> val;
   174                     strValue >> val;
   176                     *(uint16_t *) data.data = cputole16(val);
   175                     *(uint16_t *) data.data = cpu_to_le16(val);
   177                     break;
   176                     break;
   178                 }
   177                 }
   179             case 0x0007: // uint32
   178             case 0x0007: // uint32
   180                 {
   179                 {
   181                     uint32_t val;
   180                     uint32_t val;
   182                     strValue >> val;
   181                     strValue >> val;
   183                     *(uint32_t *) data.data = cputole32(val);
   182                     *(uint32_t *) data.data = cpu_to_le32(val);
   184                     break;
   183                     break;
   185                 }
   184                 }
   186             case 0x0009: // string
   185             case 0x0009: // string
   187                 if (strValue.str().size() >= data.data_size) {
   186                 if (strValue.str().size() >= data.data_size) {
   188                     err << "String too large";
   187                     err << "String too large";