removed absolute positions, fix for part def
This commit is contained in:
@@ -139,12 +139,12 @@ result_t Message::prepare(const unsigned char srcAddress, SymbolString& masterDa
|
|||||||
masterData.push_back(m_dstAddress, false);
|
masterData.push_back(m_dstAddress, false);
|
||||||
masterData.push_back(m_id[0], false);
|
masterData.push_back(m_id[0], false);
|
||||||
masterData.push_back(m_id[1], false);
|
masterData.push_back(m_id[1], false);
|
||||||
unsigned char addData = m_data->getNextOffset(pt_masterData);
|
unsigned char addData = m_data->getLength(pt_masterData);
|
||||||
masterData.push_back(m_id.size() - 2 + addData, false);
|
masterData.push_back(m_id.size() - 2 + addData, false);
|
||||||
for (size_t i=2; i<m_id.size(); i++)
|
for (size_t i=2; i<m_id.size(); i++)
|
||||||
masterData.push_back(m_id[i], false);
|
masterData.push_back(m_id[i], false);
|
||||||
SymbolString slaveData;
|
SymbolString slaveData;
|
||||||
result_t result = m_data->write(input, masterData, slaveData, separator); // TODO m_id.size() - 2
|
result_t result = m_data->write(input, masterData, m_id.size() - 2, slaveData, 0, separator);
|
||||||
if (result != RESULT_OK)
|
if (result != RESULT_OK)
|
||||||
return result;
|
return result;
|
||||||
masterData.push_back(masterData.getCRC(), false, false);
|
masterData.push_back(masterData.getCRC(), false, false);
|
||||||
@@ -156,13 +156,13 @@ result_t Message::handle(SymbolString& masterData, SymbolString& slaveData,
|
|||||||
std::ostringstream& output, char separator, bool answer)
|
std::ostringstream& output, char separator, bool answer)
|
||||||
{
|
{
|
||||||
if (m_isActiveMessage == true) {
|
if (m_isActiveMessage == true) {
|
||||||
result_t result = m_data->read(masterData, slaveData, output, false, separator);
|
result_t result = m_data->read(masterData, m_id.size() - 2, slaveData, 0, output, false, separator);
|
||||||
if (result != RESULT_OK)
|
if (result != RESULT_OK)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
else if (answer == true) {
|
else if (answer == true) {
|
||||||
std::istringstream input; // TODO create input from database of internal variables
|
std::istringstream input; // TODO create input from database of internal variables
|
||||||
result_t result = m_data->write(input, masterData, slaveData, separator);
|
result_t result = m_data->write(input, masterData, m_id.size() - 2, slaveData, 0, separator);
|
||||||
if (result != RESULT_OK)
|
if (result != RESULT_OK)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,12 +66,12 @@ void printErrorPos(std::vector<std::string>::iterator it, const std::vector<std:
|
|||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
// message= [type];class;name;[comment];[QQ];ZZ;id;fields...
|
// message= [type];class;name;[comment];[QQ];ZZ;PBSB;fields...
|
||||||
// field= name;[pos];type[;[divisor|values][;[unit][;[comment]]]]
|
// field= name;[pos];type[;[divisor|values][;[unit][;[comment]]]]
|
||||||
std::string checks[][5] = {
|
std::string checks[][5] = {
|
||||||
// "message", "flags"
|
// "message", "flags"
|
||||||
{";;first;;;fe;0700;x;;bda", "26.10.2014", "fffe0700042610001451", "00", ""},
|
{";;first;;;fe;0700;x;;bda", "26.10.2014", "fffe0700042610001451", "00", ""},
|
||||||
{";;first;;;15;b5090400;date;1;bda", "26.10.2014", "ff15b50904040026100014cc", "00", ""},
|
{"w;;first;;;15;b5090400;date;;bda", "26.10.2014", "ff15b5090604002610001445", "00", ""},
|
||||||
};
|
};
|
||||||
std::map<std::string, DataField*> templates;
|
std::map<std::string, DataField*> templates;
|
||||||
Message* message = NULL;
|
Message* message = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user