using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.IO; using System.Threading; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.InteropServices; using System.Reflection; using System.Diagnostics; namespace FPER { public class Tprotocol {// Åë½Åº¸µå ÇÁ·ÎÅäÄÝ ¸ÞÀΠŬ·¡½º private MDIParent main; private TSocket tsocket; private Paket pkt; private CmdInfo cmd; private int iDemonPacketReceiveCnt; LogFileCreate LFC = new LogFileCreate(); public Tprotocol(MDIParent main) { try { this.main = main; this.pkt = new Paket(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } public int ConnectToDemon(String Dest_ip, int commandPort, int eventPort, int Demon_ID) {// µ¥¸ó ¿¬°á ÇÔ¼ö int iret = 0; try { iDemonPacketReceiveCnt = 0; tsocket = new TSocket(Dest_ip, commandPort, eventPort, Demon_ID, this); iret = tsocket.ConnectSocket(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } return iret; } public int DisconnectToDemon(int Own_ID, int Demon_ID) {// µ¥¸ó ¿¬°á ÇØÁ¦ ÇÔ¼ö try { tsocket.Stop_Connection(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } return 0; } /**********************************************************************************************/ /* UI¸í·É */ /**********************************************************************************************/ public int getCommand(CmdInfo cmd) { int ret = 0; try { //Debug.WriteLine(string.Format("+getCommand : 0x{0:x2}", (byte)cmd.Command)); ////Util.UDebugMessage(((string.Format("getCommand Command = 0x{0:x2} ", (byte)cmd.Command)) + " :" + ret.ToString()),0,0); if (tsocket.cmd_Connected) { this.cmd = cmd; switch (cmd.Command) { case prt_cmd_define.say_hello: { byte[] bt = pkt.CreatePKT_SayHello_To_Board((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); //ret = SayHello_To_Board((byte)cmd.loopNo,(byte)cmd.boardNo,(byte)cmd.invorkNo,(byte)cmd.receiverID); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.resd_tbd_state: { byte[] bt = pkt.CreatePKT_ReadBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = ReadBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } //Åë½Åº¸µå»óž²±â case prt_cmd_define.write_tbd_state: { TBoardData data = (TBoardData)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID , data.RCV_BaudRate, data.TBD_Loop1_BaudRate, data.TBD_Loop2_BaudRate, data.TBD_Term, data.Reset); //ret = WriteBoardStatus((byte)cmd.loopNo,(byte)cmd.boardNo,(byte)cmd.invorkNo,(byte)cmd.receiverID,(TBoardData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.search_repeater_unit: { byte[] bt = pkt.CreatePKT_SearchRepeaterUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo); //ret = SearchRepeaterUNIT((byte)cmd.loopNo,(byte)cmd.boardNo,(byte)cmd.invorkNo,(byte)cmd.receiverID,(byte)cmd.repeaterNo); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.search_repeater_all: { byte[] bt = pkt.CreatePKT_SearchRepeaterAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = SearchRepeaterAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.read_repeater_all: { byte[] bt = pkt.CreatePKT_ReadRepeaterPointAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = ReadRepeaterPointAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_repeater_output_unit: { RepeaterData data = (RepeaterData)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteRepeaterOutputUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo , data.Repeater_Output); //ret = WriteRepeaterOutputUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo, (RepeaterData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.read_repeater_info_all: { byte[] bt = pkt.CreatePKT_ReadRepeaterInfoAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = ReadRepeaterInfoAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_repeater_info_unit: { RepeaterData data = (RepeaterData)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteRepeaterInfoUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo, data.Repeater_Info); //ret = WriteRepeaterInfoUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo, (RepeaterData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_repeater_info_all: { //2010.12.05, k.s.d, repeater information block write. RepeaterDataAll data = (RepeaterDataAll)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteRepeaterInfoAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo, data); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); #endif break; } case prt_cmd_define.reset_repeater_unit: { byte[] bt = pkt.CreatePKT_ResetRepeaterUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo); //ret = ResetRepeaterUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.reset_repeater_all: { // cyim 2013.3.13 // ÀԷ¾²±â Å×½ºÆ® ÀÌÈÄ º¹±¸ ¹öưÀ» ´­·¯¼­ Áß°è±â º°·Î º¹±¸Çϵµ·Ï ¸í·ÉÇÑ´Ù //byte[] bt = pkt.CreatePKT_ResetRepeaterAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); byte[] bt = pkt.CreatePKT_ResetRepeaterAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo); //ret = ResetRepeaterAll((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_repeater_input_unit: { //RepeaterData data = (RepeaterData)cmd.CommandData; byte data = (byte)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteRepeaterInputUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo, data); //ret = WriteRepeaterInputUNIT((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.repeaterNo, (RepeaterData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.sayhello_to_ioboard: { byte[] bt = pkt.CreatePKT_SayHello_To_IOBoard((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = SayHello_To_IOBoard((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.read_ioboard_status: { byte[] bt = pkt.CreatePKT_ReadIOBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = ReadIOBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_ioboard_status: { IOBoardData data = (IOBoardData)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteIOBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, data.BaudRate, data.Reset); //ret = WriteIOBoardStatus((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (IOBoardData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.read_ioboard_data: { byte[] bt = pkt.CreatePKT_ReadIOBoardData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = ReadIOBoardData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_ioboard_data: { IOBoardData data = (IOBoardData)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteIOBoardData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, data.OutData_d, data.OutData_u); //ret = WriteIOBoardData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (IOBoardData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.read_ioboard_point_data: { byte[] bt = pkt.CreatePKT_ReadIOBoardPointData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.DeviceId); //ret = ReadIOBoardData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.write_ioboard_point_data: { IOBoardData data = (IOBoardData)cmd.CommandData; byte[] bt = pkt.CreatePKT_WriteIOBoardPointData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.DeviceId, data.Reset); //ret = WriteIOBoardData((byte)cmd.loopNo, (byte)cmd.boardNo, (byte)cmd.invorkNo, (byte)cmd.receiverID, (IOBoardData)cmd.CommandData); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.sayhello_to_demon: { byte[] bt = pkt.CreatePKT_SayHello_To_Demon((byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = SayHollo_To_Demon((byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.start_polling: { byte[] bt = pkt.CreatePKT_StartPolling((byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = SayHollo_To_Demon((byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.stop_polling: { byte[] bt = pkt.CreatePKT_StopPolling((byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = StopPolling((byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.read_demon_status: { byte[] bt = pkt.CreatePKT_ReadDemonStatus((byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = ReadDemonStatus((byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } case prt_cmd_define.notify_db_update: { byte[] bt = pkt.CreatePKT_Notify_DBUpdated((byte)cmd.invorkNo, (byte)cmd.receiverID); //ret = NotifyDBUpdated((byte)cmd.invorkNo, (byte)cmd.receiverID); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } //UI¸í·É case prt_cmd_define.read_command_status: { char inoutChar = (char)Util.ToBytes(cmd.Devicetype)[0]; char commandType1 = (char)Util.ToBytes(cmd.CommandType)[0]; char commandType2 = (char)Util.ToBytes(cmd.CommandType)[1]; char cSubType = (char)Util.ToBytes(cmd.SubType)[0]; char cApplyRange = (char)Util.ToBytes(cmd.ApplyRange)[0]; byte[] bt = pkt.CreatePKT_ReadCommandStatus((byte)cmd.invorkNo, (byte)cmd.receiverID, cmd.loopNo, cmd.boardNo , cmd.repeaterNo, cmd.DeviceId, inoutChar, commandType1, commandType2, cSubType, cApplyRange, cmd.Status, cmd.CommId); //ret = ReadCommandStatus((byte)cmd.invorkNo, (byte)cmd.receiverID, cmd.loopNo, cmd.boardNo // ,cmd.repeaterNo,cmd.DeviceId,cmd.Devicetype,cmd.CommandType,cmd.Status,cmd.CommId); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); #if _DEBUG Util.LogWrite(string.Format("UI¸í·É[{0}]{1}", cmd.Command, Util.ToHex(bt))); //¸í·É ·Î±×¿¡ ÀúÀå #endif break; } // cyim 2015.6.29 ¾Æ³¯·Î±×°¨Áö±â ·¹º§°ª ¾²±â ¸í·É ÇÁ·ÎÅäÄÝ Ãß°¡ // ¼³ºñ¿¬µ¿°ú µ¿ÀÏÇÑ ·çƾÀÌ´Ù. Áï UI ¿¡¼­ ·¹º§°ªÀ» ÀúÀåÇ϶ó°í µ¥¸ó¿¡°Ô ¸í·ÉÇϸé, µ¥¸óÀº µ¥ÀÌŸº£À̽º¿¡ ÀúÀåÇϰí, ÀÀ´äÀ» ÁÖµµ·Ï µÇ¾îÀÖ´Ù // ¾Æ³¯·Î±× °¨Áö±â ·¹º§°ª ¾²±â ¸í·É case prt_cmd_define.write_analogdetecter_level: { byte[] bt = pkt.CreatePKT_AnalogDetecterLevel_Write((byte)cmd.invorkNo, (byte)cmd.receiverID, cmd.loopNo, cmd.boardNo , cmd.repeaterNo, cmd.AnalogDetecterFault, cmd.AnalogDetecterPreFire, cmd.AnalogDetecterFireNight, cmd.AnalogDetecterFireDay); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); } break; // cyim 2016.10.27 : ´ë¿ë·® ¼ö½Å±â ¾Æ³¯·Î±× °¨Áö±â Æ®·£µå Àбâ case prt_cmd_define.read_analogdetecter_trend: { byte[] bt = pkt.CreatePKT_AnalogDetecterTrend_Read((byte)cmd.invorkNo, (byte)cmd.receiverID, cmd.loopNo, cmd.boardNo, cmd.repeaterNo); ret = tsocket.Cmd_Send(bt, (int)bt[3] + 1); } break; // cyim 2016.10.28 : ´ë¿ë·® ¼ö½Å±â ¾Æ³¯·Î±× °¨Áö±â ·¹º§ Block ¾²±â case prt_cmd_define.write_analogdetecter_level_all: { RepeaterDataAll data = (RepeaterDataAll)cmd.CommandData; data.InvorkNo = (byte)cmd.invorkNo; data.ReceiverID = (byte)cmd.receiverID; data.Repeater_loop = (byte)cmd.loopNo; data.TBD_ID = (byte)cmd.boardNo; // LCH 2018.02.27 : ¼öÁ¤µÊ byte[] bt = pkt.CreatePKT_AnalogDetecterLevel_WriteAll((byte)cmd.invorkNo, (byte)cmd.receiverID, (byte)cmd.loopNo, (byte)cmd.boardNo, data); ret = tsocket.Cmd_Send(bt, bt.Length);//(int)bt[3] + 1); } break; default: { ret = -3; } break; } } else { ret = -1; } } catch (Exception ex) { ret = -1; Util.UErrorMessage(ex, 0, 0); } return ret; } /**********************************************************************************************/ //cmd ¼ÒÄÏ¿¬°áÁ¤º¸ public Boolean cmd_Connected { get { return tsocket.cmd_Connected; } } //event ¼ÒÄÏ¿¬°áÁ¤º¸ public Boolean event_Connected { get { return tsocket.event_Connected; } } public int SendDataToDemon(byte[] data, int size) {// don't using now. //2010.3.16_moon return 0; } public int SendDataToDemon(String strdata, int size) {// don't using now. //2010.3.16_moon return 0; } /**********************************************************************************************/ /* UI¸í·É ÀÀ´ä */ /**********************************************************************************************/ public int CMDResponceFunc(byte[] cmdbuffer, int rcvSize) { //Debug.WriteLine("+ CMDResponceFunc "); int ret = 0; try { ret = pkt.DoCheckcs(cmdbuffer, rcvSize, cmdbuffer[rcvSize]); this.cmd.ResCommand = (prt_res_define)cmdbuffer[4]; Util.LogWrite(string.Format("¸í·ÉÀÀ´ä[{0}]{1}", this.cmd.ResCommand, Util.ToHex(cmdbuffer))); //¸í·É ·Î±×¿¡ ÀúÀå //check cs if (ret == 1) { //data setting // send to ui switch (cmdbuffer[4]) { //ÀÀ´ä-Á¤»ó case (byte)prt_res_define.general_ack: { RCVData_ACK ResponseData = new RCVData_ACK(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-½ÇÆÐ case (byte)prt_res_define.general_nack: { RCVData_NACK ResponseData = new RCVData_NACK(cmdbuffer); this.cmd.ErrResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Àü¾ÐÀбâ case (byte)prt_res_define.resd_tbd_state: { RCVData_ReadTBoardStatus ResponseData = new RCVData_ReadTBoardStatus(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Åë½Åº¸µå »óž²±â case (byte)prt_res_define.write_tbd_state: { RCVData_WriteTBoardStatus ResponseData = new RCVData_WriteTBoardStatus(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â °Ë»ö case (byte)prt_res_define.search_repeater_unit: { RCVData_SearchRepeaterUNIT ResponseData = new RCVData_SearchRepeaterUNIT(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Àüü Àбâ case (byte)prt_res_define.read_repeater_all: case (byte)prt_res_define.read_repeater_all_E1: case (byte)prt_res_define.read_repeater_all_E2: { RCVData_ReadRepeaterPointAll ResponseData = new RCVData_ReadRepeaterPointAll(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Ãâ·Â ¾²±â case (byte)prt_res_define.write_repeater_output_unit: { RCVData_WriteRepeaterOutputUNIT ResponseData = new RCVData_WriteRepeaterOutputUNIT(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Á¤º¸Àüü Àбâ case (byte)prt_res_define.read_repeater_info_all: { RCVData_ReadRepeaterInfoAll ResponseData = new RCVData_ReadRepeaterInfoAll(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Á¤º¸ ¾²±â case (byte)prt_res_define.write_repeater_info_unit: { RCVData_WriteRepeaterInfoUNIT ResponseData = new RCVData_WriteRepeaterInfoUNIT(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±âÀԷ¾²±â case (byte)prt_res_define.write_repeater_input_unit: { RCVData_WriteRepeaterInputUNIT ResponseData = new RCVData_WriteRepeaterInputUNIT(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µå»óÅÂÀбâ case (byte)prt_res_define.read_ioboard_status: { RCVData_ReadIOBoardStatus ResponseData = new RCVData_ReadIOBoardStatus(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µå »óž²±â case (byte)prt_res_define.write_ioboard_status: { RCVData_WriteIOBoardStatus ResponseData = new RCVData_WriteIOBoardStatus(cmdbuffer); //2010.4.9_moon this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µåµ¥ÀÌÅÍÀбâ case (byte)prt_res_define.read_ioboard_data: { RCVData_ReadIOBoardData ResponseData = new RCVData_ReadIOBoardData(cmdbuffer); //2010.4.9_moon this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µåµ¥ÀÌÅ;²±â case (byte)prt_res_define.write_ioboard_data: { RCVData_WriteIOBoardData ResponseData = new RCVData_WriteIOBoardData(cmdbuffer); //2010.4.9_moon this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-µ¥¸ó»óÅ case (byte)prt_res_define.read_demon_status: { RCVData_ReadDemonStatus ResponseData = new RCVData_ReadDemonStatus(cmdbuffer); //2010.4.9_moon this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-´©ÀûÄ«¿îÆ® ¹× ±âŸ UIÇÁ·ÎÅäÄÝ---Ãß°¡1 case (byte)prt_res_define.read_command_status: { this.cmd.ResCommand = prt_res_define.read_command_status; RCVData_ReadCommandStatus ResponseData = new RCVData_ReadCommandStatus(cmdbuffer); //2010.4.9_moon this.cmd.ResponseData = ResponseData; ret = 2; break; } // cyim 2015.6.29 ¾Æ³¯·Î±×°¨Áö±â ·¹º§°ª ¾²±â ¸í·É ÇÁ·ÎÅäÄÝ Ãß°¡ case (byte)prt_res_define.write_analogdetecter_level: { this.cmd.ResCommand = prt_res_define.write_analogdetecter_level; RCVData_WriteAnalogDetecterLevel ResponseData = new RCVData_WriteAnalogDetecterLevel(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } // cyim 2016.10.27 : ´ë¿ë·® ¼ö½Å±â ¾Æ³¯·Î±× °¨Áö±â Æ®·£µå Àбâ case (byte)prt_res_define.read_analogdetecter_trend: { this.cmd.ResCommand = prt_res_define.read_analogdetecter_trend; RCVData_ReadAnalogDetecterTrend ResponseData = new RCVData_ReadAnalogDetecterTrend(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } case (byte)prt_res_define.write_analogdetecter_level_all: // LCH 2018.02.27 : ¼öÁ¤µÊ { this.cmd.ResCommand = prt_res_define.write_analogdetecter_level_all; RCVData_WriteAnalogDetecterLevel2 ResponseData = new RCVData_WriteAnalogDetecterLevel2(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } default: { //Debug.WriteLine(" unKnown CMD "); ret = -1; break; } } } if (ret == 2) { //Debug.WriteLine(string.Format("+CMDResponce Send To UI (getResponse) : 0x{0:x2}", cmdbuffer[4])); this.main.ui.getResponse(cmd); //Debug.WriteLine(string.Format("-CMDResponce Send To UI (getResponse) : 0x{0:x2}", cmdbuffer[4])); } else { //Util.UDebugMessage(("CMDResponceFunc err = " + ret.ToString()),0,0); } } catch (Exception ex) { ret = -1; Util.UErrorMessage(ex, 0, 0); } //Debug.WriteLine("- CMDResponceFunc "); return ret; } /**********************************************************************************************/ /**********************************************************************************************/ /* À̺¥Æ®¸¦ UI¿¡°Ô º¸³»´Â ÇÔ¼ö */ /**********************************************************************************************/ public int EVENTCallFunc(byte[] cmdbuffer, int rcvSize) { //ÆÐŶ ¹ÞÀ»¶§ ¸¶´Ù Ä«¿îÆ® this.iDemonPacketReceiveCnt++; int ret = 0; try { ret = pkt.DoCheckcs(cmdbuffer, rcvSize, cmdbuffer[rcvSize]); //Util.LogWrite(string.Format("À̺¥Æ®CNT[{0}][{1}]{2}", iDemonPacketReceiveCnt, (prt_res_define)cmdbuffer[4], Util.ToHex(cmdbuffer))); //¸í·É ·Î±×¿¡ ÀúÀå //Util.LogWrite(string.Format("CS:{0}", ret)); //¸í·É ·Î±×¿¡ ÀúÀå if (ret == 1) { CmdInfo cmd; //Debug.WriteLine(string.Format("EVENTCallFunc rcv cmd : 0x{0:x2}", cmdbuffer[4])); switch (cmdbuffer[4]) { //ÀÀ´ä-Á¤»ó case (byte)prt_res_define.general_ack: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ACK ResponseData = new RCVData_ACK(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-½ÇÆÐ case (byte)prt_res_define.general_nack: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_NACK ResponseData = new RCVData_NACK(cmdbuffer); cmd.ErrResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Àü¾ÐÀбâ case (byte)prt_res_define.resd_tbd_state: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadTBoardStatus ResponseData = new RCVData_ReadTBoardStatus(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Åë½Åº¸µå »óž²±â case (byte)prt_res_define.write_tbd_state: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_WriteTBoardStatus ResponseData = new RCVData_WriteTBoardStatus(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±âȸ·Î °Ë»ö case (byte)prt_res_define.search_repeater_unit: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_SearchRepeaterUNIT ResponseData = new RCVData_SearchRepeaterUNIT(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Àüü Àбâ case (byte)prt_res_define.read_repeater_all: case (byte)prt_res_define.read_repeater_all_E1: case (byte)prt_res_define.read_repeater_all_E2: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[8], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadRepeaterPointAll ResponseData = new RCVData_ReadRepeaterPointAll(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Ãâ·Â ¾²±â case (byte)prt_res_define.write_repeater_output_unit: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_WriteRepeaterOutputUNIT ResponseData = new RCVData_WriteRepeaterOutputUNIT(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Á¤º¸Àüü Àбâ case (byte)prt_res_define.read_repeater_info_all: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadRepeaterInfoAll ResponseData = new RCVData_ReadRepeaterInfoAll(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±â Á¤º¸ ¾²±â case (byte)prt_res_define.write_repeater_info_unit: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_WriteRepeaterInfoUNIT ResponseData = new RCVData_WriteRepeaterInfoUNIT(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Áß°è±âÀԷ¾²±â case (byte)prt_res_define.write_repeater_input_unit: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_WriteRepeaterInputUNIT ResponseData = new RCVData_WriteRepeaterInputUNIT(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µå»óÅÂÀбâ case (byte)prt_res_define.read_ioboard_status: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadIOBoardStatus ResponseData = new RCVData_ReadIOBoardStatus(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µå »óž²±â case (byte)prt_res_define.write_ioboard_status: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_WriteIOBoardStatus ResponseData = new RCVData_WriteIOBoardStatus(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µåµ¥ÀÌÅÍÀбâ case (byte)prt_res_define.read_ioboard_data: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadIOBoardData ResponseData = new RCVData_ReadIOBoardData(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-ioº¸µåµ¥ÀÌÅ;²±â case (byte)prt_res_define.write_ioboard_data: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_WriteIOBoardData ResponseData = new RCVData_WriteIOBoardData(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-µ¥¸ó»óÅ case (byte)prt_res_define.read_demon_status: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadDemonStatus ResponseData = new RCVData_ReadDemonStatus(cmdbuffer); this.cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-Àüü ´©ÀûÄ«¿îÆ®---Ãß°¡1 case (byte)prt_res_define.read_command_status: { cmd = new CmdInfo((prt_res_define)cmdbuffer[4], (int)cmdbuffer[6], (int)cmdbuffer[1], (int)cmdbuffer[2], 0); RCVData_ReadCommandStatus ResponseData = new RCVData_ReadCommandStatus(cmdbuffer); cmd.ResponseData = ResponseData; ret = 2; break; } //ÀÀ´ä-»óž˸²---Ãß°¡2 case (byte)prt_res_define.read_notify_staus: { // // CmdInfo »ý¼ºÀÚ // cmd = new CmdInfo( prt_res_define.read_notify_staus, // prt_res_define res_define, (int)cmdbuffer[6], // int receiverID, (int)cmdbuffer[1], // int loopNo (int)cmdbuffer[2], // int boardNo, 0); // int repeaterNo // // RCVData_ReadNotifyStatus »ý¼ºÀÚ // RCVData_ReadNotifyStatus resData = new RCVData_ReadNotifyStatus(cmdbuffer); //¾Ë¶÷ŸÀÔÀ» ³Ñ±ä´Ù. cmd.ResponseData = resData; ret = 2; break; } //ÀÀ´ä-¾Ë¼ö¾ø´Â¸í·É¾î default: { cmd = new CmdInfo((prt_res_define)0x00, (int)0x00, 1, (int)0x00, (int)0x00); //Debug.WriteLine(" unKnown CMD "); ret = -1; break; } } Util.LogWrite(string.Format("UI󸮰á°ú:{0}", ret)); //¸í·É ·Î±×¿¡ ÀúÀå if (ret == 2) { ////Debug.WriteLine(string.Format("+EVENT Send To UI (getEvent) : 0x{0:x2}", cmdbuffer[4])); this.main.ui.getEvent(cmd); ////Debug.WriteLine(string.Format("-EVENT Send To UI (getEvent) : 0x{0:x2}", cmdbuffer[4])); } } if (ret != 2) { //Debug.WriteLine("EVENTCallFunc err = " + ret.ToString()); } } catch (Exception ex) { ret = -1; Util.UErrorMessage(ex, 0, 0); } //Debug.WriteLine("- EVENTCallFunc "); return ret; } /**********************************************************************************************/ } }