This commit is contained in:
parent
74707e39ea
commit
68e41595cb
7 changed files with 257 additions and 241 deletions
|
@ -1,196 +0,0 @@
|
||||||
/*@!Encoding:1252*/
|
|
||||||
|
|
||||||
includes
|
|
||||||
{
|
|
||||||
#include "include\ModbusTcpClientCommon.cin"
|
|
||||||
}
|
|
||||||
|
|
||||||
variables
|
|
||||||
{
|
|
||||||
msTimer muster, clock;
|
|
||||||
byte gX[2] = {1, 0};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get information of local network interface such like ip address
|
|
||||||
|
|
||||||
on preStart
|
|
||||||
{
|
|
||||||
writeClear(0);
|
|
||||||
setStartdelay(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
on start
|
|
||||||
{
|
|
||||||
long fehler;
|
|
||||||
|
|
||||||
ModbusInit("192.168.1.3", 502);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Modbus events ----------------------------------------------------------------------
|
|
||||||
void OnModbusReadBitsFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void OnModbusReadRegistersFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void OnModbusWriteBitFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void OnModbusWriteRegisterFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void OnModbusWriteBitsFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void OnModbusWriteRegistersFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void OnModbusReadBitsSuccess(struct ModbusResReceiveBits mbr, byte bitStatus[], word numBits)
|
|
||||||
{
|
|
||||||
char str[20*2];
|
|
||||||
|
|
||||||
hbin_to_strhex(mbr.Data, str);
|
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveBits: Received %d bits (in %d bytes): %s", numBits, mbr.ByteCount, str);
|
|
||||||
}
|
|
||||||
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word numRegs)
|
|
||||||
{
|
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveRegisters: Received %d registers (%d bytes): %X %X %X %X...", mbr.ByteCount, mbr.Data[0], mbr.Data[1], mbr.Data[2], mbr.Data[3]);
|
|
||||||
}
|
|
||||||
void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbc)
|
|
||||||
{
|
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBit: Set bit 0x%X to %d", mbc.Address, (mbc.Value > 0 ? 1 : 0));
|
|
||||||
}
|
|
||||||
void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbc)
|
|
||||||
{
|
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegister: Set register 0x%X to %d", mbc.Address, mbc.Value);
|
|
||||||
}
|
|
||||||
void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbc)
|
|
||||||
{
|
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBits: Set %d bits beginning with 0x%X", mbc.Count, mbc.Address);
|
|
||||||
}
|
|
||||||
void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbc)
|
|
||||||
{
|
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegisters: Set %d registers beginning with 0x%X", mbc.Count, mbc.Address);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Key events -------------------------------------------------------------------------
|
|
||||||
on key 'r'
|
|
||||||
{
|
|
||||||
ModbusReadBits(0, 512);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 'a'
|
|
||||||
{
|
|
||||||
byte x[16] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0};
|
|
||||||
ModbusWriteBitsB(0, 16, x);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 's'
|
|
||||||
{
|
|
||||||
byte x[16] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
|
|
||||||
ModbusWriteBitsB(0, 16, x);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 'Y'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(0, 0);
|
|
||||||
}
|
|
||||||
on key 'y'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(0, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 'X'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(1, 0);
|
|
||||||
}
|
|
||||||
on key 'x'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 'C'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(2, 0);
|
|
||||||
}
|
|
||||||
on key 'c'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(2, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 'V'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(3, 0);
|
|
||||||
}
|
|
||||||
on key 'v'
|
|
||||||
{
|
|
||||||
ModbusWriteBit(3, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key '+'
|
|
||||||
{
|
|
||||||
byte x[2] = {0xFF, 0xFF};
|
|
||||||
ModbusWriteBits(0, 16, x);
|
|
||||||
}
|
|
||||||
on key '-'
|
|
||||||
{
|
|
||||||
byte x[2] = {0x00, 0x00};
|
|
||||||
ModbusWriteBits(0, 16, x);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 'z'
|
|
||||||
{
|
|
||||||
setTimerCyclic(muster, 100);
|
|
||||||
}
|
|
||||||
on key 'Z'
|
|
||||||
{
|
|
||||||
cancelTimer(muster);
|
|
||||||
}
|
|
||||||
|
|
||||||
on timer muster
|
|
||||||
{
|
|
||||||
if (gX[0] != 0)
|
|
||||||
{
|
|
||||||
if (gX[0] == 0x80)
|
|
||||||
{
|
|
||||||
gX[0] = 0x00;
|
|
||||||
gX[1] = 0x01;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gX[0] <<= 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (gX[1] == 0x80)
|
|
||||||
{
|
|
||||||
gX[0] = 0x01;
|
|
||||||
gX[1] = 0x00;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gX[1] <<= 1;
|
|
||||||
}
|
|
||||||
ModbusWriteBits(0, 16, gX);
|
|
||||||
//ModbusReadBits(0, 512);
|
|
||||||
}
|
|
||||||
|
|
||||||
on key 't'
|
|
||||||
{
|
|
||||||
setTimerCyclic(clock, 100);
|
|
||||||
}
|
|
||||||
on key 'T'
|
|
||||||
{
|
|
||||||
clock.Cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
on timer clock
|
|
||||||
{
|
|
||||||
byte s, x[2];
|
|
||||||
s = (timeNow() / 100000) % 30;
|
|
||||||
x[0] = (s & 0x01) | (s & 0x02) | ((s & 0x04) << 1) | ((s & 0x08) << 4);
|
|
||||||
x[1] = (s & 0x10) << 3;
|
|
||||||
ModbusWriteBits(0, 16, x);
|
|
||||||
}
|
|
|
@ -21,8 +21,6 @@ variables
|
||||||
on preStart
|
on preStart
|
||||||
{
|
{
|
||||||
writeClear(0);
|
writeClear(0);
|
||||||
sysDefineNamespace("%NETWORK_NAME%::%BASE_FILE_NAME%::Info");
|
|
||||||
sysDefineNamespace("%NETWORK_NAME%::%BASE_FILE_NAME%::Data");
|
|
||||||
setStartdelay(10);
|
setStartdelay(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,24 +66,24 @@ void OnModbusReadBitsSuccess(struct ModbusResReceiveBits mbr, byte bitStatus[],
|
||||||
char str[20*2];
|
char str[20*2];
|
||||||
|
|
||||||
hbin_to_strhex(mbr.Data, str);
|
hbin_to_strhex(mbr.Data, str);
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveBits: Received %d bits (in %d bytes): %s", numBits, mbr.ByteCount, str);
|
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusReceiveBits: Received %d bits (in %d bytes): %s", numBits, mbr.ByteCount, str);
|
||||||
}
|
}
|
||||||
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word numRegs)
|
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word numRegs)
|
||||||
{
|
{
|
||||||
char str[20*5];
|
char str[20*5];
|
||||||
long fehler;
|
long fehler;
|
||||||
dbin_to_strhex(mbr.Data, str);
|
dbin_to_strhex(mbr.Data, str);
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveRegisters: Received %d bytes: %s", mbr.ByteCount, str);
|
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusReceiveRegisters: Received %d bytes: %s", mbr.ByteCount, str);
|
||||||
|
|
||||||
switch (gState)
|
switch (gState)
|
||||||
{
|
{
|
||||||
case ConfWago1:
|
case ConfWago1:
|
||||||
sysDefineVariableInt("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "SerialCode", mbr.Data[0]);
|
//@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::SerialCode = mbr.Data[0];
|
||||||
gState = ConfWago2;
|
gState = ConfWago2;
|
||||||
ModbusReadRegisters(0x2012, 1);
|
ModbusReadRegisters(0x2012, 1);
|
||||||
break;
|
break;
|
||||||
case ConfWago2:
|
case ConfWago2:
|
||||||
sysDefineVariableInt("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "DeviceCode", mbr.Data[0]);
|
//@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::DeviceCode = mbr.Data[0];
|
||||||
gState = ConfWago3;
|
gState = ConfWago3;
|
||||||
ModbusReadRegisters(0x2030, 1);
|
ModbusReadRegisters(0x2030, 1);
|
||||||
break;
|
break;
|
||||||
|
@ -97,19 +95,19 @@ void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word num
|
||||||
}
|
}
|
||||||
void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbc)
|
void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbc)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBit: Set bit 0x%X to %d", mbc.Address, (mbc.Value > 0 ? 1 : 0));
|
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmBit: Set bit 0x%X to %d", mbc.Address, (mbc.Value > 0 ? 1 : 0));
|
||||||
}
|
}
|
||||||
void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbc)
|
void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbc)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegister: Set register 0x%X to %d", mbc.Address, mbc.Value);
|
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmRegister: Set register 0x%X to %d", mbc.Address, mbc.Value);
|
||||||
}
|
}
|
||||||
void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbc)
|
void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbc)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBits: Set %d bits beginning with 0x%X", mbc.Count, mbc.Address);
|
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmBits: Set %d bits beginning with 0x%X", mbc.Count, mbc.Address);
|
||||||
}
|
}
|
||||||
void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbc)
|
void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbc)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegisters: Set %d registers beginning with 0x%X", mbc.Count, mbc.Address);
|
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmRegisters: Set %d registers beginning with 0x%X", mbc.Count, mbc.Address);
|
||||||
}
|
}
|
||||||
void OnModbusWriteMasksSuccess(struct ModbusResConfirmMasks mbc)
|
void OnModbusWriteMasksSuccess(struct ModbusResConfirmMasks mbc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,8 +31,8 @@ variables
|
||||||
|
|
||||||
void ModbusInit(char Remote_IP[], word Remote_Port)
|
void ModbusInit(char Remote_IP[], word Remote_Port)
|
||||||
{
|
{
|
||||||
sysDefineVariableString("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "IP", Remote_IP);
|
sysDefineVariableString("%NETWORK_NAME%::%NODE_NAME%::Info", "IP", Remote_IP);
|
||||||
sysDefineVariableInt("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "Port", Remote_Port);
|
sysDefineVariableInt("%NETWORK_NAME%::%NODE_NAME%::Info", "Port", Remote_Port);
|
||||||
|
|
||||||
ModbusConnectTo(Remote_IP, Remote_Port);
|
ModbusConnectTo(Remote_IP, Remote_Port);
|
||||||
}
|
}
|
||||||
|
@ -455,7 +455,7 @@ void ModbusWriteBitsB(word address, word count, byte values[])
|
||||||
|
|
||||||
hbin_to_strhex(values, str1);
|
hbin_to_strhex(values, str1);
|
||||||
bin_to_strhex(buffer, str2);
|
bin_to_strhex(buffer, str2);
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> ModbusWriteBitsB: Encoded %s to %s", str1, str2);
|
writeLineEx(0, 1, "<%NODE_NAME%> ModbusWriteBitsB: Encoded %s to %s", str1, str2);
|
||||||
ModbusWriteBits(address, count, buffer);
|
ModbusWriteBits(address, count, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -767,7 +767,7 @@ void OnModbusReceive(dword socket, long result, dword address, dword port, byte
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
{
|
{
|
||||||
// Size of zero indicates that the socket was closed by the communication peer.
|
// Size of zero indicates that the socket was closed by the communication peer.
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnTcpReceive: Socket closed by peer");
|
writeLineEx(0, 2, "<%NODE_NAME%> OnTcpReceive: Socket closed by peer");
|
||||||
gSocket.Close();
|
gSocket.Close();
|
||||||
gSocketState = CLOSED;
|
gSocketState = CLOSED;
|
||||||
}
|
}
|
||||||
|
@ -781,7 +781,7 @@ void OnModbusReceive(dword socket, long result, dword address, dword port, byte
|
||||||
{
|
{
|
||||||
gIpLastErr = gSocket.GetLastSocketError();
|
gIpLastErr = gSocket.GetLastSocketError();
|
||||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnTcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
|
writeLineEx(0, 2, "<%NODE_NAME%> OnTcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
|
||||||
gSocket.Close();
|
gSocket.Close();
|
||||||
gSocketState = CLOSED;
|
gSocketState = CLOSED;
|
||||||
}
|
}
|
||||||
|
@ -832,14 +832,14 @@ void OnModbusReceive2OnePacket(byte buffer[], int offset, struct ModbusApHeader
|
||||||
// We cannot check this properly anymore. We have to trust the TCP/UDP stack and the sender... *sigh*
|
// We cannot check this properly anymore. We have to trust the TCP/UDP stack and the sender... *sigh*
|
||||||
if (elCount(buffer) < offset + length) // TCP packet not as large enough
|
if (elCount(buffer) < offset + length) // TCP packet not as large enough
|
||||||
{
|
{
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> OnModbusReceive Error: Modbus packet did not fit into Buffer: buffer length = %d, packet length = %d, offset = %d", elCount(buffer), __offset_of(struct ModbusApHeader, UnitID) + mbap.Length, offset);
|
writeLineEx(0, 3, "<%NODE_NAME%> OnModbusReceive Error: Modbus packet did not fit into Buffer: buffer length = %d, packet length = %d, offset = %d", elCount(buffer), __offset_of(struct ModbusApHeader, UnitID) + mbap.Length, offset);
|
||||||
// I REALLY don't want to assemble the two package fragments.
|
// I REALLY don't want to assemble the two package fragments.
|
||||||
runError(1001,1);
|
runError(1001,1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mbap.Protocol != 0) // Protocol is not Modbus (0x0000). Wayne.
|
if (mbap.Protocol != 0) // Protocol is not Modbus (0x0000). Wayne.
|
||||||
{
|
{
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnModbusReceive Error: Tcp packet is no Modbus packet: Protocol = %d", mbap.Protocol);
|
writeLineEx(0, 2, "<%NODE_NAME%> OnModbusReceive Error: Tcp packet is no Modbus packet: Protocol = %d", mbap.Protocol);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// MBAP Header is OK :) Go on
|
// MBAP Header is OK :) Go on
|
||||||
|
@ -896,28 +896,28 @@ void OnModbusReceive2Exceptions(byte exCode, struct ModbusApHeader mbap)
|
||||||
switch(exCode) // Let's have a look at the reason
|
switch(exCode) // Let's have a look at the reason
|
||||||
{
|
{
|
||||||
case 0x01: // Illegal function code: Implementation failure!
|
case 0x01: // Illegal function code: Implementation failure!
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Illegal function code (0x01). The function code %d is unknown by the server.", mbap.FuncCode & 0x0F);
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Illegal function code (0x01). The function code %d is unknown by the server.", mbap.FuncCode & 0x0F);
|
||||||
break;
|
break;
|
||||||
case 0x02: // Illegal data address: Configuration failure!
|
case 0x02: // Illegal data address: Configuration failure!
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Illegal data address (0x02). Please check your configuration!");
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Illegal data address (0x02). Please check your configuration!");
|
||||||
break;
|
break;
|
||||||
case 0x03: // Illegal data value: Depends.
|
case 0x03: // Illegal data value: Depends.
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Illegal data value (0x03).");
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Illegal data value (0x03).");
|
||||||
break;
|
break;
|
||||||
case 0x04: // Server failure: We can't do anything about that, can we?
|
case 0x04: // Server failure: We can't do anything about that, can we?
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Server failure (0x04). The server failed during execution.");
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Server failure (0x04). The server failed during execution.");
|
||||||
break;
|
break;
|
||||||
case 0x05: // Acknowledge: That's ok.
|
case 0x05: // Acknowledge: That's ok.
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Exception: Acknowledge (0x05). The server simply needs more time to generate the response.");
|
writeLineEx(0, 1, "<%NODE_NAME%> Exception: Acknowledge (0x05). The server simply needs more time to generate the response.");
|
||||||
break;
|
break;
|
||||||
case 0x06: // Server busy: We should resend the request.
|
case 0x06: // Server busy: We should resend the request.
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Server busy (0x06). The request could not be accepted.");
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Server busy (0x06). The request could not be accepted.");
|
||||||
break;
|
break;
|
||||||
case 0x0A: // Gateway problem: We don't have gateways :)
|
case 0x0A: // Gateway problem: We don't have gateways :)
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Gateway problem (0x0A). Gateway paths not available.");
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Gateway problem (0x0A). Gateway paths not available.");
|
||||||
break;
|
break;
|
||||||
case 0x0B: // Gateway problem: We don't have gateways :)
|
case 0x0B: // Gateway problem: We don't have gateways :)
|
||||||
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Gateway problem (0x0B). The targeted device failed to respond.");
|
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Gateway problem (0x0B). The targeted device failed to respond.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,19 +34,19 @@ word TcpOpenSocket()
|
||||||
if (gSocket.GetLastSocketError() != 0)
|
if (gSocket.GetLastSocketError() != 0)
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(errorText, elcount(errorText));
|
gSocket.GetLastSocketErrorAsString(errorText, elcount(errorText));
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Tcp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
|
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Tcp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (gSocket.GetLastSocketError() != 0 && i++ < 9);
|
while (gSocket.GetLastSocketError() != 0 && i++ < 9);
|
||||||
|
|
||||||
if (gSocket.GetLastSocketError() != 0)
|
if (gSocket.GetLastSocketError() != 0)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Tcp socket!");
|
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Tcp socket!");
|
||||||
return gSocket.GetLastSocketError();
|
return gSocket.GetLastSocketError();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Tcp socket opened on %s:%d.", Local_IP, localPort);
|
writeLineEx(0, 1, "<%NODE_NAME%> Tcp socket opened on %s:%d.", Local_IP, localPort);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ word TcpConnectTo(char Remote_IP[], word remotePort)
|
||||||
remoteIp = IpGetAddressAsNumber(Remote_IP);
|
remoteIp = IpGetAddressAsNumber(Remote_IP);
|
||||||
if (remoteIp == INVALID_IP)
|
if (remoteIp == INVALID_IP)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: invalid server Ip address!");
|
writeLineEx(0, 1, "<%NODE_NAME%> Error: invalid server Ip address!");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,7 @@ word TcpConnectTo(dword remoteIp, word remotePort)
|
||||||
|
|
||||||
if (fehler != WSAEWOULDBLOCK) // OnTcpConnect will be called otherwise
|
if (fehler != WSAEWOULDBLOCK) // OnTcpConnect will be called otherwise
|
||||||
{
|
{
|
||||||
write("<%BASE_FILE_NAME%> No Port-Connection: %d", fehler);
|
write("<%NODE_NAME%> No Port-Connection: %d", fehler);
|
||||||
gSocketState = ERROR;
|
gSocketState = ERROR;
|
||||||
return fehler;
|
return fehler;
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ word TcpConnectTo(dword remoteIp, word remotePort)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Successfully connected to server");
|
writeLineEx(0, 1, "<%NODE_NAME%> Successfully connected to server");
|
||||||
gSocketState = OK;
|
gSocketState = OK;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -110,13 +110,13 @@ void OnTcpConnect(dword socket, long result)
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnTcpConnect error (%d): %s", gSocket.GetLastSocketError(), gIpLastErrStr);
|
writeLineEx(0, 2, "<%NODE_NAME%> OnTcpConnect error (%d): %s", gSocket.GetLastSocketError(), gIpLastErrStr);
|
||||||
gSocketState = ERROR;
|
gSocketState = ERROR;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Successfully connected to server");
|
writeLineEx(0, 1, "<%NODE_NAME%> Successfully connected to server");
|
||||||
gSocketState = OK;
|
gSocketState = OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ void TcpRecv()
|
||||||
if (gIpLastErr != WSA_IO_PENDING) // Calling OnTcpReceive otherwise
|
if (gIpLastErr != WSA_IO_PENDING) // Calling OnTcpReceive otherwise
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
|
writeLineEx(0, 2, "<%NODE_NAME%> TcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
|
||||||
gSocket.Close();
|
gSocket.Close();
|
||||||
gSocketState = CLOSED;
|
gSocketState = CLOSED;
|
||||||
}
|
}
|
||||||
|
@ -159,18 +159,18 @@ void TcpSnd(byte buffer[], word length)
|
||||||
TcpConnectTo(gRemoteIP, gRemotePort);
|
TcpConnectTo(gRemoteIP, gRemotePort);
|
||||||
if (gSocketState != OK)
|
if (gSocketState != OK)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpSnd: Reconnecting failed!");
|
writeLineEx(0, 2, "<%NODE_NAME%> TcpSnd: Reconnecting failed!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case OK:
|
case OK:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpSnd: Socket status is not OK!");
|
writeLineEx(0, 2, "<%NODE_NAME%> TcpSnd: Socket status is not OK!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//bin_to_strhex(buffer, str);
|
//bin_to_strhex(buffer, str);
|
||||||
//writeLineEx(0, 1, "<%BASE_FILE_NAME%> TcpSnd: %s (Länge: %d)", str, length);
|
//writeLineEx(0, 1, "<%NODE_NAME%> TcpSnd: %s (Länge: %d)", str, length);
|
||||||
|
|
||||||
if (gSocket.Send(buffer, length) != 0)
|
if (gSocket.Send(buffer, length) != 0)
|
||||||
{
|
{
|
||||||
|
@ -179,7 +179,7 @@ void TcpSnd(byte buffer[], word length)
|
||||||
if (gIpLastErr != WSA_IO_PENDING)
|
if (gIpLastErr != WSA_IO_PENDING)
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
|
writeLineEx(0, 2, "<%NODE_NAME%> TcpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
|
||||||
gSocket.Close();
|
gSocket.Close();
|
||||||
gSocketState = CLOSED;
|
gSocketState = CLOSED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,19 +34,19 @@ word UdpOpenSocket()
|
||||||
if (gSocket.GetLastSocketError() != 0)
|
if (gSocket.GetLastSocketError() != 0)
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(errorText, elcount(errorText));
|
gSocket.GetLastSocketErrorAsString(errorText, elcount(errorText));
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Udp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
|
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Udp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (gSocket.GetLastSocketError() != 0 && i++ < 9);
|
while (gSocket.GetLastSocketError() != 0 && i++ < 9);
|
||||||
|
|
||||||
if (gSocket.GetLastSocketError() != 0)
|
if (gSocket.GetLastSocketError() != 0)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Udp socket!");
|
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Udp socket!");
|
||||||
return gSocket.GetLastSocketError();
|
return gSocket.GetLastSocketError();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Udp socket opened on %s:%d.", Local_IP, localPort);
|
writeLineEx(0, 1, "<%NODE_NAME%> Udp socket opened on %s:%d.", Local_IP, localPort);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ word UdpConnectTo(char Remote_IP[], word remotePort)
|
||||||
remoteIp = IpGetAddressAsNumber(Remote_IP);
|
remoteIp = IpGetAddressAsNumber(Remote_IP);
|
||||||
if (remoteIp == INVALID_IP)
|
if (remoteIp == INVALID_IP)
|
||||||
{
|
{
|
||||||
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: invalid server Ip address!");
|
writeLineEx(0, 1, "<%NODE_NAME%> Error: invalid server Ip address!");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ void UdpRecv()
|
||||||
if (gIpLastErr != WSA_IO_PENDING) // Calling OnUdpReceive otherwise
|
if (gIpLastErr != WSA_IO_PENDING) // Calling OnUdpReceive otherwise
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> UdpRecv Error (%d): %s", gIpLastErr, gIpLastErrStr);
|
writeLineEx(0, 2, "<%NODE_NAME%> UdpRecv Error (%d): %s", gIpLastErr, gIpLastErrStr);
|
||||||
gSocket.Close();
|
gSocket.Close();
|
||||||
gSocketState = CLOSED;
|
gSocketState = CLOSED;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ void UdpSnd(byte buffer[], word length)
|
||||||
}
|
}
|
||||||
|
|
||||||
//bin_to_strhex(buffer, str);
|
//bin_to_strhex(buffer, str);
|
||||||
//writeLineEx(0, 1, "<%BASE_FILE_NAME%> UdpSnd: %s (Länge: %d)", str, length);
|
//writeLineEx(0, 1, "<%NODE_NAME%> UdpSnd: %s (Länge: %d)", str, length);
|
||||||
|
|
||||||
if (gSocket.SendTo(gRemoteIP, gRemotePort, buffer, length) != 0)
|
if (gSocket.SendTo(gRemoteIP, gRemotePort, buffer, length) != 0)
|
||||||
{
|
{
|
||||||
|
@ -144,7 +144,7 @@ void UdpSnd(byte buffer[], word length)
|
||||||
if (gIpLastErr != WSA_IO_PENDING)
|
if (gIpLastErr != WSA_IO_PENDING)
|
||||||
{
|
{
|
||||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
|
||||||
writeLineEx(0, 2, "<%BASE_FILE_NAME%> UdpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
|
writeLineEx(0, 2, "<%NODE_NAME%> UdpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
|
||||||
gSocket.Close();
|
gSocket.Close();
|
||||||
gSocketState = CLOSED;
|
gSocketState = CLOSED;
|
||||||
}
|
}
|
||||||
|
|
49
Modbus/modbus.dbc
Normal file
49
Modbus/modbus.dbc
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
VERSION ""
|
||||||
|
|
||||||
|
|
||||||
|
NS_ :
|
||||||
|
NS_DESC_
|
||||||
|
CM_
|
||||||
|
BA_DEF_
|
||||||
|
BA_
|
||||||
|
VAL_
|
||||||
|
CAT_DEF_
|
||||||
|
CAT_
|
||||||
|
FILTER
|
||||||
|
BA_DEF_DEF_
|
||||||
|
EV_DATA_
|
||||||
|
ENVVAR_DATA_
|
||||||
|
SGTYPE_
|
||||||
|
SGTYPE_VAL_
|
||||||
|
BA_DEF_SGTYPE_
|
||||||
|
BA_SGTYPE_
|
||||||
|
SIG_TYPE_REF_
|
||||||
|
VAL_TABLE_
|
||||||
|
SIG_GROUP_
|
||||||
|
SIG_VALTYPE_
|
||||||
|
SIGTYPE_VALTYPE_
|
||||||
|
BO_TX_BU_
|
||||||
|
BA_DEF_REL_
|
||||||
|
BA_REL_
|
||||||
|
BA_DEF_DEF_REL_
|
||||||
|
BU_SG_REL_
|
||||||
|
BU_EV_REL_
|
||||||
|
BU_BO_REL_
|
||||||
|
SG_MUL_VAL_
|
||||||
|
|
||||||
|
BS_:
|
||||||
|
|
||||||
|
BU_: Wago_3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EV_ Wago_3_IP: 0 [0|0] "" 0 1 DUMMY_NODE_VECTOR8001 Vector__XXX;
|
||||||
|
|
||||||
|
BA_DEF_ "DBName" STRING ;
|
||||||
|
BA_DEF_ "BusType" STRING ;
|
||||||
|
BA_DEF_DEF_ "DBName" "";
|
||||||
|
BA_DEF_DEF_ "BusType" "Ethernet";
|
||||||
|
BA_ "BusType" "Ethernet";
|
||||||
|
BA_ "DBName" "modbus";
|
||||||
|
|
165
Modbus/modbus.ini
Normal file
165
Modbus/modbus.ini
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
[View_Vehicles]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,150,
|
||||||
|
[View_Vehicle]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,
|
||||||
|
[View_VehicleNetworks]
|
||||||
|
HIDDEN=3,5,
|
||||||
|
ORDER=0,1,2,3,4,
|
||||||
|
DEFINITIONS=1,2,
|
||||||
|
COLUMNWIDTHS=125,125,100,100,150,100,100,
|
||||||
|
[View_VehicleNetwork]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,125,150,
|
||||||
|
[View_VehicleNetworkTxMessages]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,55,100,50,100,100,100,150,
|
||||||
|
[View_VehicleNetworkSignals]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,100,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_VehicleControlUnit]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,125,150,
|
||||||
|
[View_VehicleGateways]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,
|
||||||
|
[View_VehicleGatewaySignals]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,125,125,125,125,125,
|
||||||
|
[View_Networks]
|
||||||
|
HIDDEN=2,4,
|
||||||
|
ORDER=0,1,2,3,
|
||||||
|
DEFINITIONS=1,2,
|
||||||
|
COLUMNWIDTHS=125,100,100,150,100,100,
|
||||||
|
[View_Network]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,150,
|
||||||
|
[View_NetworkTxMessages]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,55,100,50,100,100,100,150,
|
||||||
|
[View_NetworkTxSignals]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,100,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NetworkNodeGroup]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,100,150,
|
||||||
|
[View_Ecus]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,150,
|
||||||
|
[View_Ecu]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,150,
|
||||||
|
[View_EnvVars]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_EnvVar]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NodeGroups]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,150,
|
||||||
|
[View_NodeGroup]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,55,150,
|
||||||
|
[View_Nodes]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,100,150,
|
||||||
|
[View_Node]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NodeTxMessages]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,55,100,50,100,100,150,
|
||||||
|
[View_NodeTxMsg]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NodeTxSignals]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NodeRxSignals]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NodeTxSigs]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_NodeRxSigs]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_Messages]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,55,100,50,100,100,100,150,
|
||||||
|
[View_Message]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_Signals]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,50,100,100,100,50,50,50,50,100,100,150,
|
||||||
|
[View_ValueTables]
|
||||||
|
HIDDEN=
|
||||||
|
ORDER=0,1,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,150,
|
||||||
|
[View_AttrDefs]
|
||||||
|
HIDDEN=6,
|
||||||
|
ORDER=0,1,2,3,4,5,
|
||||||
|
DEFINITIONS=
|
||||||
|
COLUMNWIDTHS=125,100,100,50,50,100,150,
|
Loading…
Reference in a new issue