Beispiel #1
0
 public void SetOperatingMode(OperatingModeEnum value)
 {
     SetOperatingMode(value, false);
 }
Beispiel #2
0
 public void SetOperatingMode(OperatingModeEnum value, bool isQuiet)
 {
     try
     {
         if (value == OperatingModeEnum.Tx)
         {
             SKSetPinState((byte)11, (byte)0);
             SKSetPinState((byte)12, (byte)1);
         }
         else
         {
             SKSetPinState((byte)11, (byte)1);
             SKSetPinState((byte)12, (byte)0);
         }
         byte data = (byte)((uint)(byte)((uint)(byte)registers["RegOpMode"].Value & 248U) | (uint)(byte)value);
         if (!isQuiet)
         {
             registers["RegOpMode"].Value = (uint)data;
         }
         else
         {
             lock (syncThread)
             {
                 if (!Write((byte)registers["RegOpMode"].Address, data))
                     throw new Exception("Unable to write register " + registers["RegOpMode"].Name);
                 if (packet.IoHomeOn)
                     SetSyncSize(packet.SyncSize);
                 if (Mode != OperatingModeEnum.Rx)
                     return;
                 ReadRegister(registers["RegLna"]);
                 ReadRegister(registers["RegFeiMsb"]);
                 ReadRegister(registers["RegFeiLsb"]);
                 ReadRegister(registers["RegAfcMsb"]);
                 ReadRegister(registers["RegAfcLsb"]);
             }
         }
     }
     catch (Exception ex)
     {
         OnError((byte)1, ex.Message);
     }
 }
Beispiel #3
0
 public void SetModeLeds(OperatingModeEnum mode)
 {
     if (test)
         return;
     switch (mode)
     {
         case OperatingModeEnum.Tx:
             SKSetPinState((byte)7, (byte)1);
             SKSetPinState((byte)8, (byte)0);
             break;
         case OperatingModeEnum.Rx:
             SKSetPinState((byte)7, (byte)0);
             SKSetPinState((byte)8, (byte)1);
             break;
         default:
             SKSetPinState((byte)6, (byte)1);
             SKSetPinState((byte)7, (byte)1);
             SKSetPinState((byte)8, (byte)1);
             break;
     }
 }
Beispiel #4
0
        public void SetOperatingMode(OperatingModeEnum value, bool isQuiet)
        {
            try
            {
                if (value == OperatingModeEnum.Tx || value == OperatingModeEnum.TxContinuous)
                {
                    SKSetPinState(11, 0);
                    SKSetPinState(12, 1);
                }
                else
                {
                    SKSetPinState(11, 1);
                    SKSetPinState(12, 0);
                }
                if (value == OperatingModeEnum.TxContinuous)
                {
                    SetTxContinuousOn(true);
                    value = OperatingModeEnum.Tx;
                }
                else
                    SetTxContinuousOn(false);

                byte data = (byte)((registers["RegOpMode"].Value & 248U) | (uint)value);
                if (!isQuiet)
                {
                    registers["RegOpMode"].Value = data;
                }
                else
                {
                    lock (syncThread)
                    {
                        if (!Write((byte)registers["RegOpMode"].Address, data))
                            throw new Exception("Unable to write register " + registers["RegOpMode"].Name);
                        if (Mode == OperatingModeEnum.Rx || Mode == OperatingModeEnum.RxSingle || Mode == OperatingModeEnum.Cad)
                        {
                            ReadRegister(registers["RegLna"]);
                        }
                    }
                }
                Console.WriteLine("RegOpMode (SOM): 0x{0}", data.ToString("X02"));
            }
            catch (Exception ex)
            {
                OnError(1, ex.Message);
            }
        }
Beispiel #5
0
 public void SetModeLeds(OperatingModeEnum mode)
 {
     if (test)
         return;
     switch (mode)
     {
         case OperatingModeEnum.Tx:
         case OperatingModeEnum.TxContinuous:
             SKSetPinState(7, 1);
             SKSetPinState(8, 0);
             break;
         case OperatingModeEnum.Rx:
         case OperatingModeEnum.RxSingle:
         case OperatingModeEnum.Cad:
             SKSetPinState(7, 0);
             SKSetPinState(8, 1);
             break;
         default:
             SKSetPinState(6, 1);
             SKSetPinState(7, 1);
             SKSetPinState(8, 1);
             break;
     }
 }
Beispiel #6
0
		public void SetOperatingMode(OperatingModeEnum value, bool isQuiet)
		{
			try
			{
				byte data = (byte)m_registers["RegOpMode"].Value;
				data = (byte)(data & 0xe3);
				data = (byte)(data | ((byte)(((byte)value) << 2)));
				if (!isQuiet)
				{
					m_registers["RegOpMode"].Value = data;
				}
				else
				{
					lock (syncThread)
					{
						if (!Write((byte)m_registers["RegOpMode"].Address, data))
						{
							throw new Exception("Unable to write register " + m_registers["RegOpMode"].Name);
						}
						if (Mode == OperatingModeEnum.Rx)
						{
							ReadRegister(m_registers["RegLna"]);
							ReadRegister(m_registers["RegFeiMsb"]);
							ReadRegister(m_registers["RegFeiLsb"]);
							ReadRegister(m_registers["RegAfcMsb"]);
							ReadRegister(m_registers["RegAfcLsb"]);
						}
					}
				}
			}
			catch (Exception exception)
			{
				OnError(1, exception.Message);
			}
		}
Beispiel #7
0
		private void SetModeLeds(OperatingModeEnum mode)
		{
			if (!test)
			{
				IoPort portB = ftdi.PortB;
				portB.PortValue = (byte)(portB.PortValue & ~PB_LEDS);
				switch (mode)
				{
					case OperatingModeEnum.Tx:
						if (!isPacketModeRunning)
						{
							portB.PortValue = (byte)(portB.PortValue | PB_LEDS);
							break;
						}
						portB.PortValue = (byte)(portB.PortValue | PB6_LED1);
						break;
					case OperatingModeEnum.Rx:
						portB.PortValue = (byte)(portB.PortValue | PB7_LED2);
						break;
					default:
						break;
				}
				ftdi.PortB.SendBytes();
			}
		}