123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968 |
- 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;
- namespace FPER
- {
- class Paket
- {// 데몬 데이터 패킷 클래스
- static byte[] RawSerialize(object anything)
- {// 패킷 Serialize 함수
- int rawsize = Marshal.SizeOf(anything);
- IntPtr buffer = Marshal.AllocHGlobal(rawsize);
- Marshal.StructureToPtr(anything, buffer, false);
- byte[] rawdatas = new byte[rawsize];
- Marshal.Copy(buffer, rawdatas, 0, rawsize);
- Marshal.FreeHGlobal(buffer);
- return rawdatas;
- }
- static object RawDeserialize(byte[] rawdatas, Type anytype)
- {// 패킷 Deserialize 함수
- object ret_obj;
- int rawsize = Marshal.SizeOf(anytype);
- if (rawsize > rawdatas.Length)
- return null;
- IntPtr buffer = Marshal.AllocHGlobal(rawsize);
- Marshal.Copy(rawdatas, 0, buffer, rawsize);
- ret_obj = Marshal.PtrToStructure(buffer, anytype);
- Marshal.FreeHGlobal(buffer);
- return ret_obj;
- }
- byte DoCalcs(byte[] bt, int size)
- {// cs 계산 함수
- byte ret_byte = 0x00;
- try
- {
- int counter = 0;
- do
- {
- ret_byte = (byte)(ret_byte ^ bt[counter]);
- ret_byte++;
- counter++;
- }
- while (counter < size);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte;
- }
- public int DoCheckcs(byte[] bt, int size, byte cs)
- {/// cs 체크 함수
- int ret = 0;
- try
- {
- byte calcs = 0x00;
- calcs = DoCalcs(bt, size);
- if (cs == calcs)
- {
- ret = 1;
- }
- else
- {
- ret = 0;
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret;
- }
- public byte[] CreatePKT_SayHello_To_Board(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type1 PKT = new PRTReceiver_Type1();
- int psize = (byte)default_value_define.size_PRTReceiver_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.say_hello;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadBoardStatus(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type1 PKT = new PRTReceiver_Type1();
- int psize = (byte)default_value_define.size_PRTReceiver_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.resd_tbd_state;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteBoardStatus(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte RT_BaudRate, byte loop1_BaudRate, byte loop2_BaudRate, byte RT_Term, byte BD_Reset)
- { //2010.3.24_moon
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type6 PKT = new PRTReceiver_Type6();
- int psize = (byte)default_value_define.size_PRTReceiver_Type6;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_tbd_state;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = RT_BaudRate;
- PKT.Option2 = loop1_BaudRate;
- PKT.Option3 = loop2_BaudRate;
- PKT.Option4 = RT_Term;
- PKT.Option5 = BD_Reset;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_SearchRepeaterUNIT(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type2 PKT = new PRTReceiver_Type2();
- int psize = (byte)default_value_define.size_PRTReceiver_Type2;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.search_repeater_unit;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Repeater_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_SearchRepeaterAll(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.search_repeater_all;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = 0xff; //2010.3.24_moon All
- PKT.Option2 = 0x00;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadRepeaterPointAll(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_repeater_all;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = 0xff; //2010.3.24_moon All
- PKT.Option2 = 0x00;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteRepeaterOutputUNIT(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID, byte Repeater_Out_Value)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_repeater_output_unit;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Repeater_ID;
- PKT.Option2 = Repeater_Out_Value;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadRepeaterInfoAll(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_repeater_info_all;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = 0xff; //2010.3.24_moon All
- PKT.Option2 = 0x00;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteRepeaterInfoUNIT(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID, byte Repeater_Out_Value)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_repeater_info_unit;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Repeater_ID;
- PKT.Option2 = Repeater_Out_Value;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- //2010.12.05, k.s.d, repeater information block write.
- public byte[] CreatePKT_WriteRepeaterInfoAll(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID, RepeaterDataAll Repeater_Out_Value)
- {
- int psize = (byte)default_value_define.size_PRTReceiver_Type7;
- byte[] PKT = new byte[psize + 1];
- try
- {
- PKT[0] = (byte)default_value_define.prt_header_id;
- PKT[1] = RPT_loop;
- PKT[2] = TBD_ID;
- PKT[3] = (byte)psize;
- PKT[4] = (byte)prt_cmd_define.write_repeater_info_all;
- PKT[5] = IVK_ID;
- PKT[6] = RCV_ID;
- PKT[7] = 0x01;
- PKT[8] = 127;
- //PKT[7] = Repeater_ID;
- for (int i = 0; i < 127; i++)
- {
- PKT[9 + i] = Repeater_Out_Value.Data[i].Repeater_Info;
- }
- //ret_byte_data = PKT;
- PKT[psize] = DoCalcs(PKT, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return PKT;
- }
- public byte[] CreatePKT_ResetRepeaterUNIT(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type2 PKT = new PRTReceiver_Type2();
- int psize = (byte)default_value_define.size_PRTReceiver_Type2;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.reset_repeater_unit;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Repeater_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- // 중계기 모두 복구
- public byte[] CreatePKT_ResetRepeaterAll(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.reset_repeater_all;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = 0xff; //2010.3.24_moon All
- PKT.Option2 = 0x00;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- // cyim 2013.3.13
- // 입력쓰기 테스트 이후 복구 버튼을 눌러서 중계기 별로 복구하도록 명령한다
- // Function Overload : 중계기를 지정하여 복구
- public byte[] CreatePKT_ResetRepeaterAll(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.reset_repeater_all;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Repeater_ID; // cyim 2013.3.13
- PKT.Option2 = 0x01;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteRepeaterInputUNIT(byte RPT_loop, byte TBD_ID, byte IVK_ID, byte RCV_ID, byte Repeater_ID, byte Repeater_In_Value)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type3 PKT = new PRTReceiver_Type3();
- int psize = (byte)default_value_define.size_PRTReceiver_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.TBD_ID = TBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_repeater_input_unit;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Repeater_ID;
- PKT.Option2 = Repeater_In_Value;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_SayHello_To_IOBoard(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type1 PKT = new PRTIO_Type1();
- int psize = (byte)default_value_define.size_PRTIO_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.sayhello_to_ioboard;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadIOBoardStatus(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type1 PKT = new PRTIO_Type1();
- int psize = (byte)default_value_define.size_PRTIO_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_ioboard_status;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteIOBoardStatus(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID, byte Brate, byte BD_Reset)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type3 PKT = new PRTIO_Type3();
- int psize = (byte)default_value_define.size_PRTIO_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_ioboard_status;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = Brate;
- PKT.Option2 = BD_Reset;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadIOBoardData(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type1 PKT = new PRTIO_Type1();
- int psize = (byte)default_value_define.size_PRTIO_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_ioboard_data;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteIOBoardData(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID, byte dbyte_outpoint, byte ubyte_outpoint)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type3 PKT = new PRTIO_Type3();
- int psize = (byte)default_value_define.size_PRTIO_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_ioboard_data;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = dbyte_outpoint;
- PKT.Option2 = ubyte_outpoint;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadIOBoardPointData(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID, byte POINT_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type2 PKT = new PRTIO_Type2();
- int psize = (byte)default_value_define.size_PRTIO_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_ioboard_point_data;
- PKT.IVK_ID = IVK_ID;
- PKT.Option1 = POINT_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_WriteIOBoardPointData(byte RPT_loop, byte IOBD_ID, byte IVK_ID, byte RCV_ID, byte POINT_ID, byte POINT_STATUS)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTIO_Type3 PKT = new PRTIO_Type3();
- int psize = (byte)default_value_define.size_PRTIO_Type3;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = RPT_loop;
- PKT.BD_ID = IOBD_ID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_ioboard_point_data;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.Option1 = (byte)(0x7F + POINT_ID);
- PKT.Option2 = POINT_STATUS;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_SayHello_To_Demon(byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTDemon_Type1 PKT = new PRTDemon_Type1();
- int psize = (byte)default_value_define.size_PRTDemon_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = 0x00;
- PKT.BD_ID = 0x00;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.sayhello_to_demon;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_StartPolling(byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTDemon_Type1 PKT = new PRTDemon_Type1();
- int psize = (byte)default_value_define.size_PRTDemon_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = 0x00;
- PKT.BD_ID = 0x00;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.start_polling;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_StopPolling(byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTDemon_Type1 PKT = new PRTDemon_Type1();
- int psize = (byte)default_value_define.size_PRTDemon_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = 0x00;
- PKT.BD_ID = 0x00;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.stop_polling;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_ReadDemonStatus(byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTDemon_Type1 PKT = new PRTDemon_Type1();
- int psize = (byte)default_value_define.size_PRTDemon_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = 0x00;
- PKT.BD_ID = 0x00;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_demon_status;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- public byte[] CreatePKT_Notify_DBUpdated(byte IVK_ID, byte RCV_ID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTDemon_Type1 PKT = new PRTDemon_Type1();
- int psize = (byte)default_value_define.size_PRTDemon_Type1;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = 0x00;
- PKT.BD_ID = 0x00;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.notify_db_update;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- //누적카운트 읽기 명령 byte생성
- public byte[] CreatePKT_ReadCommandStatus(byte IVK_ID, byte RCV_ID, int LoopNo, int BoardID, int repeaterID, int address, Char inOut
- , Char CommandType1, Char CommandType2, Char SubType, Char ApplyRange, int Status, int commid)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type_CommandStatus PKT = new PRTReceiver_Type_CommandStatus();
- int psize = 16;
- PKT.head = (byte)default_value_define.prt_header_id; //0x02
- PKT.RPT_loop = (byte)LoopNo; //ID 하위 바이트 (Loop 번호)
- PKT.TBD_ID = (byte)BoardID; //ID 상위 바이트 (통신보드 ID)
- PKT.length = (byte)psize; //0x0D, 전체 Packet 길이
- PKT.cmd = (byte)prt_cmd_define.read_command_status;
- PKT.IVK_ID = IVK_ID; //Invoke ID
- PKT.RCVR_ID = RCV_ID;
- PKT.RepeaterID = (byte)repeaterID;
- PKT.Address = (byte)address;
- PKT.InOut = (byte)inOut;
- PKT.CommId = (byte)commid;
- PKT.CommandType1 = (byte)CommandType1;
- PKT.CommandType2 = (byte)CommandType2;
- PKT.SubType = (byte)SubType;
- PKT.ApplyRange = (byte)ApplyRange;
- PKT.Status = (byte)Status;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize); //cs
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- // cyim 2015.6.29 아날로그감지기 레벨값 쓰기 명령 프로토콜 추가
- public byte[] CreatePKT_AnalogDetecterLevel_Write(byte IVK_ID, byte RCV_ID, int LoopNo, int BoardID, int repeaterID, byte Fault, byte PreFire, byte FireNight, byte FireDay)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type_AnalogDetecterLevel PKT = new PRTReceiver_Type_AnalogDetecterLevel();
- int psize = (byte)default_value_define.size_PRTWrite_AnalogDetecter_Level;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = (byte)LoopNo;
- PKT.TBD_ID = (byte)BoardID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.write_analogdetecter_level;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.RepeaterID = (byte)repeaterID;
- PKT.Fault = Fault;
- PKT.PreFire = PreFire;
- PKT.FireNight = FireNight;
- PKT.FireDay = FireDay;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- // cyim 2016.10.27 : 대용량 수신기 아날로그 감지기 트랜드 읽기
- public byte[] CreatePKT_AnalogDetecterTrend_Read(byte IVK_ID, byte RCV_ID, int LoopNo, int BoardID, int repeaterID)
- {
- byte[] ret_byte_data = null;
- try
- {
- PRTReceiver_Type_AnalogDetecterTrend PKT = new PRTReceiver_Type_AnalogDetecterTrend();
- int psize = (byte)default_value_define.size_PRTReceiver_Type_AnalogDetecterTrend;
- PKT.head = (byte)default_value_define.prt_header_id;
- PKT.RPT_loop = (byte)LoopNo;
- PKT.TBD_ID = (byte)BoardID;
- PKT.length = (byte)psize;
- PKT.cmd = (byte)prt_cmd_define.read_analogdetecter_trend;
- PKT.IVK_ID = IVK_ID;
- PKT.RCVR_ID = RCV_ID;
- PKT.RepeaterID = (byte)repeaterID;
- ret_byte_data = RawSerialize(PKT);
- ret_byte_data[psize] = DoCalcs(ret_byte_data, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return ret_byte_data;
- }
- // LCH 2018.02.27 : 수정됨
- // cyim 2016.10.28 : 대용량 수신기 아날로그 감지기 레벨 Block 쓰기
- public byte[] CreatePKT_AnalogDetecterLevel_WriteAll(byte IVK_ID, byte RCV_ID, byte RPT_loop, byte TBD_ID, RepeaterDataAll AnalogDetecter)
- {
- int cnt = 0;
- for (int i = 0; i < 127; i++)
- {
- if (AnalogDetecter.Data[i].AnalogDetecter == true)
- {
- cnt++;
- }
- }
- // 아날로그 감지기 개수에 따라 패킷길이가 틀려지는 가변 패킷이다!
- // Length : 1개 라면 12, 2개 라면 17 (7 + 5n)
- //int psize = (byte)(7 + 5 * cnt);
- int psize = 9 + (5 * cnt);
- byte[] PKT = new byte[psize + 1];
- // 확장길이 구하는 방법
- //int a = 300;
- //byte b = ((byte)(a >> 0)); // 하위 : 0x2C
- //byte c = ((byte)(a >> 8)); // 상위 : 0x01
- try
- {
- PKT[0] = (byte)default_value_define.prt_header_id;
- PKT[1] = RPT_loop;
- PKT[2] = TBD_ID;
- PKT[3] = 0x00; // 확장길이 사용 -> 300 이면 hex 값으로 0x012C 이며, 상위 0x01, 하위 0x2C 이다
- PKT[4] = (byte)prt_cmd_define.write_analogdetecter_level_all;
- PKT[5] = ((byte)(psize >> 0)); // 하위
- PKT[6] = ((byte)(psize >> 8)); // 상위
- PKT[7] = IVK_ID;
- PKT[8] = RCV_ID;
- cnt = 0;
- for (int i = 0; i < 127; i++)
- {
- if (AnalogDetecter.Data[i].AnalogDetecter == true)
- {
- int index = 9 + (5 * cnt);
- PKT[index + 0] = (byte)(i + 1);// 아날로그 감지기 아이디
- PKT[index + 1] = AnalogDetecter.Data[i].AnalogDetecterFault;
- PKT[index + 2] = AnalogDetecter.Data[i].AnalogDetecterPreFire;
- PKT[index + 3] = AnalogDetecter.Data[i].AnalogDetecterFireNight;
- PKT[index + 4] = AnalogDetecter.Data[i].AnalogDetecterFireDay;
- cnt++;
- }
- }
- PKT[psize] = DoCalcs(PKT, psize);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return PKT;
- }
- }
- }
|