예제 #1
0
        public override List <LaserBasePackage> Encode()
        {
            List <LaserBasePackage> bps = base.Encode();
            LaserBasePackage        bp  = new LaserBasePackage(0x8F, 0x04, new byte[] { 0x04, 0x00 });

            bps.Add(bp);
            return(bps);
        }
예제 #2
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC03Response c03Response = new LaserC03Response();

            c03Response.DtTime        = DateTime.Now;
            c03Response.OriginalBytes = obytes;
            //aa*128 + bb = T 温度数字量 (data) T = data / 81.72 (℃)
            c03Response.Temperature = (obytes.Data[1] * 128 + obytes.Data[2]) / 81.72;
            return(CreateOneList(c03Response));
        }
예제 #3
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC0BResponse c0BResponse = new LaserC0BResponse();

            c0BResponse.DtTime        = DateTime.Now;
            c0BResponse.OriginalBytes = obytes;
            //cc*128 + dd = T 红光激光器电流设定值系数
            c0BResponse.COF = obytes.Data[3] * 128 + obytes.Data[4];
            return(CreateOneList(c0BResponse));
        }
예제 #4
0
        public override List <LaserBasePackage> Encode()
        {
            List <LaserBasePackage> bps = base.Encode();
            LaserBasePackage        bp1 = new LaserBasePackage(0x8F, 0x74, new byte[] { 0x74, 0x00 });

            bps.Add(bp1);

            LaserBasePackage bp2 = new LaserBasePackage(0x80, 0x74, new byte[] { 0x00, RedLight, 0x00, 0x00, 0x00, 0x00 });

            bps.Add(bp2);
            return(bps);
        }
예제 #5
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC08Response c08Response = new LaserC08Response();

            c08Response.DtTime        = DateTime.Now;
            c08Response.OriginalBytes = obytes;
            //cc*128 + dd = T 红光激光器电流上限数字量 (data) T = (data / 4096) * 2500 (MA)
            c08Response.Current = (obytes.Data[3] * 128 + obytes.Data[4]) * 100 / LD_COF;
            return(CreateOneList(c08Response));
        }
예제 #6
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC05Response c05Response = new LaserC05Response();

            c05Response.DtTime        = DateTime.Now;
            c05Response.OriginalBytes = obytes;
            //aa*128 + bb 脉冲宽度 T = data * 10 (单位ns)
            c05Response.PulseWidth = (obytes.Data[1] * 128 + obytes.Data[2]) * 10;
            //cc*128 + dd 重复频率 T = data * 0.1 (单位KHZ)
            c05Response.RepeatFrequency = (obytes.Data[3] * 128 + obytes.Data[4]) * 0.1;
            return(CreateOneList(c05Response));
        }
예제 #7
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC07Response c07Response = new LaserC07Response();

            c07Response.DtTime        = DateTime.Now;
            c07Response.OriginalBytes = obytes;
            //aa*128 + bb 最小脉冲宽度 T = data * 0.1 (单位 KHZ)
            c07Response.MinimumRepeatFrequency = (obytes.Data[1] * 128 + obytes.Data[2]) * 0.1;
            //cc*128 + dd 最大脉冲宽度 T = data * 0.1 (单位 KHZ)
            c07Response.MaxmumRepeatFrequency = (obytes.Data[3] * 128 + obytes.Data[4]) * 0.1;
            return(CreateOneList(c07Response));
        }
예제 #8
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC06Response c06Response = new LaserC06Response();

            c06Response.DtTime        = DateTime.Now;
            c06Response.OriginalBytes = obytes;
            //aa*128 + bb 最小脉冲宽度 T = data * 10 (单位ns)
            c06Response.MinimumPulseWidth = (obytes.Data[1] * 128 + obytes.Data[2]) * 10;
            //cc*128 + dd 最大脉冲宽度 T = data * 10 (单位ns)
            c06Response.MaxmumPulseWidth = (obytes.Data[3] * 128 + obytes.Data[4]) * 10;
            return(CreateOneList(c06Response));
        }
예제 #9
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC01Response c01Response = new LaserC01Response();

            c01Response.DtTime        = DateTime.Now;
            c01Response.OriginalBytes = obytes;
            //aa*128 + bb
            c01Response.Flag = obytes.Data[1] * 128 + obytes.Data[2];
            //cc*128 + dd = T 设备温度 = (T / 4096 *2500) / 10 (℃)
            c01Response.Temperature = ((obytes.Data[3] * 128 + obytes.Data[4]) / 4096 * 2500) / 10;
            return(CreateOneList(c01Response));
        }
예제 #10
0
        public override List <LaserBasePackage> Encode()
        {
            List <LaserBasePackage> bps = base.Encode();
            LaserBasePackage        bp1 = new LaserBasePackage(0x8F, 0x75, new byte[] { 0x75, 0x00 });

            bps.Add(bp1);

            int              digitalValue = (Currrent * ld2_cof) / 100;
            byte             aa           = (byte)(digitalValue / 128);
            byte             bb           = (byte)(digitalValue % 128);
            LaserBasePackage bp2          = new LaserBasePackage(0x80, 0x75, new byte[] { aa, bb, 0x00, 0x00, 0x00, 0x00 });

            bps.Add(bp2);
            return(bps);
        }
예제 #11
0
 public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
 {
     base.Decode(bp, obytes);
     if (CheckResponse(obytes.Data))
     {
         LaserC74Response c74Response = new LaserC74Response();
         c74Response.DtTime        = DateTime.Now;
         c74Response.OriginalBytes = obytes;
         return(CreateOneList(c74Response));
     }
     else
     {
         return(null);
     }
 }
예제 #12
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC00Response c00Response = new LaserC00Response();

            c00Response.DtTime        = DateTime.Now;
            c00Response.OriginalBytes = obytes;
            c00Response.VersionNumber = obytes.Data[1];
            c00Response.Hour          = obytes.Data[2];
            c00Response.Month         = obytes.Data[3];
            c00Response.Second        = obytes.Data[4];

            return(CreateOneList(c00Response));
        }
예제 #13
0
        public override List <LaserBasePackage> Encode()
        {
            List <LaserBasePackage> bps = base.Encode();
            LaserBasePackage        bp1 = new LaserBasePackage(0x8F, 0x73, new byte[] { 0x73, 0x00 });

            bps.Add(bp1);

            int              digitalValue = Frequency / interval;
            byte             aa           = (byte)(digitalValue / 128);
            byte             bb           = (byte)(digitalValue % 128);
            LaserBasePackage bp2          = new LaserBasePackage(0x80, 0x73, new byte[] { aa, bb, 0x00, 0x00, 0x00, 0x00 });

            bps.Add(bp2);
            return(bps);
        }
예제 #14
0
        public override List <LaserBasePackage> Encode()
        {
            List <LaserBasePackage> bps = base.Encode();
            LaserBasePackage        bp1 = new LaserBasePackage(0x8F, 0x72, new byte[] { 0x72, 0x00 });

            bps.Add(bp1);

            double           digitalValue = PulseWidth * 10 /*/ interval*/;
            byte             aa           = (byte)(digitalValue / 128);
            byte             bb           = (byte)(digitalValue % 128);
            LaserBasePackage bp2          = new LaserBasePackage(0x80, 0x72, new byte[] { aa, bb, 0x00, 0x00, 0x00, 0x00 });

            bps.Add(bp2);
            return(bps);
        }
예제 #15
0
        public override List <LaserBaseResponse> Decode(LaserBasePackage bp, OriginalBytes obytes)
        {
            base.Decode(bp, obytes);

            LaserC0CResponse c0CResponse = new LaserC0CResponse();

            c0CResponse.DtTime        = DateTime.Now;
            c0CResponse.OriginalBytes = obytes;

            c0CResponse.SN0    = obytes.Data[1];
            c0CResponse.SN1    = obytes.Data[2];
            c0CResponse.SN2    = obytes.Data[3];
            c0CResponse.SN3    = obytes.Data[4];
            c0CResponse.Serial = string.Format("{0}{1}{2}{3}", GetSN0String(c0CResponse.SN0), c0CResponse.SN1, c0CResponse.SN2, c0CResponse.SN3);
            return(CreateOneList(c0CResponse));
        }