void ISignalCard.Start(SignalCardStartArgs args) { this.m_IsRunning = false; this.m_Channels = args.Channels; this.m_ScanBuffer = new ushort[args.FrameSize, args.Channels]; ((ISignalCard)this).Stop(); this.m_Mode = args.Mode; this.m_Logger.DebugFormat("{0} > {1}", base.GetType().Name, "Setup card..."); this.m_Session = new Session(); this.m_Logger.DebugFormat("{0} > {1}", base.GetType().Name, "Create output channels"); this.m_Session.CreateAOChannel($"pwrdaq://dev{this.m_DeviceIndex}/Ao0:{7}", -10.0, 10.0); switch (this.m_Mode) { case SignalCardModeEnum.BufferedOut: this.m_Logger.DebugFormat("{0} > {1}", base.GetType().Name, "Configure timing for buffered output"); this.m_Session.ConfigureTimingForBufferedIO(args.FrameSize, TimingClockSource.Internal, (double)args.Rate, DigitalEdge.Rising, TimingDuration.Continuous); this.m_Session.GetTiming().SetTimeout(args.Timeout); this.m_Session.GetDataStream().SetNumberOfFrames(args.BufferFrames); this.m_Session.GetDataStream().SetNumberOfScans(args.FrameSize); this.m_Session.GetDataStream().SetOverUnderRun(0); this.m_Session.GetDataStream().SetRegenerate(0); break; case SignalCardModeEnum.SingleOut: this.m_Logger.DebugFormat("{0} > {1}", base.GetType().Name, "Configure timing for simple io"); this.m_Session.ConfigureTimingForSimpleIO(); break; } this.m_Writer = new AnalogRawWriter(this.m_Session.GetDataStream()); this.m_Logger.DebugFormat("{0} > {1}", base.GetType().Name, "Setup card done!"); }
private BeamScanSingleton(IBeamSetup beamSetup, IBeamScan beamScan, IBeamState beamState) { _beamScan = beamScan; // _beamSetup = beamSetup; // _beamState = beamState; // _pdao32Card = new PowerDaq32AO(); // SignalCardStartArgs _cardArgs = new SignalCardStartArgs(SignalCardModeEnum.BufferedOut, 40000, 8, 500000, 8, 100); this.m_PackageManager.OnPackageCompleted += new PackageOfficeEvent(this.OnPackageManagerCompleted); }