示例#1
0
        public void setSunRiseSunSet(int RiseHour, int RiseMin,int SetHour ,int SetMin)
        {
            byte[] data = new byte[] { 0x09, (byte)RiseHour, (byte)RiseMin, (byte)SetHour, (byte)SetMin };
            SendPackage pkg = new SendPackage(CmdType.CmdSet, CmdClass.B, 0xffff, data);

            this.Send(pkg);
        }
示例#2
0
        public static Bitmap GetBackgroundPic(I_DLE device, int address, byte mode, byte g_code_id, ref string desc)
        {
            RGS_SetBackgroundPic_frame frame=null;
            System.IO.MemoryStream ms;
            byte[] cmdText = new byte[] { 0x98, mode, g_code_id };
            SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, address, cmdText);
            device.Send(pkg);
            if (pkg.result != CmdResult.ACK)
                throw new Exception("cmd error:" + pkg.result);

            byte frame_no = pkg.ReturnTextPackage.Text[3]; //0x98 frame_no
            ms = new System.IO.MemoryStream(1024 * 1024*3);
            for (int i = 1; i <= frame_no; i++)
            {
                cmdText = new byte[] {0x98,mode,g_code_id,(byte)i };

                pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, address, cmdText);

                device.Send(pkg);

                frame = new RGS_SetBackgroundPic_frame(pkg.ReturnTextPackage);

                ms.Write(frame.g_pattern_color, 0, frame.g_pattern_color.Length);

            }

            Bitmap pic = new Bitmap(frame.g_width, frame.g_height);

            ms.Position = 0;

            for(int y =0;y<frame.g_height;y++)
                for (int x = 0; x < frame.g_width; x++)
                {
                   // int r, g, b;
                    //r = ms.ReadByte();
                    //g = ms.ReadByte();
                    //b = ms.ReadByte();
                    pic.SetPixel(x, y, Color.FromArgb(ms.ReadByte(),ms.ReadByte(), ms.ReadByte()));
                }

               desc= System.Text.Encoding.Unicode.GetString(frame.g_desc);

            ms.Dispose();
            return pic;
        }
示例#3
0
文件: TCBase.cs 项目: ufjl0683/Center
 protected void AsyncSend(SendPackage pkg)
 {
     new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(AsynSendPackageTask)).Start(pkg);
 }
示例#4
0
文件: Program.cs 项目: ufjl0683/sshmc
        static void GetTileConfig()
        {
            ControllerConfigBase config;
            System.Xml.Serialization.XmlSerializer ser = new XmlSerializer(typeof(ControllerConfigBase));

              //  System.IO.MemoryStream ms = new System.IO.MemoryStream();

               // ser.Serialize(ms, config);

            byte[] data = new byte[] { 0x04, 0x20 };

            Comm.SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, 0xffff, data);

            System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
            client.Connect("127.0.0.1", 1002);

            DeviceV2DLE dle = new DeviceV2DLE("tile", client.GetStream());
            dle.Send(pkg);
            System.IO.MemoryStream ms = new System.IO.MemoryStream(pkg.ReturnTextPackage.Text, 10, pkg.ReturnTextPackage.Text.Length - 10);
               // string str = System.Text.UTF8Encoding.UTF8.GetString(ms.GetBuffer());
               // Console.WriteLine(str);
             config = ser.Deserialize(ms) as ControllerConfigBase;
            Console.WriteLine(config.build_date+"finish!");
        }
示例#5
0
文件: TCBase.cs 项目: ufjl0683/Center
        public virtual int TC_SetDateTime(int year, int mon, int day, int hour, int min, int sec)
        {
            byte[] sendData=new byte[]{0x02,(byte)(year/256),(byte)(year %256),(byte)mon,(byte)day,(byte)hour,(byte)min,(byte)sec};
            SendPackage pkg=new SendPackage(CmdType.CmdQuery,CmdClass.A,this.DeviceID,sendData);

                this.m_device.Send(pkg);
                if (pkg.result == CmdResult.ACK)
                {

                    //if (pkg.sendCnt > 1)
                    //    ConsoleServer.WriteLine("SendCnt:" + pkg.sendCnt);
                    return (int)pkg.ReturnTextPackage.Text[1];
                }
                else
                {
                    throw new Exception("對時命令錯誤!"+pkg);
                }
        }
示例#6
0
文件: TCDLE30.cs 项目: ufjl0683/sshmc
        public void Send(SendPackage pkg)
        {
            if(!Enabled)
                throw new Exception("CommError");
            switch (pkg.cls)
            {
                case CmdClass.A:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueA.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }
                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {

                            pkg.result = CmdResult.TimeOut;
                            throw new Exception(string.Format("Queue Waiting Exceed {0} sec!", PackageSendTimeOut/1000));
                        }
                    }

                    break;
                case CmdClass.B:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueB.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }
                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {
                            pkg.result = CmdResult.TimeOut;
                            throw new Exception(string.Format("Queue Waiting Exceed {0} sec!", PackageSendTimeOut / 1000));
                        }
                    }
                    break;
                case CmdClass.C:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueC.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }

                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {
                            pkg.result = CmdResult.TimeOut;
                            throw new Exception(string.Format("Queue Waiting Exceed {0} sec!", PackageSendTimeOut / 1000));
                        }
                    }
                    break;
            }
        }
示例#7
0
文件: TCDLE30.cs 项目: ufjl0683/sshmc
        void SendTask()
        {
            byte[]data=null;
            while (true)
            {

                lock (SendTaskNotifyObj)
                {
                    if (SendQueueA.Count != 0)

                        currentSendingPackage = (SendPackage)SendQueueA.Dequeue();
                    else if (SendQueueB.Count != 0)
                        currentSendingPackage = (SendPackage)SendQueueB.Dequeue();
                    else if (SendQueueC.Count != 0)
                        currentSendingPackage = (SendPackage)SendQueueC.Dequeue();
                    else if(SendQueueD.Count!=0)
                        currentSendingPackage = (SendPackage)SendQueueD.Dequeue();
                    else if (TimeOutQueue.Count != 0)
                        currentSendingPackage = (SendPackage)TimeOutQueue.Dequeue();
                    else
                    {
                        //no Data To Send , and waiting

                        currentSendingPackage = null;
                        GC.Collect();
                        GC.WaitForPendingFinalizers();
                        System.Threading.Monitor.Wait(SendTaskNotifyObj);

                        continue;
                    }

                }

                        try
                        {
                            if(currentSendingPackage.sendCnt==0)
                            data = PackData(currentSendingPackage.address, currentSendingPackage.text);
                            else
                            data = PackData(currentSendingPackage.address, currentSendingPackage.text,(byte)currentSendingPackage.Seq);

                            currentSendingPackage.Seq = data[2];

                            if (currentSendingPackage.sendCnt >= 4)   //discard package
                            {
                                //if (this.OnCommError != null)
                                //    OnCommError(this,new Exception("Time Out Error!"));

                                lock (currentSendingPackage)
                                {
                                    System.Threading.Monitor.Pulse(currentSendingPackage);
                                }
                                continue;
                            }
                            currentSendingPackage.sendCnt++;
                            if (OnSendingPackage != null)
                                OnSendingPackage(this, currentSendingPackage);
                            lock (stream)
                            {

                                if (OnTextSending != null)
                                    OnTextSending(this,ref data);

                              stream.Write(data, 0, data.Length);
                              stream.Flush();
                                //for (int i = 0; i < data.Length; i++)
                                //{
                                  //  stream.WriteByte(data[i]);
                                    //stream.Flush();
                               // }

                                if (System.Threading.Monitor.Wait(stream, T0ms))
                                {
                                    //No Time Out

                                    if (currentSendingPackage.result == CmdResult.ACK)
                                    {
                                        lock (currentSendingPackage)
                                        {
                                            System.Threading.Monitor.Pulse(currentSendingPackage);
                                        }
                                    }
                                    else
                                        TimeOutQueue.Enqueue(currentSendingPackage);//nak ,time out

                                }
                                else
                                {
                                    //Time out
                                    if( currentSendingPackage.result==CmdResult.Unknown)
                                    currentSendingPackage.result = CmdResult.TimeOut;

                                    TimeOutQueue.Enqueue(currentSendingPackage);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            if (this.OnCommError != null)
                                OnCommError(this,ex);
                          //  Console.WriteLine(ex.Message);
                        }

             }//while
        }
示例#8
0
文件: V2DLE.cs 项目: ufjl0683/sshmc
        public void Send(SendPackage pkg)
        {
            if(!this.getEnable())
                throw new Exception("Comm  not initial!");
            switch (pkg.cls)
            {
                case CmdClass.A:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueA.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }
                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {

                            pkg.result = CmdResult.TimeOut;
                            pkg.IsDiscard = true;
                            throw new Exception(string.Format(this.m_devName + ",Queue Waiting Exceed {0} sec!" + pkg, PackageSendTimeOut / 1000 + "\r\n" )+ this.getQueueState());
                        }
                    }

                    break;
                case CmdClass.B:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueB.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }
                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {
                            pkg.result = CmdResult.TimeOut;
                            pkg.IsDiscard = true;
                            throw new Exception(string.Format(this.m_devName + ",Queue Waiting Exceed {0} sec!" + pkg, PackageSendTimeOut / 1000) + "\r\n"+this.getQueueState());
                        }
                    }
                    break;
                case CmdClass.C:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueC.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }

                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {
                            pkg.result = CmdResult.TimeOut;
                            pkg.IsDiscard = true;
                            throw new Exception(string.Format(this.m_devName + ",Queue Waiting Exceed {0} sec!" + pkg, PackageSendTimeOut / 1000) + "\r\n" + this.getQueueState());
                        }
                    }
                    break;
                case CmdClass.D:
                    lock (pkg)
                    {

                        lock (SendTaskNotifyObj)
                        {
                            SendQueueD.Enqueue(pkg);
                            System.Threading.Monitor.Pulse(SendTaskNotifyObj);
                        }

                        if (!System.Threading.Monitor.Wait(pkg, PackageSendTimeOut))
                        {
                            pkg.result = CmdResult.TimeOut;
                            pkg.IsDiscard = true;
                            throw new Exception(string.Format(this.m_devName + ",Queue Waiting Exceed {0} sec!" + pkg, PackageSendTimeOut / 1000) + "\r\n" + this.getQueueState());
                        }
                    }
                    break;

            }

               //     Console.WriteLine("---------------finish pkg" + pkg);
        }
示例#9
0
文件: CMSTC.cs 项目: ufjl0683/Center
        public void TC_SendPrestoreDisplay(int dataType, int icon_id, int g_code_id, int hor_space, string mesgs, byte[] colors, byte[] vspaces)
        {
            string mesg;
              switch (this.CrMode)
              {
              case 0:
                  mesg = mesgs.Replace("\r", "");
                  break;
              case 2:
                  mesg = mesgs.Replace("\r", "\r\n");
                  break;
              default:
                  mesg = mesgs;
                  break;

              }

              int ver_no = 1;
              byte[] big5bytes;
              //if (mesg.IndexOf('\r') == -1)  //append cr 保證 msgleng 不為零
              //    mesg += "\r";

              this.checkConntected();

              System.Data.DataSet ds = this.m_protocol.GetSendDataSet("set_prestore_message");

              ds.Tables["tblMain"].Rows[0]["data_type"] = dataType;

              ds.Tables["tblMain"].Rows[0]["icon_code_id"] = icon_id;
              ds.Tables["tblMain"].Rows[0]["g_code_id"] = g_code_id;
              big5bytes = RemoteInterface.Util.StringToBig5Bytes(mesg);

              ds.Tables["tblMain"].Rows[0]["msgcnt"] = ds.Tables["tblMain"].Rows[0]["msg_length"] = big5bytes.Length;
              for (int i = 0; i < big5bytes.Length; i++)
              if (big5bytes[i] == 0x0d)
                  ver_no++;

              //   ds.Tables["tblMain"].Rows[0]["ver_no"] = ver_no;
              ds.Tables["tblMain"].Rows[0]["ver_no"] = vspaces.Length;
              ds.Tables["tblMain"].Rows[0]["hor_space"] = hor_space;
              //for (int i = 0; i < ver_no; i++)
              //    ds.Tables["tblver_no"].Rows.Add(0);
              for (int i = 0; i < vspaces.Length; i++)
              ds.Tables["tblver_no"].Rows.Add(vspaces[i]);

              for (int i = 0; i < big5bytes.Length; i++)
              ds.Tables["tblmsgcnt"].Rows.Add(big5bytes[i]);

              //byte color_code = 0;

              //    if(colors[i]== Color.Black)
              //        color_code = 0;

              //    else if(colors[i]== Color.Green)
              //        color_code = 1;

              //    else if(colors[i]== Color.Red)
              //        color_code = 2;

              //    else if(colors[i]== Color.Red)
              //        color_code = 3;
              string mesg1;

              mesg1 = mesg.Replace("\r", "").Replace("\n", "");

              for (int i = 0; i < mesg1.Length; i++)
              {
              //if ((int)mesg1[i] <= 128)
              ds.Tables["tblcolorcnt"].Rows.Add(colors[i]);
              //else  //chinese char
              //{
              //    ds.Tables["tblcolorcnt"].Rows.Add(colors[i]);
              //    ds.Tables["tblcolorcnt"].Rows.Add(colors[i]);
              //}
              }
              ds.Tables["tblMain"].Rows[0]["colorcnt"] = ds.Tables["tblcolorcnt"].Rows.Count;

              currentDisplayPackage = this.m_protocol.GetSendPackage(ds, 0xffff);

              lock (currDispLockObj)
              {

              currentDispalyDataset = ds;
              this.m_device.Send(currentDisplayPackage);

              }
              if (currentDisplayPackage.result != CmdResult.ACK)
              throw new Exception(currentDisplayPackage.ToString() + " " + currentDisplayPackage.result.ToString());

              // ds.Dispose();

              if (curr_icon_id != icon_id || curr_g_code_id != g_code_id || curr_mesg != mesg)
              {
              curr_icon_id = icon_id;
              curr_g_code_id = g_code_id;
              curr_hor_space = hor_space;
              curr_mesg = mesg;
              this.InvokeOutPutChangeEvent(this, this.GetCurrentDisplayDecs());
              }
        }
示例#10
0
文件: TCBase.cs 项目: ufjl0683/Center
        //void m_device_OnBeforeNak(object sender, ref byte[] data)
        //{
        //    throw new Exception("The method or operation is not implemented.");
        //}
        //void m_device_OnBeforeAck(object sender, ref byte[] data)
        //{
        //    throw new Exception("The method or operation is not implemented.");
        //}
        //void m_device_OnAck(object sender, AckPackage AckObj)
        //{
        //    throw new Exception("The method or operation is not implemented.");
        //}
        //void m_device_OnTextSending(object sender, ref byte[] data)
        //{
        //    throw new Exception("The method or operation is not implemented.");
        //}
        void TC_OnConnectStatusChanged(object tc)
        {
            if (this.OnConnectStatusChanged != null)
            {
                if (this.IsConnected != (m_comm_state != 3))
                {
                    m_comm_state=(this.IsConnected)?(byte)1:(byte)3;
                    this.OnConnectStatusChanged(this);
                }
            }

            if (this.IsTcpConnected)
            {
                try
                {
                    if (m_protocol.DeviceType != "TEM" && m_protocol.DeviceType != "ETTU")
                    {
                        SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.B, this.m_deviceid, new byte[] { 0x01 });
                        if (m_device != null)
                        {
                            m_device.Send(pkg);
                            if (pkg.result == CmdResult.ACK)
                                m_device_OnReport(this, pkg.ReturnTextPackage);
                        }
                        this.TC_SetDateTime(System.DateTime.Now.Year, System.DateTime.Now.Month, System.DateTime.Now.Day, System.DateTime.Now.Hour, System.DateTime.Now.Minute, System.DateTime.Now.Second);
                    }
                }
                catch (Exception ex)
                {
                    ConsoleServer.WriteLine(ex.Message+ex.StackTrace);
                }
            }
        }
示例#11
0
文件: RGSTC.cs 项目: ufjl0683/Center
 private void TC_SetDisplayOff()
 {
     checkConntected();
     SendPackage pk = new SendPackage(CmdType.CmdSet, CmdClass.A, m_deviceid, new byte[] { 0x53});
     this.m_device.Send(pk);
     if (pk.result != CmdResult.ACK)
         Console.WriteLine(m_deviceName + ":set display off" + pk.result);
 }
示例#12
0
 void m_device_OnSendingPackage(object sender, SendPackage pkg)
 {
     Console.WriteLine("===>" + pkg.ToString());
     //throw new Exception("The method or operation is not implemented.");
 }
示例#13
0
        public static RGS_GenericDisplay_Data GetGenericDisplayData(I_DLE device, int address)
        {
            RGS_GenericDisplay_Data data=null;
            SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, address, new byte[] { 0x9d });
            device.Send(pkg);
            if (pkg.result != CmdResult.ACK)
                throw new Exception(pkg.result.ToString());
            byte[] text = pkg.ReturnTextPackage.Text;
            byte mode, g_code_id;
            int inx = 1;
            inx += 7; //skip hw_status,opmode,commstat,opstatus
            mode = text[inx++];
            g_code_id = text[inx++];
            RGS_Generic_ICON_Data[] icons = new RGS_Generic_ICON_Data[text[inx++]];
             //   RGS_Generic_Message_Data[] msgs;

            for (int i = 0; i < icons.Length; i++)
            {
                icons[i] = new RGS_Generic_ICON_Data(0, 0, 0);

                icons[i].icon_code_id=text[inx++];
                icons[i].x = (ushort)(text[inx++] * 256);
                icons[i].x += text[inx++];
                icons[i].y = (ushort)(text[inx++] * 256);
                icons[i].y += text[inx++];
            }

            RGS_Generic_Message_Data[] msgs = new RGS_Generic_Message_Data[text[inx++]];
            for (int i = 0; i < msgs.Length; i++)
            {
                msgs[i]=new RGS_Generic_Message_Data("",new Color[0],new Color[0],0,0);
                byte[] code_big5 = new byte[text[inx++]];
                for (int j = 0; j < code_big5.Length; j++)
                    code_big5[j] = text[inx++];
                string message = RemoteInterface.Utils.Util.Big5BytesToString(code_big5);//System.Text.Encoding.Unicode.GetString(System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding("big5"), System.Text.Encoding.Unicode, code_big5));
                Color[] forecolor = new Color[message.Length];
                Color[] backcolor = new Color[message.Length];
                for (int j = 0; j < message.Length; j++)
                {
                    int r,g,b;
                    r=text[inx++];
                    g=text[inx++];
                    b=text[inx++];
                    forecolor[j] = Color.FromArgb(r, g, b);
                    r=text[inx++];
                    g=text[inx++];
                    b=text[inx++];
                    backcolor[j] = Color.FromArgb(r, g, b);

                }

                msgs[i].messgae = message;
                msgs[i].forecolor = forecolor;
                msgs[i].backcolor = backcolor;
                msgs[i].x = (byte)(text[inx++] * 256);
                msgs[i].x += text[inx++];
                msgs[i].y = (byte)(text[inx++] * 256);
                msgs[i].y += text[inx++];

            }

            RGS_Generic_Section_Data[] sections = new RGS_Generic_Section_Data[text[inx++]];
            for (int i = 0; i < sections.Length; i++)
            {
                sections[i] = new RGS_Generic_Section_Data(0, 0);
                sections[i].section_id = text[inx++];
                sections[i].status = text[inx++];
            }
            data = new RGS_GenericDisplay_Data(mode, g_code_id, icons, msgs, sections);

            return data;
        }
示例#14
0
        void SetTemVDData(string devname, int dir, int milek, int milem, System.Data.DataSet ds)
        {
            System.Text.StringBuilder sql = new StringBuilder();
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            ms.WriteByte(0x21);
            ms.WriteByte((byte)dir);
            ms.WriteByte((byte)(milek/256));
            ms.WriteByte((byte)(milek % 256));
            ms.WriteByte((byte)((milem ) / 256));
            ms.WriteByte((byte)((milem ) % 256));
            ms.WriteByte((byte)ds.Tables[1].Rows.Count); //lanecnt
            ms.WriteByte(0); //odd
            System.DateTime dt= DateTime.Now;
            dt=dt.AddSeconds(-dt.Second).AddMinutes(-5);
            dt=dt.AddMinutes(-(dt.Minute % 5));
            //sql.Append("select ");
            //for(int i=0;i<ds.Tables[1].Rows.Count;i++)
            //{

            //}

               // string sql = "select small_car_volume_lane1,big_car_volume,connect_car_volume,small_car_speed,big_car_speed,connect_car_speed,average_occupancy from tblvddata5min where devicename='{0}' and timestamp='{1}' ";
            System.Data.Odbc.OdbcConnection cn = new System.Data.Odbc.OdbcConnection(RemoteInterface.DbCmdServer.getDbConnectStr());
            System.Data.Odbc.OdbcCommand cmd=new System.Data.Odbc.OdbcCommand();
            cmd.Connection = cn;

            try
            {

                cn.Open();

                for (int i = 0; i < (byte)ds.Tables[1].Rows.Count; i++)
                {
                    sql = new StringBuilder("select ");
                    sql.Append("small_car_volume_lane").Append(i + 1).Append(",");
                    sql.Append("big_car_volume_lane").Append(i + 1).Append(",");
                    sql.Append("connect_car_volume_lane").Append(i + 1).Append(",");

                    sql.Append("small_car_speed_lane").Append(i + 1).Append(",");
                    sql.Append("big_car_speed_lane").Append(i + 1).Append(",");
                    sql.Append("connect_car_speed_lane").Append(i + 1).Append(",");
                    sql.Append("average_occupancy_lane").Append(i + 1).Append(",");

                    sql.Remove(sql.ToString().Length - 1, 1).Append(" from tblvddata5min   where devicename='{0}' and timestamp='{1}'");
                    cmd.CommandText = string.Format(sql.ToString(), devname, RemoteInterface.DbCmdServer.getTimeStampString(dt));

                    System.Data.Odbc.OdbcDataReader rd = cmd.ExecuteReader();
                    if (!rd.Read())
                    {
                        rd.Close();
                        continue;
                    }

                 //   System.Data.DataRow r = ds.Tables[1].Rows[i];

                    ms.WriteByte((byte)i); //loopid
                    ms.WriteByte(0); //odd
                    int car_vol = System.Convert.ToInt32(rd[0]);
                    ms.WriteByte((byte)(car_vol / 256));
                    ms.WriteByte((byte)(car_vol % 256));
                    int big_vol = System.Convert.ToInt32(rd[1]);
                    ms.WriteByte((byte)(big_vol / 256));
                    ms.WriteByte((byte)(big_vol % 256));
                    int cn_vol = System.Convert.ToInt32(rd[2]);
                    ms.WriteByte((byte)(cn_vol / 256));
                    ms.WriteByte((byte)(cn_vol % 256));
                    int carspd = System.Convert.ToByte(rd[3]);
                    ms.WriteByte((byte)carspd);
                    carspd = System.Convert.ToByte(rd[4]);
                    ms.WriteByte((byte)carspd);

                    carspd = System.Convert.ToByte(rd[5]);
                    ms.WriteByte((byte)carspd);
                    ms.WriteByte(System.Convert.ToByte(rd[6]));

                    rd.Close();

                }
            }
            catch (Exception ex)
            {
                ConsoleServer.WriteLine(ex.Message + "," + ex.StackTrace);
            }
            finally
            {
                cn.Close();
            }

            Comm.SendPackage pkg=new Comm.SendPackage(Comm.CmdType.CmdSet,Comm.CmdClass.A,0xffff,ms.ToArray());
            Program.mfcc_tem.manager[TEM_DEVNAME].Send(pkg);
        }
示例#15
0
 void sendTemLCSStatus(string devName, int status)
 {
     byte[] data=new byte[]{0x26,0,0,0,0};
     LCSDeviceData lcs = hsLCSDeviceData[devName] as LCSDeviceData;
     data[1] = (byte)lcs.tunnid;
     data[2] =(byte) lcs.place;
     data[3] =(byte) lcs.div;
     data[4] = (byte)status;
     SendPackage pkg = new SendPackage(CmdType.CmdSet, CmdClass.A, 0xffff, data);
     Program.mfcc_tem.manager[TEM_DEVNAME].Send(pkg);
 }
示例#16
0
文件: Program.cs 项目: ufjl0683/sshmc
        static void Tc_Test()
        {
            Comm.V2DLE dle;
            System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
            client.Connect("192.192.85.40", 1001);
            dle = new Comm.V2DLE("test", client.GetStream());
            dle.OnReceiveText += new Comm.OnTextPackageEventHandler(dev_OnReceiveText);
            dle.OnReport += new Comm.OnTextPackageEventHandler(dle_OnReport);
            //  dle.Send(new Comm.SendPackage(Comm.CmdType.CmdSet, Comm.CmdClass.A,0xffff,new byte[]{0x02,11,10,1}));
            Comm.SendPackage pkg;
            while (true)
            {
                try
                {
                    Console.ReadKey();

                    byte[] data = new byte[]
                    {
                      // 03, 1,60,1,10
                      0x0b
                    };
                    pkg = new Comm.SendPackage(Comm.CmdType.CmdQuery, Comm.CmdClass.A, 0xffff, data);
                    dle.Send(pkg);
                    Console.WriteLine(Comm.V2DLE.ToHexString(pkg.ReturnTextPackage.Text));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                }

            }
        }
示例#17
0
文件: Program.cs 项目: ufjl0683/sshmc
        static void get_Pilt_Param()
        {
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
            client.Connect("127.0.0.1", 1002);
            DeviceV2DLE dev = new DeviceV2DLE("PILT", client.GetStream());
               // dev.OnReceiveText += new OnTextPackageEventHandler(dev_OnReceiveText);
            byte[] data = new byte[] { 0x04, 0x20 };
            SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, 0xffff, data);

            dev.Send(pkg);
            Console.WriteLine(Comm.V2DLE.ToHexString(pkg.ReturnTextPackage.Text));
        }
示例#18
0
文件: Program.cs 项目: ufjl0683/sshmc
        static void get_pilt_level_degree()
        {
            Protocol protocol = new Protocol();
            protocol.Parse(System.IO.File.ReadAllText("PILT.txt"), false);
            System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
            client.Connect("127.0.0.1", 1002);
            DeviceV2DLE dev = new DeviceV2DLE("PILT", client.GetStream());
            dev.OnReceiveText += new OnTextPackageEventHandler(dev_OnReceiveText);
            //while (true)
            //{
                SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, 0xffff,
                    new byte[] { 0x04, 0x21 });
                dev.Send(pkg);

                Console.WriteLine(V2DLE.ToHexString(pkg.ReturnTextPackage.Text));
            //}
        }
示例#19
0
文件: SirfDLE.cs 项目: ufjl0683/sshmc
 public void Send(SendPackage[] pkg)
 {
     throw new NotImplementedException();
 }
示例#20
0
        //static void device_OnReceiveText(object sender, TextPackage txtObj)
        //{
        //    for (int i = 41; i < txtObj.Text.Length; i++)
        //    {
        //        if(txtObj.Text[i]!=curr_pkg.text[i])
        //            Console.WriteLine("not equal at text["+i+"]");
        //    }
        //    Console.WriteLine("equal!");
        //    //throw new Exception("The method or operation is not implemented.");
        //}
        //public static byte[] ToBig5Bytes(string text)
        //{
        //    byte[] b=System.Text.Encoding.Convert(System.Text.Encoding.Unicode,System.Text.Encoding.GetEncoding("big5"),System.Text.Encoding.Unicode.GetBytes(text));
        //    return b;
        //}
        public static Bitmap GetIconPic(I_DLE device, int address, byte icon_id, ref string desc)
        {
            //   RGS_SetBackgroundPic_frame frame = null;
            //System.IO.MemoryStream ms;
            byte[] cmdText = new byte[] { 0x04,0x5f,0x51, icon_id };
            int g_width, g_height;
            SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, address, cmdText);
            device.Send(pkg);
            if (pkg.result != CmdResult.ACK)
                throw new Exception("cmd error:" + pkg.result);

             //   byte frame_no = pkg.ReturnTextPackage.Text[3]; //0x98 frame_no
              //  ms = new System.IO.MemoryStream(1024 * 1024 * 3);

            //for (int i = 1; i <= frame_no; i++)
            //{
            //    cmdText = new byte[] { 0x98, mode, g_code_id, (byte)i };

            //    pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, address, cmdText);

            //    device.Send(pkg);

            //    frame = new RGS_SetBackgroundPic_frame(pkg.ReturnTextPackage);

            //    ms.Write(frame.g_pattern_color, 0, frame.g_pattern_color.Length);

            //}

            g_width = pkg.ReturnTextPackage.Text[12] * 256 + pkg.ReturnTextPackage.Text[13];
            g_height = pkg.ReturnTextPackage.Text[14] * 256 + pkg.ReturnTextPackage.Text[15];
            byte[] desc_code = new byte[32];
            Bitmap pic = new Bitmap(g_width, g_height);
            System.Array.Copy(pkg.ReturnTextPackage.Text, 16, desc_code, 0, desc_code.Length);
               // ms.Position = 0;
            desc = System.Text.Encoding.Unicode.GetString(desc_code);

            int inx = 16 + desc_code.Length;
            for (int y = 0; y < g_height; y++)
                for (int x = 0; x < g_width; x++)
                {
                    // int r, g, b;
                    //r = ms.ReadByte();
                    //g = ms.ReadByte();
                    //b = ms.ReadByte();
                    pic.SetPixel(x, y,Color.FromArgb( pkg.ReturnTextPackage.Text[inx],  pkg.ReturnTextPackage.Text[inx+1],  pkg.ReturnTextPackage.Text[inx+2]));
                    inx+=3;
                }

              //  ms.Dispose();
            return pic;
        }
示例#21
0
        public void Send(SendPackage[] pkgs)
        {
            for (int i = 0; i < pkgs.Length;i++ )
               {
               try
               {
                   if (i != pkgs.Length - 1)
                   {
                       pkgs[i].ETTU_EndCode = 0xf8;

                       pkgs[i].type = CmdType.CmdSet;
                   }
                   else
                   {

                       pkgs[i].ETTU_EndCode = 0xc7;
                       //pkgs[i].type = CmdType.CmdQuery;
                   }
                   Send(pkgs[i]);
               }
               catch { ;}
               }
        }
示例#22
0
        public static RGS_PolygonData RGS_getPolygons(I_DLE device, int address, byte g_code_id)
        {
            RGS_PolygonData polygonData;

            byte[] cmdtext = new byte[] {0x9b,g_code_id };

            SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, address, cmdtext);
            device.Send(pkg);
            if (pkg.result != CmdResult.ACK)
                throw new Exception(pkg.result.ToString());
            byte[] retText = pkg.ReturnTextPackage.Text;
            int inx = 1;
            if (retText[inx++] != g_code_id)
                throw new Exception(" g_code_id is wrong !");

            RGS_Ploygon []polygons=new RGS_Ploygon[retText[inx++]];
              //  sec_id = retText[inx++];
            for (int i = 0; i < polygons.Length; i++)
            {
                polygons[i] = new RGS_Ploygon(retText[inx++]); //no points
                for (int j = 0; j < polygons[i].points.Length; j++)
                {
                    polygons[i].points[j].X = retText[inx++] * 256;
                    polygons[i].points[j].X += retText[inx++];
                    polygons[i].points[j].Y = retText[inx++] * 256;
                    polygons[i].points[j].Y += retText[inx++];
                }
            }

            polygonData = new RGS_PolygonData(polygons);

            return polygonData;
        }
示例#23
0
文件: V2DLE.cs 项目: ufjl0683/sshmc
        void SendTask()
        {
            byte[]data=null;
            while (true)
            {
                if (!this.getEnable())
                {
                    Console.WriteLine(m_devName+",send task exit!");
                    return;
                }
                try
                {
                    lock (SendTaskNotifyObj)
                    {

                            if (SendQueueA.Count != 0)
                                while (SendQueueA.Count != 0)
                                {
                                    currentSendingPackage = (SendPackage)SendQueueA.Dequeue();
                                    if (!currentSendingPackage.IsDiscard)
                                        break;
                                    else
                                        currentSendingPackage = null;

                                }

                            else if (SendQueueB.Count != 0)

                                while (SendQueueB.Count != 0)
                                {
                                    currentSendingPackage = (SendPackage)SendQueueB.Dequeue();
                                    if (!currentSendingPackage.IsDiscard)
                                        break;
                                    else
                                        currentSendingPackage = null;
                                }
                            else if (SendQueueC.Count != 0)
                                while (SendQueueC.Count != 0)
                                {
                                    currentSendingPackage = (SendPackage)SendQueueC.Dequeue();
                                    if (!currentSendingPackage.IsDiscard)
                                        break;
                                    else
                                        currentSendingPackage = null;
                                }
                            else if (SendQueueD.Count != 0)
                                while (SendQueueD.Count != 0)
                                {
                                    currentSendingPackage = (SendPackage)SendQueueD.Dequeue();
                                    if (!currentSendingPackage.IsDiscard)
                                        break;
                                    else
                                        currentSendingPackage = null;
                                }
                            else if (TimeOutQueue.Count != 0)
                                while (TimeOutQueue.Count != 0)
                                {
                                    currentSendingPackage = (SendPackage)TimeOutQueue.Dequeue();
                                    if (!currentSendingPackage.IsDiscard)
                                        break;
                                    else
                                        currentSendingPackage = null;
                                }
                            else
                            {
                                //no Data To Send , and waiting

                                currentSendingPackage = null;
                                //GC.Collect();
                                //GC.WaitForPendingFinalizers();
                                System.Threading.Monitor.Wait(SendTaskNotifyObj);

                                continue;
                            }

                    }

                    try
                    {

                        //lock (CurrSendingproxyobj)
                        //{
                            if (currentSendingPackage == null) continue;

                            if (currentSendingPackage.sendCnt == 0)
                                data = PackData(currentSendingPackage.address, currentSendingPackage.text);
                            else
                                data = PackData(currentSendingPackage.address, currentSendingPackage.text, (byte)currentSendingPackage.Seq);

                            currentSendingPackage.Seq = data[2];
                            if (!this.getEnable())
                                return;

                            if (currentSendingPackage.sendCnt >= 3)   //discard package
                            {

                                lock (currentSendingPackage)
                                {
                                System.Threading.Monitor.Pulse(currentSendingPackage);
                                }
                                continue;
                            }
                            currentSendingPackage.sendCnt++;
                        //}

                        if (OnSendingPackage != null)
                            OnSendingPackage(this, currentSendingPackage);
                        lock (stream)
                        {

                            if (OnTextSending != null)
                                OnTextSending(this, ref data);
                            //---------------------------------------------------------------------------------
                            //if (currentSendingPackage.type == CmdType.CmdSet)
                            //    Console.WriteLine("<============Sendig Seq :" + currentSendingPackage.Seq);
                            //--------------------------------------------------------------------

                            stream.Write(data, 0, data.Length);
                            stream.Flush();
                            //for (int i = 0; i < data.Length; i++)
                            //{
                            //  stream.WriteByte(data[i]);
                            //stream.Flush();
                            // }

                            if (System.Threading.Monitor.Wait(stream, T0ms))
                            {
                                //No Time Out

                                //lock (CurrSendingproxyobj)
                                //{

                                if (this.currentSendingPackage.result == CmdResult.ACK)
                                {
                                    lock (currentSendingPackage)
                                    {
                                        System.Threading.Monitor.Pulse(currentSendingPackage);

                                    }
                                }
                                else
                                {

                                        TimeOutQueue.Enqueue(currentSendingPackage);//nak ,time out
                                        currentSendingPackage = null;

                                }
                                //}

                            }
                            else
                            {
                                //Time out

                                //lock (CurrSendingproxyobj)
                                //{

                                  //  if (currentSendingPackage.result == CmdResult.Unknown)
                                        currentSendingPackage.result = CmdResult.TimeOut;

                                        TimeOutQueue.Enqueue(currentSendingPackage);
                                        this.currentSendingPackage = null;

                                //}
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        if (this.OnCommError != null)
                            OnCommError(this, ex);
                        if (!this.getEnable())
                        {

                            Console.WriteLine(m_devName + "send task exit");
                            return;
                        }
                        //  Console.WriteLine(ex.Message);
                    }

                }
                catch
                {
                    ;
                }

                }//while
        }
示例#24
0
        public static void RGS_setPolygons(I_DLE device, int address, byte g_code_id, RGS_PolygonData polygonData)
        {
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            ms.WriteByte(0x9a);
            ms.WriteByte(g_code_id);
            ms.WriteByte((byte)polygonData.polygons.Length);//section_count

            for (byte section_id = 1; section_id <= polygonData.polygons.Length; section_id++)
            {
                ms.WriteByte(section_id);//section_id
                ms.WriteByte((byte)polygonData.polygons[section_id - 1].points.Length);//length
                for (int point_inx = 0; point_inx < polygonData.polygons[section_id - 1].points.Length; point_inx++)
                {
                    ms.WriteByte((byte)(polygonData.polygons[section_id - 1].points[point_inx].X / 256));
                    ms.WriteByte((byte)(polygonData.polygons[section_id - 1].points[point_inx].X % 256));
                    ms.WriteByte((byte)(polygonData.polygons[section_id - 1].points[point_inx].Y / 256));
                    ms.WriteByte((byte)(polygonData.polygons[section_id - 1].points[point_inx].Y % 256));
                }
            }

             byte[]text=new byte[ms.Position];
             System.Array.Copy(ms.GetBuffer(),text,ms.Position);

             SendPackage pkg = new SendPackage(CmdType.CmdSet, CmdClass.A, address, text);
             device.Send(pkg);
        }
示例#25
0
文件: CMSTC.cs 项目: ufjl0683/Center
        public override void TC_SetDisplayOff()
        {
            checkConntected();
              SendPackage pk = new SendPackage(CmdType.CmdSet, CmdClass.A, m_deviceid, new byte[] { 0x53 });
              this.m_device.Send(pk);
              if (pk.result != CmdResult.ACK)
              Console.WriteLine(m_deviceName + ":set display off" + pk.result);

             lock (currDispLockObj)
              {
                  if (currentDispalyDataset != null)

                      this.InvokeOutPutChangeEvent(this, "熄滅");

                  curr_icon_id = 0;
                curr_g_code_id = 0;
                curr_hor_space = 0;
                curr_mesg = "";

                  this.currentDispalyDataset = null;
              }
        }
示例#26
0
        public static void SetGenericDisplay(I_DLE device, int address, RGS_GenericDisplay_Data data)
        {
            System.IO.MemoryStream ms=new System.IO.MemoryStream();
            ms.WriteByte(0x9c);
            ms.WriteByte(data.mode);
            ms.WriteByte(data.graph_code_id);
            ms.WriteByte((byte)data.icons.Length);
            for (int i = 0; i < data.icons.Length; i++)
            {
                ms.WriteByte(data.icons[i].icon_code_id);

                ms.WriteByte((byte)(data.icons[i].x / 256));
                ms.WriteByte((byte)(data.icons[i].x % 256));

                ms.WriteByte((byte)(data.icons[i].y/256));
                ms.WriteByte((byte)(data.icons[i].y%256));
            }
            ms.WriteByte((byte)data.msgs.Length);
            for (int i = 0; i < data.msgs.Length; i++)
            {
                byte[] code_big5 = RemoteInterface.Utils.Util.StringToBig5Bytes(data.msgs[i].messgae);// Comm.RGS30_Extend.ToBig5Bytes(data.msgs[i].messgae);

                ms.WriteByte((byte)code_big5.Length);
                ms.Write(code_big5, 0, code_big5.Length);
                for (int j = 0; j < data.msgs[i].messgae.Length; j++)
                {
                    ms.WriteByte(data.msgs[i].forecolor[j].R);
                    ms.WriteByte(data.msgs[i].forecolor[j].G);
                    ms.WriteByte(data.msgs[i].forecolor[j].B);
                    ms.WriteByte(data.msgs[i].backcolor[j].R);
                    ms.WriteByte(data.msgs[i].backcolor[j].G);
                    ms.WriteByte(data.msgs[i].backcolor[j].B);

                }
                ms.WriteByte((byte)(data.msgs[i].x / 256));
                ms.WriteByte((byte)(data.msgs[i].x % 256));
                ms.WriteByte((byte)(data.msgs[i].y / 256));
                ms.WriteByte((byte)(data.msgs[i].y % 256));

            }

            ms.WriteByte((byte)data.sections.Length);
            for (int i = 0; i < data.sections.Length; i++)
            {
                ms.WriteByte(data.sections[i].section_id);
                ms.WriteByte(data.sections[i].status);
            }
            byte[]text=new byte[ms.Position];
            System.Array.Copy(ms.GetBuffer(),text,text.Length);
            SendPackage pkg = new SendPackage(CmdType.CmdSet, CmdClass.A, address, text);
            device.Send(pkg);
            if (pkg.result != CmdResult.ACK)
                throw new Exception(pkg.result.ToString());
        }
示例#27
0
文件: TCDLE30.cs 项目: ufjl0683/sshmc
        public void Send(SendPackage[] pkgs)
        {
            foreach (SendPackage pkg in pkgs)
            {
                try
                {

                    Send(pkg);
                }
                catch { ;}
            }
        }
示例#28
0
文件: TCBase.cs 项目: ufjl0683/Center
 public void Send(SendPackage pkg)
 {
     if (m_device == null) return;
     this.m_device.Send(pkg);
     if (pkg.result != CmdResult.ACK  && pkg.Cmd!=0xA5)
         throw new Exception(this.DeviceName+","+pkg.ToString());
 }
示例#29
0
文件: TCBase.cs 项目: ufjl0683/Center
        public virtual byte[] TC_GetHW_Status()
        {
            if (this.m_protocol.DeviceType == "ETTU" || this.m_protocol.DeviceType == "TEM")
                return new byte[] { 0, 0, 0, 0};

            SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.B, this.m_deviceid, new byte[] { 0x0B});
            this.m_device.Send(pkg);

            if (pkg.result != CmdResult.ACK)
                return null;
            // 2011-2-16 檢查是否狀態有變
            m_device_OnReport(this, pkg.ReturnTextPackage);

            return new byte[] { pkg.ReturnTextPackage.Text[1], pkg.ReturnTextPackage.Text[2], pkg.ReturnTextPackage.Text[3], pkg.ReturnTextPackage.Text[4] };
        }
示例#30
0
文件: Program.cs 项目: ufjl0683/sshmc
        //static void TiltConfig()
        //{
        //    ControllerConfigBase config = new ControllerConfigBase()
        //    {
        //        build_date = DateTime.Now,
        //        controller_id = 0x0000,
        //        device_type = "Tilt",
        //        listen_port = 1002,
        //        version_no = 1 ,
        //        sensors = new TiltSensorConfig[]
        //        {
        //          new TiltSensorConfig()
        //          {
        //               com_type="COM",
        //                device_name="TILE1",
        //                 id=0,
        //                  execution_mode=0,
        //                   port_baud=115200,
        //                    ip_comport="COM7",
        //                     sensor_values=new SensorValueConfigBase[]{
        //                      new SensorValueConfigBase()
        //                      {
        //                           coefficient=1,
        //                            offset=0,
        //                             desc="X",
        //                              id=0,
        //                               rules=new SensorValueRuleConfigBase[]
        //                               {
        //                                  new SensorValueRuleConfigBase()
        //                                  {
        //                                       level=1,
        //                                        lower_limit=0,
        //                                         upper_limit=0,
        //                                          hour_ma=0,
        //                                           left_hour_ma1=0,
        //                                            left_hour_ma2 =0,
        //                                             right_hour_ma1=0,
        //                                              right_hour_ma2=0
        //                                  },
        //                                   new SensorValueRuleConfigBase()
        //                                  {
        //                                       level=2,
        //                                        lower_limit=0,
        //                                         upper_limit=0,
        //                                          hour_ma=0,
        //                                           left_hour_ma1=0,
        //                                            left_hour_ma2 =0,
        //                                             right_hour_ma1=0,
        //                                              right_hour_ma2=0
        //                                  },
        //                                                new SensorValueRuleConfigBase()
        //                                  {
        //                                       level=3,
        //                                        lower_limit=0,
        //                                         upper_limit=0,
        //                                          hour_ma=0,
        //                                           left_hour_ma1=0,
        //                                            left_hour_ma2 =0,
        //                                             right_hour_ma1=0,
        //                                              right_hour_ma2=0
        //                                  }
        //                               }
        //                      },
        //                       new SensorValueConfigBase()
        //                      {
        //                           coefficient=1,
        //                            offset=0,
        //                             desc="Y",
        //                              id=1,
        //                               rules=new SensorValueRuleConfigBase[]
        //                               {
        //                                  new SensorValueRuleConfigBase()
        //                                  {
        //                                       level=1,
        //                                        lower_limit=0,
        //                                         upper_limit=0,
        //                                          hour_ma=0,
        //                                           left_hour_ma1=0,
        //                                            left_hour_ma2 =0,
        //                                             right_hour_ma1=0,
        //                                              right_hour_ma2=0
        //                                  },
        //                                   new SensorValueRuleConfigBase()
        //                                  {
        //                                       level=2,
        //                                        lower_limit=0,
        //                                         upper_limit=0,
        //                                          hour_ma=0,
        //                                           left_hour_ma1=0,
        //                                            left_hour_ma2 =0,
        //                                             right_hour_ma1=0,
        //                                              right_hour_ma2=0
        //                                  },
        //                                                new SensorValueRuleConfigBase()
        //                                  {
        //                                       level=3,
        //                                        lower_limit=0,
        //                                         upper_limit=0,
        //                                          hour_ma=0,
        //                                           left_hour_ma1=0,
        //                                            left_hour_ma2 =0,
        //                                             right_hour_ma1=0,
        //                                              right_hour_ma2=0
        //                                  }
        //                               }
        //                      }
        //                     }
        //          }
        //        }
        //    };
        //    System.Xml.Serialization.XmlSerializer ser = new XmlSerializer(typeof(ControllerConfigBase));
        //    System.IO.MemoryStream ms=new System.IO.MemoryStream();
        //    ser.Serialize(ms, config);
        //    byte[] data =new byte[ms.Length+3];
        //    data[0]=0x20;
        //    data[1]=(byte)(ms.Length/256);
        //    data[2]=(byte)(ms.Length%256);
        //    System.Array.Copy(ms.GetBuffer(),0,data,3,ms.Length);
        //    Comm.SendPackage pkg = new SendPackage(CmdType.CmdSet, CmdClass.A,0xffff, data);
        //   System.Net.Sockets.TcpClient client=new System.Net.Sockets.TcpClient();
        //    client.Connect("127.0.0.1",1002);
        //    DeviceV2DLE dle = new DeviceV2DLE("tile", client.GetStream());
        //    dle.Send(pkg);
        //}
        static void GetPeriodData()
        {
            Protocol protocol = new Protocol();
            protocol.Parse(System.IO.File.ReadAllText("PILT.txt"), false);
            System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
            client.Connect("127.0.0.1", 1001);
            DeviceV2DLE dev = new DeviceV2DLE("PILT", client.GetStream());
            dev.OnReceiveText += new OnTextPackageEventHandler(dev_OnReceiveText);
            //while (true)
            //{
            for (byte hour = 0; hour < 23; hour++)
            {
                for (byte min = 0; min < 60; min++)
                {
                    SendPackage pkg = new SendPackage(CmdType.CmdQuery, CmdClass.A, 0xffff,
                    new byte[] { 0x28, 12, hour, min });
                    dev.Send(pkg);

                    if (pkg.ReturnTextPackage != null)
                    {
                        System.Data.DataSet ds = protocol.GetReturnDsByTextPackage(pkg.ReturnTextPackage);
                        if (Convert.ToInt32(ds.Tables[0].Rows[0]["sensor_cnt"]) == 0)
                        {
                            Console.WriteLine("Not Found");
                        }
                        else
                            Console.WriteLine(V2DLE.ToHexString(pkg.ReturnTextPackage.Text));
                    }

                }

            }
        }