private static void AddMessagesToList(FocasLibBase.ODBOMHIS obj, List <OprMessageDTO> oprMessagesObj) { oprMessagesObj.Add(ConvertToMessage(obj.omhis1)); oprMessagesObj.Add(ConvertToMessage(obj.omhis2)); oprMessagesObj.Add(ConvertToMessage(obj.omhis3)); oprMessagesObj.Add(ConvertToMessage(obj.omhis4)); oprMessagesObj.Add(ConvertToMessage(obj.omhis5)); oprMessagesObj.Add(ConvertToMessage(obj.omhis6)); oprMessagesObj.Add(ConvertToMessage(obj.omhis7)); oprMessagesObj.Add(ConvertToMessage(obj.omhis8)); oprMessagesObj.Add(ConvertToMessage(obj.omhis9)); oprMessagesObj.Add(ConvertToMessage(obj.omhis10)); }
/*(9) CNC parameter error CNC parameter '3112#2' must be 1. */ public static List <OprMessageDTO> ReadExternalOperatorMessageHistory18i(string machineID, string ipAddress, ushort portNo) { int ret = 0; ushort focasLibHandle = 0; List <OprMessageDTO> oprMessagesObj = new List <OprMessageDTO>(); try { ret = FocasLib.cnc_allclibhndl3(ipAddress, portNo, 10, out focasLibHandle); if (ret != 0) { Logger.WriteErrorLog("cnc_allclibhndl3() failed. return value is = " + ret); return(null); } ret = FocasLib.cnc_stopomhis(focasLibHandle); if (ret != 0) { Logger.WriteErrorLog("cnc_stopomhis() failed. return value is = " + ret); return(null); } FocasLibBase.ODBOMIF a = new FocasLibBase.ODBOMIF(); ret = FocasLib.cnc_rdomhisinfo(focasLibHandle, a); if (ret != 0) { Logger.WriteErrorLog("cnc_rdomhisinfo() failed. return value is = " + ret); return(null); } if (a.om_max == 0) { return(oprMessagesObj); } //TODO - check it? int totalMessages = a.om_max; //10 rows at a time ushort loop_count = (ushort)(totalMessages / 10); ushort remainder = (ushort)(totalMessages % 10); ushort i = 0, s_no = 0, e_no = 0; //ushort length = 4 + 512 * 10; for (i = 0; i <= loop_count; i++) { if (i == loop_count) { if (remainder > 0) { s_no = (ushort)(i * 10 + 1); e_no = (ushort)(s_no + (remainder - 1)); FocasLibBase.ODBOMHIS obj = new FocasLibBase.ODBOMHIS(); ushort length = (ushort)Marshal.SizeOf(obj); ret = FocasLib.cnc_rdomhistry(focasLibHandle, s_no, ref e_no, obj); if (ret != 0) { Logger.WriteErrorLog("cnc_rdomhistry() failed. return value is = " + ret); continue; } AddMessagesToList(obj, oprMessagesObj); try { oprMessagesObj.RemoveRange(totalMessages, oprMessagesObj.Count - totalMessages); } catch (Exception exxx) { Logger.WriteErrorLog(exxx.ToString()); } } } else { s_no = (ushort)(i * 10 + 1); e_no = (ushort)(s_no + 9); FocasLibBase.ODBOMHIS obj = new FocasLibBase.ODBOMHIS(); ushort length = (ushort)Marshal.SizeOf(obj); ret = FocasLib.cnc_rdomhistry(focasLibHandle, s_no, ref e_no, obj); if (ret != 0) { Logger.WriteErrorLog("cnc_rdomhistry() failed. return value is = " + ret); continue; } //TODO - add the message based on s_no and e_no AddMessagesToList(obj, oprMessagesObj); } } } catch (Exception ex) { Logger.WriteErrorLog(ex.ToString()); } finally { if (focasLibHandle > 0) { ret = FocasLib.cnc_startophis(focasLibHandle); FocasData.cnc_freelibhndl(focasLibHandle); } } return(oprMessagesObj); }