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); } } }
/// <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); }
/// <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); } } } }
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}"; }
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); }
/// <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); }
/// <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)); }
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; }
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); }
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); } }
public Program() { ReadMap rm = new ReadMap(Resources.MapFileName); rm.loadRegion(); m_mapRegion = rm.region; }
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); } }
public ParticleFilter(ReadMap rm) { m_rm = rm; }