added prepareSlave for answering requests

This commit is contained in:
john30
2014-12-10 21:31:44 +01:00
parent 98a4be5f84
commit ba2b404900
2 changed files with 28 additions and 2 deletions
+18 -1
View File
@@ -244,7 +244,6 @@ result_t Message::prepareMaster(const unsigned char srcAddress, SymbolString& ma
return RESULT_ERR_INVALID_ARG; // prepare not possible
SymbolString master;
master.clear();
result_t result = master.push_back(srcAddress, false, false);
if (result != RESULT_OK)
return result;
@@ -273,6 +272,24 @@ result_t Message::prepareMaster(const unsigned char srcAddress, SymbolString& ma
return result;
}
result_t Message::prepareSlave(SymbolString& slaveData)
{
if (m_isPassive == false || m_isSet == true)
return RESULT_ERR_INVALID_ARG; // prepare not possible
SymbolString slave;
unsigned char addData = m_data->getLength(pt_slaveData);
result_t result = slave.push_back(addData, false, false);
if (result != RESULT_OK)
return result;
istringstream input;
result = m_data->write(input, pt_slaveData, slave, 0);
if (result != RESULT_OK)
return result;
slaveData = SymbolString(slave, true);
return result;
}
result_t Message::decode(const PartType partType, SymbolString& data,
ostringstream& output, bool leadingSeparator, char separator)
{