private static void AddMessagesToList(FocasLibBase.ODBOMHIS2 obj, List <OprMessageDTO> oprMessagesObj) { oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data1)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data2)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data3)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data4)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data5)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data6)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data7)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data8)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data9)); oprMessagesObj.Add(ConvertToMessage(obj.opm_his.data10)); }
//CNC parameter '3112#2' must be 1. public static List <OprMessageDTO> ReadExternalOperatorMessageHistory0i(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_stopophis(focasLibHandle); if (ret != 0) { Logger.WriteErrorLog("cnc_stopophis() failed. return value is = " + ret); return(null); } ushort totalMessages = 0; ret = FocasLib.cnc_rdomhisno(focasLibHandle, out totalMessages); if (ret != 0) { Logger.WriteErrorLog("cnc_rdomhisno() failed. return value is = " + ret); return(null); } if (totalMessages == 0) { return(oprMessagesObj); } //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.ODBOMHIS2 obj = new FocasLibBase.ODBOMHIS2(); ushort length = (ushort)Marshal.SizeOf(obj); ret = FocasLib.cnc_rdomhistry2(focasLibHandle, s_no, e_no, length, obj); if (ret != 0) { Logger.WriteErrorLog("cnc_rdomhistry2() 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.ODBOMHIS2 obj = new FocasLibBase.ODBOMHIS2(); ushort length = (ushort)Marshal.SizeOf(obj); ret = FocasLib.cnc_rdomhistry2(focasLibHandle, s_no, e_no, length, obj); if (ret != 0) { Logger.WriteErrorLog("cnc_rdomhistry2() failed. return value is = " + ret); continue; } AddMessagesToList(obj, oprMessagesObj); } } } catch (Exception ex) { Logger.WriteErrorLog(ex.ToString()); } finally { if (focasLibHandle > 0) { ret = FocasLib.cnc_startophis(focasLibHandle); FocasData.cnc_freelibhndl(focasLibHandle); } } foreach (OprMessageDTO item in oprMessagesObj) { item.MachineID = machineID; } return(oprMessagesObj); }