merge -c1617 branches/stable-1.4: Added octet_string as an SDO data type.

This commit is contained in:
Florian Pose 2009-01-26 11:59:32 +00:00
parent 7e69daf7dd
commit b3238a745f
3 changed files with 25 additions and 10 deletions

View File

@ -36,7 +36,8 @@ string CommandDownload::helpString() const
<< "the --type option is mandatory." << endl
<< endl
<< "These are the valid SDO entry data types:" << endl
<< " int8, int16, int32, uint8, uint16, uint32, string." << endl
<< " int8, int16, int32, uint8, uint16, uint32, string," << endl
<< " octet_string." << endl
<< endl
<< "Arguments:" << endl
<< " INDEX is the SDO index and must be an unsigned" << endl
@ -190,6 +191,14 @@ void CommandDownload::execute(MasterDevice &m, const StringVector &args)
data.data_size = strValue.str().size();
strValue >> (char *) data.data;
break;
case 0x000a: // octet_string
if (strValue.str().size() >= data.data_size) {
err << "String too large";
throwCommandException(err);
}
data.data_size = strValue.str().size();
strValue >> (char *) data.data;
break;
default:
delete [] data.data;

View File

@ -36,7 +36,8 @@ string CommandUpload::helpString() const
<< "the --type option is mandatory." << endl
<< endl
<< "These are the valid SDO entry data types:" << endl
<< " int8, int16, int32, uint8, uint16, uint32, string." << endl
<< " int8, int16, int32, uint8, uint16, uint32, string," << endl
<< " octet_string." << endl
<< endl
<< "Arguments:" << endl
<< " INDEX is the SDO index and must be an unsigned" << endl
@ -181,6 +182,10 @@ void CommandUpload::execute(MasterDevice &m, const StringVector &args)
cout << string((const char *) data.target, data.data_size)
<< endl;
break;
case 0x000a: // octet_string
cout << string((const char *) data.target, data.data_size)
<< endl;
break;
default:
printRawData(data.target, data.data_size); // FIXME
break;

View File

@ -57,14 +57,15 @@ const char *SdoCommand::abortText(uint32_t abortCode)
/****************************************************************************/
const SdoCommand::DataType SdoCommand::dataTypes[] = {
{"int8", 0x0002, 1},
{"int16", 0x0003, 2},
{"int32", 0x0004, 4},
{"uint8", 0x0005, 1},
{"uint16", 0x0006, 2},
{"uint32", 0x0007, 4},
{"string", 0x0009, 0},
{"raw", 0xffff, 0},
{"int8", 0x0002, 1},
{"int16", 0x0003, 2},
{"int32", 0x0004, 4},
{"uint8", 0x0005, 1},
{"uint16", 0x0006, 2},
{"uint32", 0x0007, 4},
{"string", 0x0009, 0},
{"octet_string", 0x000a, 0},
{"raw", 0xffff, 0},
{}
};