예제 #1
0
        // Sweep
        public IExciterSweepApi Sweep(uint step, ExciterModulation modulation, byte time)
        {
            var frame = new CanFrameWriter().Id(ID_MODULATION).Write((byte)74).Write((byte)68).Write((byte)modulation).Write(step, true).Write(time).ToCanFrame(PadZero);

            _canControl.Send(frame);

            return(this);
        }
예제 #2
0
        // Multi Spot
        public IExciterMultiSpotApi MultiSpot(byte pointsCount, ExciterModulation modulation)
        {
            var frame = new CanFrameWriter().Id(ID_MODULATION).Write((byte)74).Write((byte)67).Write(pointsCount).Write((byte)modulation).ToCanFrame(PadZero);

            _canControl.Send(frame);

            return(this);
        }
예제 #3
0
        // Spot
        public IExciterSpotApi Spot(uint frequency, ExciterModulation modulation)
        {
            var frame = new CanFrameWriter().Id(ID_MODULATION).Write((byte)74).Write((byte)65).Write(frequency, true).Write((byte)modulation).ToCanFrame(PadZero);

            _canControl.Send(frame);

            return(this);
        }
예제 #4
0
        // Sweep
        public IExciterSweepApi Sweep(uint step, ExciterModulation modulation, byte time)
        {
            logger.Info(string.Format("Apply exciter sweep with step: {0}, modulation: {1}, time: {2}", step, modulation, time));
            var frame = new CanFrameWriter().Id(ID_MODULATION).Write((byte)74).Write((byte)68).Write((byte)modulation).Write(step, true).Write(time).ToCanFrame(PadZero);

            _canControl.Send(frame);

            return(this);
        }
예제 #5
0
        // Spot
        public IExciterSpotApi Spot(uint frequency, ExciterModulation modulation)
        {
            logger.Info(string.Format("Apply exciter spot with frequency: {0}, modulation: {1}", frequency, modulation));
            var frame = new CanFrameWriter().Id(ID_MODULATION).Write((byte)74).Write((byte)65).Write(frequency, true).Write((byte)modulation).ToCanFrame(PadZero);

            _canControl.Send(frame);

            return(this);
        }
예제 #6
0
        public IExciterCombApi Comb(ExciterModulation modulation, ushort frequencies, ushort amplitude)
        {
            byte cmbModulation;

            switch (modulation)
            {
            case ExciterModulation.Cw:
                cmbModulation = 1;
                break;

            case ExciterModulation.Am:
                cmbModulation = 2;
                break;

            case ExciterModulation.Fm:
                cmbModulation = 3;
                break;

            case ExciterModulation.Usb:
                cmbModulation = 4;
                break;

            case ExciterModulation.Lsb:
                cmbModulation = 5;
                break;

            case ExciterModulation.Dsb:
                cmbModulation = 6;
                break;

            case ExciterModulation.Isb:
                cmbModulation = 7;
                break;

            default:
                cmbModulation = 2;
                break;
            }

            var frame = new CanFrameWriter().Id(0x34).Write(cmbModulation).Write(frequencies).Write(amplitude).ToCanFrame(PadZero);

            _canControl.Send(frame);

            return(this);
        }
예제 #7
0
 public void Apply(ExciterModulation modulation, ushort exists, ushort power)
 {
     throw new NotImplementedException();
 }
예제 #8
0
 public void Apply(ExciterModulation modulation, ushort exists, ushort power)
 {
     power = 16384;
     logger.Info(string.Format("Apply modulation & power on comb exciter. modulation: {0} exists: {1} power: {2}", modulation, exists, power));
     CombApi.Comb(modulation, exists, power);
 }
예제 #9
0
        IExciterHoppingApi IExciterHoppingApi.Apply(uint frequencyStart, uint frequencyStop, ExciterModulation modulation)
        {
            var frame1 = new CanFrameWriter().Id(0x35).Write(frequencyStart).Write(frequencyStop).ToCanFrame(PadZero);

            _canControl.Send(frame1);

            byte cmbModulation;

            switch (modulation)
            {
            case ExciterModulation.Cw:
                cmbModulation = 1;
                break;

            case ExciterModulation.Am:
                cmbModulation = 2;
                break;

            case ExciterModulation.Fm:
                cmbModulation = 3;
                break;

            case ExciterModulation.Usb:
                cmbModulation = 4;
                break;

            case ExciterModulation.Lsb:
                cmbModulation = 5;
                break;

            case ExciterModulation.Dsb:
                cmbModulation = 6;
                break;

            case ExciterModulation.Isb:
                cmbModulation = 7;
                break;

            default:
                cmbModulation = 2;
                break;
            }

            ushort amplitude = 16384;
            var    frame2    = new CanFrameWriter().Id(0x36).Write(true).Write(cmbModulation).Write(amplitude).ToCanFrame(PadZero);

            _canControl.Send(frame2);

            return(this);
        }