Example #1
0
        string TubeNum(int _command, out int _TubeNum)
        {
            _TubeNum = 0;
            if (!comPort.Write(new PacketOut(IsLittleEndian)
            {
                command = _command
            }.Serial))
            {
                return("Не смогли записать");
            }
            PacketIn pIn = new PacketIn(IsLittleEndian);

            pIn.Serial = comPort.ReadSome(PacketIn.AdditionalSize + 9);
            if (pIn.State != Packet.EState.Ok)
            {
                return(pIn.SState);
            }
            if (pIn.command != _command)
            {
                return("Не та команда в ответе");
            }
            if (pIn.abonent != 2)
            {
                return("Не тот абонет в ответе");
            }
            _TubeNum = RByteConverter.ByteToInt(IsLittleEndian, pIn.data, 2, 3);
            return("Ok");
        }
Example #2
0
        public string SendResultTest()
        {
            int size = 1024;

            byte[] data = new byte[size];
            RByteConverter.IntToByte(IsLittleEndian, 123456, data, 0, 3);
            int x = 3;

            data[x++] = Convert.ToByte(Classer.ToIntACS(EClass.Class1));
            data[x++] = 0;
            data[x++] = Convert.ToByte(10);
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = Convert.ToByte(50);
            data[x++] = Convert.ToByte(60);
            data[x++] = Convert.ToByte(51);
            data[x++] = Convert.ToByte(61);
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = Convert.ToByte(75);
            data[x++] = Convert.ToByte(70);
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = Convert.ToByte(1);
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = 0;
            for (int i = 0; i < 130; i++)
            {
                data[x++] = (i >= 10) ? Convert.ToByte(128) : Convert.ToByte(80);
            }
            for (int i = 0; i < 130; i++)
            {
                data[x++] = (i >= 10) ? Convert.ToByte(128) : Convert.ToByte(15);
            }
            for (int i = 0; i < 130; i++)
            {
                data[x++] = (i >= 10) ? Convert.ToByte(128) : Convert.ToByte(17);
            }
            for (int i = 0; i < 130; i++)
            {
                data[x++] = 128;
            }
            Array.Resize(ref data, x);
            PacketOut pOut = new PacketOut(IsLittleEndian)
            {
                command = 5
            };

            pOut.data = data;
            if (!comPort.Write(pOut.Serial))
            {
                return("Не смогли записать");
            }
            return("Ok");
        }
Example #3
0
 public void AddCRC(byte[] _data)
 {
     RByteConverter.UIntToByte(IsLittleEndian, CRC(_data, _data.Length - 2), _data, _data.Length - 2, 2);
 }
Example #4
0
        public string SendResult(Result _Result)
        {
            if (_Result == null)
            {
                return(SendResultTest());
            }
            int size = 1024;

            byte[] data = new byte[size];
            RByteConverter.IntToByte(IsLittleEndian, _Result.IdTube, data, 0, 3);
            int x = 3;

            data[x++] = Convert.ToByte(Classer.ToIntACS(_Result.Sum.RClass));
            data[x++] = 0;
            data[x++] = Convert.ToByte(_Result.Sum.MClass.Count);
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = Convert.ToByte(Math.Round(ParAll.CTS.Cross.Border1));
            data[x++] = Convert.ToByte(Math.Round(ParAll.CTS.Cross.Border2));
            data[x++] = Convert.ToByte(Math.Round(ParAll.CTS.Line.Border1));
            data[x++] = Convert.ToByte(Math.Round(ParAll.CTS.Line.Border2));
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = Convert.ToByte(Math.Round(_Result.Thick.Border1 * 10));
            data[x++] = Convert.ToByte(Math.Round(_Result.Thick.Border2 * 10));
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = Convert.ToByte(SGToInt(_Result.SG.sgState.Group));
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = 0;
            data[x++] = 0;
            for (int i = 0; i < 130; i++)
            {
                data[x++] = (i >= _Result.Thick.MZone.Count) ? Convert.ToByte(128) : GetLevel(_Result.Thick.MZone[i].RClass, _Result.Thick.MZone[i].Level);
            }
            for (int i = 0; i < 130; i++)
            {
                data[x++] = (i >= _Result.Cross.MZone.Count) ? Convert.ToByte(128) : GetLevel(_Result.Cross.MZone[i].Class, _Result.Cross.MZone[i].GetMaxLevel());
            }
            for (int i = 0; i < 130; i++)
            {
                data[x++] = (i >= _Result.Line.MZone.Count) ? Convert.ToByte(128) : GetLevel(_Result.Line.MZone[i].Class, _Result.Line.MZone[i].GetMaxLevel());
            }
            for (int i = 0; i < 130; i++)
            {
                data[x++] = 128;
            }
            Array.Resize(ref data, x);
            PacketOut pOut = new PacketOut(IsLittleEndian)
            {
                command = 5
            };

            pOut.data = data;
            if (!comPort.Write(pOut.Serial))
            {
                return("Не смогли записать");
            }
            return("Ok");
        }