public static bool GetPLCResponse(PLCResponseType expectedResponse, int maxNoOfBufferedMessages, out string errorMessage, int timeout) { PLCResponse item; bool flag; errorMessage = ""; if (!PLCUtility.WaitForPLCResponse(timeout)) { errorMessage = string.Concat("PLC has not responded within a timeout period of ", timeout, " seconds"); flag = false; } else if (PLCUtility.PLCResponseBuffer.Count <= maxNoOfBufferedMessages) { lock (PLCUtility.PLCResponseBuffer) { item = PLCUtility.PLCResponseBuffer[0]; PLCUtility.PLCResponseBuffer.RemoveAt(0); } if (item.PLCResponseType == expectedResponse) { flag = true; } else { errorMessage = string.Concat("Response from PLC was not as expected. Actual response = \"", item.Message, "\" expected type of response = ", expectedResponse.ToString("g")); flag = false; } } else { object[] count = new object[] { "PLC has sent an unexpected no. of messages. Messages in buffer = ", PLCUtility.PLCResponseBuffer.Count, " expected no. of messages = ", maxNoOfBufferedMessages }; errorMessage = string.Concat(count); flag = false; } return(flag); }
public static bool GetPLCResponse(PLCResponseType expectedResponse, int maxNoOfBufferedMessages, out string errorMessage) { return PLCUtility.GetPLCResponse(expectedResponse, maxNoOfBufferedMessages, out errorMessage, 30); }
public static bool GetPLCResponse(PLCResponseType expectedResponse, int maxNoOfBufferedMessages, out string errorMessage, int timeout) { PLCResponse item; bool flag; errorMessage = ""; if (!PLCUtility.WaitForPLCResponse(timeout)) { errorMessage = string.Concat("PLC has not responded within a timeout period of ", timeout, " seconds"); flag = false; } else if (PLCUtility.PLCResponseBuffer.Count <= maxNoOfBufferedMessages) { lock (PLCUtility.PLCResponseBuffer) { item = PLCUtility.PLCResponseBuffer[0]; PLCUtility.PLCResponseBuffer.RemoveAt(0); } if (item.PLCResponseType == expectedResponse) { flag = true; } else { errorMessage = string.Concat("Response from PLC was not as expected. Actual response = \"", item.Message, "\" expected type of response = ", expectedResponse.ToString("g")); flag = false; } } else { object[] count = new object[] { "PLC has sent an unexpected no. of messages. Messages in buffer = ", PLCUtility.PLCResponseBuffer.Count, " expected no. of messages = ", maxNoOfBufferedMessages }; errorMessage = string.Concat(count); flag = false; } return flag; }
public PLCResponse(string response) { this.response = response; this.plcResponseType = PLCResponse.MapResponse(response); this.timestamp = DateTime.Now; }
public static bool GetPLCResponse(PLCResponseType expectedResponse, int maxNoOfBufferedMessages, out string errorMessage) { return(PLCUtility.GetPLCResponse(expectedResponse, maxNoOfBufferedMessages, out errorMessage, 30)); }