MakeConfig.can

Added OnModbusClientPanics()
  better output

Common.cin
  Changed output sink to CAPL
This commit is contained in:
Jonny007-MKD 2014-05-27 11:29:24 +00:00
parent 3d9c1cca10
commit 7fc38537b3
5 changed files with 46 additions and 35 deletions

View file

@ -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

View file

@ -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>

View file

@ -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);
}

View file

@ -3,7 +3,6 @@
includes
{
#include "ModbusCommonStructs.cin"
#include "Common.cin"
}
variables

View file

@ -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();
}
}