Esempio n. 1
0
 public void RefreshValues(ReadMap map, ushort[] modbusvalues)
 {
     //TODO : May performance better
     for (int i = 0; i < modbusvalues.Length; i++)
     {
         ushort address = (ushort)(i + map.StartAddress);
         if (!InputRegisterValues.ContainsKey(address))
         {
             InputRegisterValues.Add(address, modbusvalues[i]);
         }
         else
         {
             InputRegisterValues[address] = modbusvalues[i];
         }
     }
     foreach (var item in Values)
     {
         if (item is UshortTag)
         {
             (item as UshortTag).SetData(InputRegisterValues);
         }
         if (item is FloatTag)
         {
             (item as FloatTag).SetData(InputRegisterValues);
         }
         if (item is UintTag)
         {
             (item as UintTag).SetData(InputRegisterValues);
         }
     }
 }
Esempio n. 2
0
 /// <summary>
 ///  Find if positions occur simultaneously of read in contig,
 ///  if contig is traced from left direction.
 /// </summary>
 /// <param name="map">Map from previous position of read.</param>
 /// <param name="readPosition">Position of read.</param>
 /// <param name="contigPosition">Position of contig.</param>
 /// <param name="length">Length of kmer.</param>
 /// <returns>True if continuous position of reads in contig.</returns>
 private static bool IsContinousLeft(
     ReadMap map,
     int readPosition,
     int contigPosition,
     int length)
 {
     return((map.Length - length + map.StartPositionOfContig + 1) == contigPosition &&
            (map.StartPositionOfRead - 1) == readPosition);
 }
Esempio n. 3
0
        /// <summary>
        /// Merge continuous positions of a read in kmer indexes.
        /// </summary>
        /// <param name="kmer">Position of contig kmer.</param>
        /// <param name="readMaps">Alignment between read and contig.</param>
        /// <param name="position">Position of kmer in read.</param>
        /// <param name="kmerLength">Length of kmer.</param>
        private static void FindContinuous(
            KmerIndexer kmer,
            IList <ReadMap> readMaps,
            int position,
            int kmerLength)
        {
            // Create new object ReadInformation as read is encountered first time.
            if (readMaps.Count == 0)
            {
                foreach (int pos in kmer.Positions)
                {
                    ReadMap readMap = new ReadMap();
                    readMap.StartPositionOfContig = position;
                    readMap.StartPositionOfRead   = pos;
                    readMap.Length = kmerLength;
                    readMaps.Add(readMap);
                }
            }
            else
            {
                // Merge current kmer node with previous kmer node of DeBruijn Graph,
                // if they are continuous in either right or left traversal of graph.
                bool isMerged = false;
                foreach (int pos in kmer.Positions)
                {
                    foreach (ReadMap read in readMaps)
                    {
                        if (IsContinousRight(read, pos, position, kmerLength) ||
                            IsContinousLeft(read, pos, position, kmerLength))
                        {
                            read.Length++;
                            if (read.StartPositionOfRead > pos)
                            {
                                read.StartPositionOfRead = pos;
                            }

                            isMerged = true;
                            break;
                        }
                    }

                    // If not continuous a new object ReadMap is created to store new overlap.
                    if (isMerged == false)
                    {
                        ReadMap readmap = new ReadMap();
                        readmap.StartPositionOfContig = position;
                        readmap.StartPositionOfRead   = pos;
                        readmap.Length = kmerLength;
                        readMaps.Add(readmap);
                    }
                }
            }
        }
Esempio n. 4
0
        private void InitializeMap()
        {
            ReadMap readMap = new ReadMap();

            readMap.mapFile = VisualizerGlobal.MapInfo.FileName;
            readMap.Load();

            MapImage.Image = VisualizerGlobal.ClippingMap;

            Canvas.Parent = MapImage;
            Canvas.BringToFront();

            MapDetailsLabel.Text =
                $"Map Name: {VisualizerGlobal.MapInfo.Title}   Width: {VisualizerGlobal.ClippingMap.Width}   Height: {VisualizerGlobal.ClippingMap.Height}";
        }
Esempio n. 5
0
 public Program(string mapFileName)
 {
     m_rm = new ReadMap(mapFileName);
     m_rm.loadRegion();
     Box box;
     box.xmin = 121.47070008731318;
     box.xmax = 121.49708348652267;
     box.ymin = 31.229476036434761;
     box.ymax = 31.243319909952547;
     MapRegion region = m_rm.getSmallRegion(box);
     Console.WriteLine(GeneralTool.distanceInMeter(box.xmin, box.ymin, box.xmin, box.ymax));
     Console.WriteLine(GeneralTool.distanceInMeter(box.xmin, box.ymin, box.xmax, box.ymin));
     m_genRoute = new GenRandRoute(region);
     m_estRoute = new EstimateRoute(region);
 }
Esempio n. 6
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="mapPt">经纬度基准点坐标</param>
 /// <param name="screenSize">屏幕大小</param>
 /// <param name="scale">缩放大小,1为放大1e4</param>
 public MapTransfer(MapPoint mapPt,PointF screenSize,double scale)
 {
     m_mapPt = mapPt;
     m_screenSize = screenSize;
     m_scale = scale;
     m_rm = new ReadMap(Properties.Resources.MapFileName);
     m_rm.loadRegion();
     Box box;
     box.xmin = m_mapPt.x;
     box.ymin = m_mapPt.y;
     box.xmax = m_mapPt.x + ((double)m_screenSize.X) / (m_scale * Properties.Settings.Default.ScaleFactor);
     box.ymax = m_mapPt.y + ((double)m_screenSize.Y) / (m_scale * Properties.Settings.Default.ScaleFactor);
     m_currentRegion = m_rm.getSmallRegion(box);
     m_bRebuildRegion = true;
     m_estOutRoute = new EstimateRoute(m_rm.region);
 }
Esempio n. 7
0
        /// <summary>
        /// 寻路
        /// </summary>
        /// <param name="position"></param>
        /// <param name="to"></param>
        /// <returns></returns>
        protected ActionResult <List <Point> > FindPath(PositionInfo position, Point to)
        {
            ReadMap readMap = new ReadMap();

            readMap.mapFile = @"F:\Program Files\ShengquGames\Legend of mir\Map\3.map";
            readMap.Load();

            MirContext.ReadMap = readMap;

            AutoRoute autoRoute = new AutoRoute((int[, ])readMap.Maze.Clone());

            var tempPoints = autoRoute.FindeWay(to, position.Point);

            return(new ActionResult <List <Point> >(tempPoints));
            //PathGrid pathGrid = new PathGrid(MirContext.ReadMap.Width, MirContext.ReadMap.Height, MirContext.Maze(position.MapInfo));
            //return new ActionResult<List<Point>>(pathGrid.FindPath(position.Point, to));
        }
Esempio n. 8
0
        public void CalculteParseAddresses()
        {
            if (addresses.Count == 0)
            {
                return;
            }
            ushort count     = (ushort)((addresses.Max() - addresses.Min()) + 1);
            ushort poolCount = (ushort)(((count - 1) / ParseSize) + 1);

            ReadMap[] maps = new ReadMap[poolCount];
            for (int i = 0; i < poolCount; i++)
            {
                maps[i].StartAddress = (ushort)(addresses.Min() + (i * ParseSize));
                maps[i].Range        = ParseSize;
            }
            maps[poolCount - 1].Range = (ushort)(count - ((poolCount - 1) * ParseSize));
            Maps = maps;
        }
Esempio n. 9
0
        private void InitializeMap()
        {
            ReadMap readMap = new ReadMap
            {
                mapFile = VisualizerGlobal.MapInfo.FileName
            };

            readMap.Load();

            MapImage.Image = VisualizerGlobal.ClippingMap;

            Canvas.Parent = MapImage;
            Canvas.BringToFront();

            MapDetailsLabel.Text = string.Format("Map Name: {0}   Width: {1}   Height: {2}",
                                                 VisualizerGlobal.MapInfo.Title,
                                                 VisualizerGlobal.ClippingMap.Width,
                                                 VisualizerGlobal.ClippingMap.Height);
        }
Esempio n. 10
0
 public void RefreshValues(ReadMap map, bool[] modbusvalues)
 {
     //TODO : May performance better
     for (int i = 0; i < modbusvalues.Length; i++)
     {
         ushort address = (ushort)(i + map.StartAddress);
         if (!CoilValues.ContainsKey(address))
         {
             CoilValues.Add(address, modbusvalues[i]);
         }
         else
         {
             CoilValues[address] = modbusvalues[i];
         }
     }
     foreach (var item in Values)
     {
         BoolTag tag = item as BoolTag;
         tag.SetData(CoilValues);
     }
 }
Esempio n. 11
0
 public Program()
 {
     ReadMap rm = new ReadMap(Resources.MapFileName);
     rm.loadRegion();
     m_mapRegion = rm.region;
 }
Esempio n. 12
0
        public override bool CustomInit(DeviceInfo deviceInfo)
        {
            if (deviceInfo == null)
            {
                return(false);
            }

            try
            {
                device = deviceInfo;
                LoadSettings();
                if (protocol == "modbustcp")
                {
                    modbusCommand = new ModbusTCP(ipAddress, port);
                }

                if (protocol == "modbusrtu")
                {
                    modbusCommand = new ModbusRTU(portName, baudRate, parity, dataBits, stopBits);
                }

                if (protocol == "modbusascii")
                {
                    modbusCommand = new ModbusASCII(portName, baudRate, parity, dataBits, stopBits);
                }

                modbusCommand.OnMessage += modbusCommand_OnMessage;

                readInputsReadMap = new ReadInputs(slaveId, modbusCommand, device, maxNumberReadRegistersAtTime,
                                                   registerShift);
                readInputsReadMap.OnMessage += OnNewMessage;
                readInputsReadMap.InitMap();

                readCoilsReadMap = new ReadCoils(slaveId, modbusCommand, device, maxNumberReadRegistersAtTime,
                                                 registerShift);
                readCoilsReadMap.OnMessage += OnNewMessage;
                readCoilsReadMap.InitMap();

                readInputRegisters = new ReadInputRegisters(slaveId, modbusCommand, device, maxNumberReadRegistersAtTime,
                                                            registerShift);
                readInputRegisters.OnMessage += OnNewMessage;
                readInputRegisters.InitMap();

                readHoldingRegisters = new ReadHoldingRegisters(slaveId, modbusCommand, device, maxNumberReadRegistersAtTime,
                                                                registerShift);
                readHoldingRegisters.OnMessage += OnNewMessage;
                readHoldingRegisters.InitMap();

                writeSingleCoil            = new WriteSingleCoil(slaveId, modbusCommand, device, Locker);
                writeSingleCoil.OnMessage += OnNewMessage;
                writeSingleCoil.InitMap();

                writeSingleRegister            = new WriteSingleRegister(slaveId, modbusCommand, device, Locker);
                writeSingleRegister.OnMessage += OnNewMessage;
                writeSingleRegister.InitMap();

                writeMultipleCoils            = new WriteMultipleCoils(slaveId, modbusCommand, device, Locker);
                writeMultipleCoils.OnMessage += OnNewMessage;
                writeMultipleCoils.InitMap();

                writeMultipleRegisters            = new WriteMultipleRegisters(slaveId, modbusCommand, device, Locker);
                writeMultipleRegisters.OnMessage += OnNewMessage;
                writeMultipleRegisters.InitMap();

                new PlcThread(CustomWorkThread, null, "ModbusMasterIO_CustomWorkThread").Start();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Esempio n. 13
0
 public ParticleFilter(ReadMap rm)
 {
     m_rm = rm;
 }