- Beiträge
- 9.189
- Reaktionspunkte
- 2.936
-> Hier kostenlos registrieren
Das Lesen an sich funktioniert.
Aber in libnodave fehlt die Erkennung diverser möglicher Transportgrößen, in diesem Fall 0x07. Das hat bisher nicht gestört, weil libnodave die Anfragen immer so gestellt hat, dass eine bekannte Transportgröße zurückkommt.
Ich kopiere mal alle die mir bekannten Größen aus dem Wireshark plugin die in libnodave ergänzt werden müssten, denn zumindest "OCTET STRING" kommt bei manchen Daten einer NCK auch noch vor:
Aber in libnodave fehlt die Erkennung diverser möglicher Transportgrößen, in diesem Fall 0x07. Das hat bisher nicht gestört, weil libnodave die Anfragen immer so gestellt hat, dass eine bekannte Transportgröße zurückkommt.
Ich kopiere mal alle die mir bekannten Größen aus dem Wireshark plugin die in libnodave ergänzt werden müssten, denn zumindest "OCTET STRING" kommt bei manchen Daten einer NCK auch noch vor:
Code:
/**************************************************************************
* Transport sizes in data
*/
#define S7COMM_DATA_TRANSPORT_SIZE_NULL 0
#define S7COMM_DATA_TRANSPORT_SIZE_BBIT 3 /* bit access, len is in bits */
#define S7COMM_DATA_TRANSPORT_SIZE_BBYTE 4 /* byte/word/dword access, len is in bits */
#define S7COMM_DATA_TRANSPORT_SIZE_BINT 5 /* integer access, len is in bits */
#define S7COMM_DATA_TRANSPORT_SIZE_BDINT 6 /* integer access, len is in bytes */
#define S7COMM_DATA_TRANSPORT_SIZE_BREAL 7 /* real access, len is in bytes */
#define S7COMM_DATA_TRANSPORT_SIZE_BSTR 9 /* octet string, len is in bytes */
static const value_string data_transportsizenames[] = {
{ S7COMM_DATA_TRANSPORT_SIZE_NULL, "NULL" },
{ S7COMM_DATA_TRANSPORT_SIZE_BBIT, "BIT" },
{ S7COMM_DATA_TRANSPORT_SIZE_BBYTE, "BYTE/WORD/DWORD" },
{ S7COMM_DATA_TRANSPORT_SIZE_BINT, "INTEGER" },
{ S7COMM_DATA_TRANSPORT_SIZE_BDINT, "DINTEGER" },
{ S7COMM_DATA_TRANSPORT_SIZE_BREAL, "REAL" },
{ S7COMM_DATA_TRANSPORT_SIZE_BSTR, "OCTET STRING" },
{ 0, NULL }
};