private void DisplayMoldName(TcpResponse tcpResponse) { if (tcpResponse.Exception == null) { MachineResponseData responseData = tcpResponse.MachineResponses[0]; if (responseData.Message.Length > 0) { //사출기 문제발생 } else { Dictionary <string, string> machineData = responseData.MachineData; string[] fieldCodes = machineData.Keys.ToArray(); string moldName = string.Empty; for (int i = 0; i < machineData.Count; i++) { string fieldCode = fieldCodes[i]; string valueString = machineData.GetValueOrDefault(fieldCode); decimal valueDecimal; if (decimal.TryParse(valueString, out valueDecimal)) { char charA = (char)(valueDecimal / 256); char charB = (char)(valueDecimal % 256); moldName += charA; moldName += charB; } } //금형명 표기 setControlText(menu_mold, moldName); } } else { LogWriter.WriteLog_Error(tcpResponse.Exception); } }
private void DisplayMachineState(TcpResponse tcpResponse) { string mode = string.Empty; if (tcpResponse.Exception == null) { MachineResponseData responseData = tcpResponse.MachineResponses[0]; if (responseData.Message.Length > 0) { //사출기 문제발생 } else if (responseData.IsConnected == false) { if (commonVar.whichLang == "English") { mode = "No Response"; } else { mode = "연결안됨"; } setControlText(menu_mode, mode, (Image)(Properties.Resources.lostConnection)); } else { Dictionary <string, string> machineState = responseData.MachineData; if (machineState["A00007"].Equals("1")) { //경보 on if (commonVar.whichLang == "English") { mode = "Alarm"; } else { mode = "경보"; } setControlText(menu_alert, mode, (Image)(Properties.Resources.AlarmOn)); } else { //경보 off if (commonVar.whichLang == "English") { mode = "Alarm"; } else { mode = "경보"; } setControlText(menu_alert, mode, (Image)(Properties.Resources.AlarmOff)); } if (machineState["A00001"].Equals("1")) { //저속개폐 if (commonVar.whichLang == "English") { mode = "Mold setup"; } else { mode = "저속개폐"; } setControlText(menu_mode, mode, (Image)(Properties.Resources.MoldsetupModeOn)); } else if (machineState["A00002"].Equals("1")) { //수동운전 if (commonVar.whichLang == "English") { mode = "Manual"; } else { mode = "수동"; } setControlText(menu_mode, mode, (Image)(Properties.Resources.ManualModeOn)); } else if (machineState["A00003"].Equals("1")) { //semi auto if (commonVar.whichLang == "English") { mode = "Semi Auto"; } else { mode = "반자동"; } setControlText(menu_mode, mode, (Image)(Properties.Resources.SemiautoModeOn)); } else if (machineState["A00004"].Equals("1")) { //full auto if (commonVar.whichLang == "English") { mode = "Full Auto"; } else { mode = "자동"; } setControlText(menu_mode, mode, (Image)(Properties.Resources.FullautoModeOn)); } if (machineState["A00005"].Equals("1")) { //1사이클 완료 //flash 혹은 다른 방법 } if (machineState["A00008"].Equals("1")) { //히터 on if (commonVar.whichLang == "English") { mode = "Heater"; } else { mode = "히터"; } setControlText(menu_heater, mode, (Image)(Properties.Resources.HeaterOn)); } else { //히터 off if (commonVar.whichLang == "English") { mode = "Heater"; } else { mode = "히터"; } setControlText(menu_heater, mode, (Image)(Properties.Resources.HeaterOff)); } if (machineState["A00009"].Equals("1")) { //모터 on if (commonVar.whichLang == "English") { mode = "Motor"; } else { mode = "모터"; } setControlText(menu_motor, mode, (Image)(Properties.Resources.MotorOn)); } else { //모터 off if (commonVar.whichLang == "English") { mode = "Motor"; } else { mode = "모터"; } setControlText(menu_motor, mode, (Image)(Properties.Resources.MotorOff)); } } } else { if (commonVar.whichLang == "English") { mode = "No Response"; } else { mode = "연결안됨"; } setControlText(menu_mode, mode, (Image)(Properties.Resources.lostConnection)); LogWriter.WriteLog_Error(tcpResponse.Exception); } }
/// <summary> /// 통신 오류 발생시 서버 off인걸로 판단. 메시지 팝업 이후 타이머 동작 X /// </summary> /// <param name="tcpResponse"></param> private void DisplayMachineState(TcpResponse tcpResponse) { DataTable sourceTable = createGridSource(); if (tcpResponse.Exception != null) { LogWriter.WriteLog_Error(tcpResponse.Exception); } else { string message = string.Empty; MachineResponseData[] machineResponse = tcpResponse.MachineResponses; //정상 for (int i = 0; i < machineResponse.Length; i++) { DataRow dataRow = sourceTable.NewRow(); MachineResponseData responseData = machineResponse[i]; if (responseData.Message.Length > 0) { //사출기 문제발생 message = responseData.Message; } else if (responseData.IsConnected == false) { message = "통신 연결 안됨"; } else { Dictionary <string, string> machineState = responseData.MachineData; if (machineState != null) { MachineStateImageIndex state = MachineStateImageIndex.Null; if (machineState.GetValueOrDefault("A00007") == "1") { state = MachineStateImageIndex.Alert; } else if (machineState.GetValueOrDefault("A00001") == "1") { state = MachineStateImageIndex.Slow; } else if (machineState.GetValueOrDefault("A00002") == "1") { state = MachineStateImageIndex.Manual; } else if (machineState.GetValueOrDefault("A00003") == "1") { state = MachineStateImageIndex.SemiAuto; } else if (machineState.GetValueOrDefault("A00004") == "1") { state = MachineStateImageIndex.FullAuto; } else { state = MachineStateImageIndex.Null; } //state 1 저속개폐 2 수동 3 세미오토 4 풀오토 dataRow["STATE"] = (int)state; dataRow["targetQty"] = machineState.GetValueOrDefault("S00002"); dataRow["productQty"] = machineState.GetValueOrDefault("A00011"); message = "통신 정상 작동 중"; } } dataRow["MESSAGE"] = message; string machineCode = responseData.MachineCode; MachineInformation machineInfo = machineInformations.First(x => x.MachineCode == machineCode); dataRow["MACHINE_CODE"] = machineCode; dataRow["MACHINE_NAME"] = machineInfo.MachineName; dataRow["MACHINE_NUMBER"] = machineInfo.MachineNumber; dataRow["MACHINE_TYPE"] = machineInfo.MachineType; if (moldNames.ContainsKey(machineCode)) { dataRow["moldName"] = moldNames[machineCode]; } sourceTable.Rows.Add(dataRow); } } setGridControlSource(sourceTable); }