MakeConfig.can
Added OnModbusClientPanics() better output Common.cin Changed output sink to CAPL
This commit is contained in:
parent
3d9c1cca10
commit
7fc38537b3
5 changed files with 46 additions and 35 deletions
|
@ -1,4 +1,4 @@
|
|||
;CANoe Version |4|7|1|52133 MakeConfig
|
||||
;CANoe Version |4|7|1|35748 MakeConfig
|
||||
Version: 8.2.40 Build 40
|
||||
32 PRO
|
||||
5
|
||||
|
@ -2933,7 +2933,7 @@ End_Of_Object VGrMnBox 3
|
|||
VDOLocalInfoStruct 3 Begin_Of_Object
|
||||
3
|
||||
1
|
||||
74
|
||||
77
|
||||
VDAOBus 4 Begin_Of_Object
|
||||
1
|
||||
1
|
||||
|
@ -3063,7 +3063,7 @@ VSimulinkModelViewerConfiguration 7 Begin_Of_Object
|
|||
End_Of_Object VSimulinkModelViewerConfiguration 7
|
||||
1
|
||||
0
|
||||
3737284963
|
||||
566845561
|
||||
0
|
||||
NodeSignalPanelBustypeCount 0
|
||||
End_Of_Object VSimulationNode 6
|
||||
|
@ -3101,7 +3101,7 @@ NULL
|
|||
End_Of_Object VDOLocalInfoStruct 3
|
||||
0.000000
|
||||
0 0
|
||||
1 1 0 59420 1 233 1 2882400001 98 331 309 611 2882400002 0 0 0 0 0 0 1 2882400001 1270 1270 311 311 2882400002 0 0 0 526434840 0 526135044 3
|
||||
1 1 0 59420 1 233 1 2882400001 98 331 309 611 2882400002 0 0 0 0 0 0 1 2882400001 1270 1270 311 311 2882400002 0 0 0 528538608 0 526135044 3
|
||||
SS_BEGIN_COMMON_INFO
|
||||
1
|
||||
0
|
||||
|
@ -3113,7 +3113,7 @@ Ethernet
|
|||
11
|
||||
1
|
||||
1
|
||||
345908232 1 0 1 0 0 1 0 0 0 2000 1
|
||||
345965688 1 0 1 0 0 1 0 0 0 2000 1
|
||||
SS_BEGIN_COMMON_INFO
|
||||
1
|
||||
3
|
||||
|
@ -3224,7 +3224,7 @@ End_Of_Serialized_Data 2
|
|||
End_Of_Object VWriteBox 2
|
||||
VWinStore 2 Begin_Of_Object
|
||||
1
|
||||
22 2 3 -1 -1 -1 -1 -10088 -10000 -9070 -9233
|
||||
22 2 3 -32088 -32000 -1 -1 0 0 930 767
|
||||
End_Of_Child_List
|
||||
End_Of_Object VWinStore 2
|
||||
VWinStore 2 Begin_Of_Object
|
||||
|
|
|
@ -48,7 +48,7 @@ on preStart
|
|||
|
||||
// Scan a range of IPs for devices. Start and Stop go here
|
||||
// Please note: Currelty .255 will be skipped!
|
||||
strncpy(gScanFirstIp, "192.168.1.1", 16);
|
||||
strncpy(gScanFirstIp, "192.168.1.2", 16);
|
||||
strncpy(gScanLastIp, "192.168.1.10", 16);
|
||||
|
||||
// Name of the project
|
||||
|
@ -56,6 +56,8 @@ on preStart
|
|||
// Paths to the generated files relative to .cfg
|
||||
strncpy(fnSysvar, "include/SysVars/generated.vsysvar", elCount(fnSysvar));
|
||||
strncpy(fnDbc, "include/DBC/generated.dbc", elCount(fnDbc));
|
||||
|
||||
OutputDebugLevel = Error;
|
||||
}
|
||||
|
||||
on start
|
||||
|
@ -96,6 +98,7 @@ void DetectDevices()
|
|||
write("Scanning from %s to %s with timeout of %d ms", gScanFirstIp, gScanLastIp, @sysvar::Config::Modbus::RequestTimeout);
|
||||
gScanFirst = ipGetAddressAsNumber(gScanFirstIp);
|
||||
gScanLast = ipGetAddressAsNumber(gScanLastIp);
|
||||
write("%d.%d.%d.%d ", gScanFirst & 0xFF, (gScanFirst >> 8) & 0xFF, (gScanFirst >> 16) & 0xFF, gScanFirst >> 24);
|
||||
ModbusConnectTo(gScanFirst, @sysvar::Config::Modbus::Port);
|
||||
ModbusReadBits(0, 1);
|
||||
}
|
||||
|
@ -133,7 +136,7 @@ void DetectDevicesNext()
|
|||
MakeIpNets();
|
||||
return;
|
||||
}
|
||||
writeEx(0, 1, ".");
|
||||
writeEx(1, 1, ".");
|
||||
gRemoteIP = gScanFirst; // Don't open new socket, it takes too much time.
|
||||
ModbusReadBits(0, 1);
|
||||
}
|
||||
|
@ -143,7 +146,7 @@ void OnModbusReadBitsFailed(enum ModbusRequestError error, enum ModbusException
|
|||
DetectDevicesNext();
|
||||
}
|
||||
/// <Step1>
|
||||
void OnModbusReadBitsSuccess(struct ModbusResReceiveBits mbr, byte bitStatus[], word numBits)
|
||||
void OnModbusReadBitsSuccess(struct ModbusResReceiveBits mbres, byte bitStatus[], struct ModbusReqRead mbreq)
|
||||
{
|
||||
ipGetAddressAsString(gScanFirst, gIps[gScanFirst], 16);
|
||||
DetectDevicesNext();
|
||||
|
@ -245,33 +248,27 @@ void OnModbusReadRegistersFailed(enum ModbusRequestError error, enum ModbusExcep
|
|||
}
|
||||
|
||||
/// <Step3>
|
||||
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word numRegs)
|
||||
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbres, struct ModbusReqRead mbreq)
|
||||
{
|
||||
byte i;
|
||||
struct ModbusReqRead mbrq;
|
||||
|
||||
if (!gQueueAck.ContainsKey(mbr.Header.TxID))
|
||||
return;
|
||||
|
||||
memcpy_n2h(mbrq, gQueueAck[mbr.Header.TxID].Buffer);
|
||||
|
||||
switch (mbrq.Address)
|
||||
switch (mbreq.Address)
|
||||
{
|
||||
case 0x2011:
|
||||
gIpsSorted[ips[ADi]].serialCode = mbr.Data[0];
|
||||
gIpsSorted[ips[ADi]].serialCode = mbres.Data[0];
|
||||
break;
|
||||
case 0x2012:
|
||||
gIpsSorted[ips[ADi]].deviceCode = mbr.Data[0];
|
||||
gIpsSorted[ips[ADi]].deviceCode = mbres.Data[0];
|
||||
break;
|
||||
case 0x2030:
|
||||
case 0x2031:
|
||||
case 0x2032:
|
||||
case 0x2033:
|
||||
for (i = 0; i < 65; i++)
|
||||
for (i = 0; i < mbreq.Count; i++)
|
||||
{
|
||||
if (mbr.Data[i] == 0x0000)
|
||||
if (mbres.Data[i] == 0x0000)
|
||||
break;
|
||||
ParseDeviceCode(mbr.Data[i], gIpsSorted[ips[ADi]].Vendor, gIpsSorted[ips[ADi]].DeviceIOs);
|
||||
ParseDeviceCode(mbres.Data[i], gIpsSorted[ips[ADi]].Vendor, gIpsSorted[ips[ADi]].DeviceIOs);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -493,6 +490,21 @@ void GenDbc()
|
|||
|
||||
|
||||
|
||||
|
||||
/// <zzzModbus>
|
||||
void OnModbusClientPanics(enum FatalErrors reason)
|
||||
{
|
||||
writeLineEx(0, 4, "<%NODE_NAME%> FATAL! %d", reason);
|
||||
switch(reason)
|
||||
{
|
||||
case ParsingBuffer:
|
||||
case ModbusPackageWasSplit:
|
||||
case DeviceCodeUnknown:
|
||||
case VendorIdUnknown:
|
||||
case ConnectionError:
|
||||
break;
|
||||
}
|
||||
}
|
||||
/// <zzzModbus>
|
||||
void OnModbusWriteBitFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap){}
|
||||
/// <zzzModbus>
|
||||
|
|
|
@ -46,7 +46,7 @@ void writeDbg(enum DebugLvl lvl, char format[])
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg);
|
||||
writeLineEx(1, lVl, msg);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], char string[])
|
||||
|
@ -59,7 +59,7 @@ void writeDbg(enum DebugLvl lvl, char format[], char string[])
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, string);
|
||||
writeLineEx(1, lVl, msg, string);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], char string1[], char string2[])
|
||||
|
@ -72,7 +72,7 @@ void writeDbg(enum DebugLvl lvl, char format[], char string1[], char string2[])
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, string1, string2);
|
||||
writeLineEx(1, lVl, msg, string1, string2);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num, char string[])
|
||||
|
@ -85,7 +85,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num, char string[])
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num, string);
|
||||
writeLineEx(1, lVl, msg, num, string);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], char string[], long num)
|
||||
|
@ -98,7 +98,7 @@ void writeDbg(enum DebugLvl lvl, char format[], char string[], long num)
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, string, num);
|
||||
writeLineEx(1, lVl, msg, string, num);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num1)
|
||||
|
@ -111,7 +111,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num1)
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num1);
|
||||
writeLineEx(1, lVl, msg, num1);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, char string[])
|
||||
|
@ -124,7 +124,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, char strin
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num1, num2, string);
|
||||
writeLineEx(1, lVl, msg, num1, num2, string);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2)
|
||||
|
@ -137,7 +137,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2)
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num1, num2);
|
||||
writeLineEx(1, lVl, msg, num1, num2);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3)
|
||||
|
@ -150,7 +150,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3)
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num1, num2, num3);
|
||||
writeLineEx(1, lVl, msg, num1, num2, num3);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3, long num4)
|
||||
|
@ -163,7 +163,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3,
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num1, num2, num3, num4);
|
||||
writeLineEx(1, lVl, msg, num1, num2, num3, num4);
|
||||
}
|
||||
/// <writeDbg>
|
||||
void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3, long num4, long num5, long num6)
|
||||
|
@ -176,7 +176,7 @@ void writeDbg(enum DebugLvl lvl, char format[], long num1, long num2, long num3,
|
|||
lVl = (byte)lvl >> 4;
|
||||
|
||||
writeDbgFormat(lVl, msg, format);
|
||||
writeLineEx(0, lVl, msg, num1, num2, num3, num4, num5, num6);
|
||||
writeLineEx(1, lVl, msg, num1, num2, num3, num4, num5, num6);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
includes
|
||||
{
|
||||
#include "ModbusCommonStructs.cin"
|
||||
#include "Common.cin"
|
||||
}
|
||||
|
||||
variables
|
||||
|
|
|
@ -111,7 +111,7 @@ void UdpRecv()
|
|||
if (gIpLastErr != WSA_IO_PENDING) // Calling OnUdpReceive otherwise
|
||||
{
|
||||
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elCount(gIpLastErrStr));
|
||||
writeDbg(ConnError, "UdpReceiveFrom Error (%d): %s", gIpLastErr, gIpLastErrStr);
|
||||
writeDbg(ConnError, "UdpReceiveFrom: (%d) %s", gIpLastErr, gIpLastErrStr);
|
||||
UdpDisconnect();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue