예제 #1
0
        internal void CalcReg04(KuscCommon.SYNTH_TYPE cSynthType, int cpCurrentValue)
        // According to data sheet: 0 -> 0.300, 15 ->
        {
            // Create and change bit array
            BitArray bitArr   = new BitArray(new int[] { KuscCommon.SYNTH_REG04 });
            BitArray bitArrCp = new BitArray(new int[] { cpCurrentValue });

            for (int idx = 0; idx < 4; idx++)
            {
                bitArr[10 + idx] = bitArrCp[idx];
            }


            // Convert result to int32 again
            int value = 0;

            for (int i = 0; i < bitArr.Count; i++)
            {
                if (bitArr[i])
                {
                    value += Convert.ToInt32(Math.Pow(2, i));
                }
            }

            if (cSynthType == KuscCommon.SYNTH_TYPE.SYNTH_TX)
            {
                synthReg04Tx = value;
            }
            else if (cSynthType == KuscCommon.SYNTH_TYPE.SYNTH_RX)
            {
                synthReg04Rx = value;
            }
        }
예제 #2
0
        private Int32 SetSynthCp(KuscCommon.SYNTH_TYPE cType)
        {
            Int32 cpVal = 0;

            if (cType == KuscCommon.SYNTH_TYPE.SYNTH_TX)
            {
                if (cbxSynthTxSetCp.Text == string.Empty || cbxSynthTxSetCp.Text == "choose")
                {
                    cpVal = KuscCommon.SYNTH_TX_CP_DEFAULT_INDEX;
                }
                else
                {
                    cpVal = cbxSynthTxSetCp.SelectedIndex;
                    _kuscSynth.CalcReg04(KuscCommon.SYNTH_TYPE.SYNTH_TX, cpVal);
                }
            }
            else if (cType == KuscCommon.SYNTH_TYPE.SYNTH_RX)
            {
                if (cbxSynthRxSetCp.Text == string.Empty || cbxSynthRxSetCp.Text == "choose")
                {
                    cpVal = KuscCommon.SYNTH_RX_CP_DEFAULT_INDEX;
                }
                else
                {
                    cpVal = cbxSynthRxSetCp.SelectedIndex;
                    _kuscSynth.CalcReg04(KuscCommon.SYNTH_TYPE.SYNTH_RX, cpVal);
                }
            }
            return(cpVal);
        }
        internal List <string> GetDataRegisters(KuscCommon.SYNTH_TYPE cSynthType, double fRF, double fIF)
        {
            List <string> regList = new List <string>();

            List <Int32> regListNum = new List <Int32>();

            CalcSynthParams(fRF, fIF);

            regList.Add(KuscCommon.SYNTH_REG10.ToString() + '@' + 0xa.ToString() + '#');     // R10
            regList.Add(KuscCommon.SYNTH_REG06.ToString() + '@' + 0x6.ToString() + '#');     // R6
            if (cSynthType == KuscCommon.SYNTH_TYPE.SYNTH_TX)
            {
                regList.Add(synthReg04Tx.ToString() + '@' + 0x4.ToString() + '#');          // R4 - TX
            }
            else if (cSynthType == KuscCommon.SYNTH_TYPE.SYNTH_RX)
            {
                regList.Add(synthReg04Rx.ToString() + '@' + 0x4.ToString() + '#');          // R4 - RX
            }
            regList.Add(CalcReg02().ToString() + '@' + 0x2.ToString() + '#');               // R2
            regList.Add(CalcReg01().ToString() + '@' + 0x1.ToString() + '#');               // R1
            regList.Add(CalcReg00().ToString() + '@' + 0x0.ToString() + '#');               // R0
            regList.Add(KuscCommon.SYNTH_REG04.ToString() + '@' + 0x4.ToString() + '#');    // R4
            regList.Add(CalcReg00().ToString() + '@' + 0x0.ToString() + '#');               // R0

            // Now send the F_RF frequancy to read latter time:
            Int32 fRfToSend = Convert.ToInt32(fRF * 100);

            regList.Add(fRfToSend.ToString() + '@' + 0xb.ToString() + '#');

            return(regList);
        }
예제 #4
0
 internal void SendSynthRegisters(KuscCommon.SYNTH_TYPE cSynthType)
 {
     if (_synthUpdateCnt < KuscCommon.SYNTH_NUM_CYCLE_IN_UPDATE_REGISTERS)
     {
         if (cSynthType == KuscCommon.SYNTH_TYPE.SYNTH_TX)
         {
             _kuscSerial.SerialWriteMessage(KuscMessageParams.MESSAGE_GROUP.SYNTH_MSG, KuscMessageParams.MESSAGE_REQUEST.SYNTH_DOWN_SET, dataList[_synthUpdateCnt]);
         }
         else if (cSynthType == KuscCommon.SYNTH_TYPE.SYNTH_RX)
         {
             _kuscSerial.SerialWriteMessage(KuscMessageParams.MESSAGE_GROUP.SYNTH_MSG, KuscMessageParams.MESSAGE_REQUEST.SYNTH_UP_SET, dataList[_synthUpdateCnt]);
         }
         _synthUpdateCnt++;
     }
     _synthUpdateCnt %= KuscCommon.SYNTH_NUM_CYCLE_IN_UPDATE_REGISTERS;
 }