protected RegnumProvider(FrameProvider frameProvider, MouseProvider mouseProvider, ILogger log) { this._frameProvider = frameProvider; this._mouseProvider = mouseProvider; this._log = log; this._frameEventHandlers = new Dictionary <EventType, List <IFrameEventHandler> >(); }
public void TryParse_ShouldReturnFalse_OnIncompleteMetadata() { var frame = FrameProvider.GetRandom(1, 5); var reader = new SequenceReader <byte>(frame.Slice(0, 5)); var couldParse = _parser.TryParse(ref reader, out _); Assert.False(couldParse); }
public void GetFramesOf_ShouldParseAll_OnValidFrame(int messageId, params int[] framesLength) { var framesBuffer = FrameProvider.GetMultiplesRandom(messageId, framesLength); var frames = _decoder.GetFramesOf(new SequenceHolder(framesBuffer)).ToArray(); Assert.Equal(framesLength.Length, frames.Length); Assert.All(frames, f => Assert.Equal(f.Metadata.GetMessageId(), messageId)); Assert.All(framesLength, len => Assert.Contains(frames, f => f.Metadata.Length == len)); }
public void GetFramesOf_ShouldBreak_OnOneAndHalfFrame() { var buffer = FrameProvider.GetMultiplesRandom(5, 4, 6).Slice(0, 14); var holder = new SequenceHolder(buffer); var frames = _decoder.GetFramesOf(holder) .ToArray(); Assert.Single(frames); Assert.Equal(buffer.GetPosition(10), holder.Buffer.Start); }
public void TryParse_ShouldReturnTrue_OnValidFrame(short messageId, int length) { var frame = FrameProvider.GetRandom(messageId, length); var reader = new SequenceReader <byte>(frame); var couldParse = _parser.TryParse(ref reader, out var metadata); Assert.True(couldParse); Assert.NotNull(metadata); Assert.Equal(metadata.Length, length); Assert.Equal(metadata.GetMessageId(), messageId); }
public void Write_ShouldSerializeCorrectly(short messageId, int length) { var metadata = FrameProvider.GetRandom(messageId, length) .Slice(0, 6).ToArray(); var meta = new MessageMetadata(messageId, length); var writtenMetadata = new byte[_parser.GetLength(meta)]; _parser.Write(writtenMetadata, meta); Assert.Equal(metadata, writtenMetadata); }
public CommucationFacade(ICommPresenter presenter) { _presenter = presenter; _myTcpClient = new BitkyTcpClient(this); _myPortClient = new SerialPortClient(this); _controlFrameBuilder = new ControlFrameBuilder(); _frameProvider = new FrameProvider(); //子帧收集计时器 _timerFrameCollect = new Timer(PresetInfo.FrameReceiveTimeout) { AutoReset = false }; _timerFrameCollect.Elapsed += FrameCollect; }
public async Task WriteFrameAsync_ShouldSerializeCorrectly(short messageId, int length) { var encodedFrame = FrameProvider.GetRandom(messageId, length); var metadata = new MessageMetadata(messageId, length); var frame = new Frame(encodedFrame.Slice( _encoder.GetLength(metadata)), metadata); var pipe = new Pipe(); var writeResult = await _encoder.WriteFrameAsync(pipe.Writer, frame); Assert.True(!writeResult.IsCompleted && !writeResult.IsCanceled); pipe.Reader.TryRead(out var result); var expected = encodedFrame.ToArray(); var actual = result.Buffer.ToArray(); Assert.Equal(expected, actual); }
public async Task ReadFramesAsync_ShouldBreak_OnReaderCompletedAtLast(short messageId, params int[] framesLength) { var random = new Random(); var(decoder, pipe) = CreateConsumer(); var enumerator = decoder.ReadFramesAsync().GetAsyncEnumerator(); foreach (var len in framesLength) { var meta = new MessageMetadata(messageId, len); var encoded = FrameProvider.GetRandomAsBuffer(messageId, len, random); await pipe.Writer.WriteAsync(encoded).ConfigureAwait(false); Assert.True(await enumerator.MoveNextAsync()); Assert.Equal(meta, enumerator.Current.Metadata); Assert.Equal(encoded.Slice(_parser.GetLength(meta)).ToArray(), enumerator.Current.Payload.ToArray()); } pipe.Reader.Complete(); Assert.False(await enumerator.MoveNextAsync()); // will break since tryAdvance returns false whenever the pipe is completed (by throwing an InvalidOperationException) }
static void Main(string[] args) { FrameProvider frameProvider = new FrameProvider(); Assembler assembler = new Assembler(); Thread provider = new Thread(frameProvider.Start); provider.Start(); for (int i = 0; i < 5; i++) { new Thread(assembler.Start).Start(); } Thread.Sleep(10000); ListManager.StopTrigger = true; Console.WriteLine(ListManager.GetInfo()); Console.ReadLine(); Console.ReadLine(); }
public PiedraProvider(FrameProvider frameProvider, MouseProvider mouseProvider, ILogger log) : base(frameProvider, mouseProvider, log) { }
public ObjetivoProvider(FrameProvider frameProvider, MouseProvider mouseProvider, ILogger log) : base(frameProvider, mouseProvider, log) { }
public AventuraProvider(FrameProvider frameProvider, MouseProvider mouseProvider, ILogger log) : base(frameProvider, mouseProvider, log) { this._posicionCoordenadas = new Rectangle(0, 0, 320, 90); }
public StatsProvider(FrameProvider frameProvider, ILogger log) : base(frameProvider, null, log) { this._posicionStats = new Rectangle(0, 0, 220, 200); }
private void Mp4Player_Load(object sender, EventArgs e) { InitDecoder(); data = FrameProvider.GetH264FileData(); }
/// <summary> /// Start point. /// </summary> protected void OnEnable() { DebugTargets[] debugs = gameObject.GetComponents <DebugTargets>(); if (debugs.Length > 0) { Debug.LogError("Debug create dynamically, component will be removed."); foreach (DebugTargets debug in debugs) { DestroyImmediate(debug); } } Debug.Log("Start tracking."); //File calibration if (parameters.use_file_calibration) { string path = Path.Combine(Application.streamingAssetsPath, parameters.path_subfolder_calibration); if (!Directory.Exists(path)) { throw new System.Exception("Folder " + path + " does not exist."); } if (!CARDSCalibrationPlugin.GetPoseParametersWrapped(path, ref parameters.calibration)) { throw new System.Exception("Loading parameters " + path + " failed."); } } else if (parameters.device_index != -1) { Debug.LogWarning("Not recommended to not use calibrtation file in other context than virtual."); } // Init video if (parameters.UseWebcam) { video = new WebcamTexture(); gameObject.AddComponent <DebugTargetsWebcam>(); } else if (parameters.device_index == -1) { video = new VirtualCameraTexture(); gameObject.AddComponent <DebugTargetsVirtual>(); } else if (parameters.device_index == -2) { video = new VideoFileTexture(); gameObject.AddComponent <DebugTargetsVideo>(); } video.Init(parameters); // Init plugin unsafe { fixed(Target *outTargets = targets) { CARDSTrackingPlugin.InitWrapped(outTargets, ref nb_targets, max_targets); } } //Init detection if (parameters.use_detection) { zone_detection = ConvertUnityScreenToRect(parameters.rect_detection); } nb_frame = -1; }
public CoordenadasProvider(FrameProvider frameProvider, MouseProvider mouseProvider, ILogger log) : base(frameProvider, mouseProvider, log) { this._posicionCoordenadas = new Rectangle(frameProvider.Width - 140, 93, 140, 35); }