equal
deleted
inserted
replaced
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"; |