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