Example #1
0
 /**
  *  @brief       Set the AX.25 bitrate of the TRXVU transmitter.
  *  @param[in]   index index of ISIS TRXVU I2C bus address.
  *  @param[in]   bitrate The desired AX.25 bitrate of the TRXVU.
  *  @return      Error code according to <hal/errors.h>
  */
 public int IsisTrxvu_tcSetAx25Bitrate(byte index, ISIStrxvuBitrate bitrate)
 {
     logs.Add(DateTime.Now + " IsisTrxvu_tcSetAx25Bitrate");
     logs.Add("index: " + index + " ,bitrate: " + bitrate);
     if (index < tRXes.Length)
     {
         tRXes[index].IsisTrxvu_tcSetAx25Bitrate(bitrate);
         logs.Add(DateTime.Now + "Exit Status: " + Constants.MapIdToError[Constants.E_NO_SS_ERR]);
         return(Constants.E_NO_SS_ERR);
     }
     logs.Add(DateTime.Now + " ERROR: E_INDEX_ERROR");
     return(Constants.E_INDEX_ERROR);
 }
Example #2
0
 public void IsisTrxvu_tcSetAx25Bitrate(ISIStrxvuBitrate bitrate)
 {
     this.default_bitrates = bitrate;
     if (bitrate == ISIStrxvuBitrate.trxvu_bitrate_1200)
     {
         transmitter.TxBitrate = ISIStrxvuBitrateStatus.trxvu_bitratestatus_1200;
         receiver.RxBitrate    = ISIStrxvuBitrateStatus.trxvu_bitratestatus_1200;
     }
     if (bitrate == ISIStrxvuBitrate.trxvu_bitrate_2400)
     {
         transmitter.TxBitrate = ISIStrxvuBitrateStatus.trxvu_bitratestatus_2400;
         receiver.RxBitrate    = ISIStrxvuBitrateStatus.trxvu_bitratestatus_2400;
     }
     if (bitrate == ISIStrxvuBitrate.trxvu_bitrate_4800)
     {
         transmitter.TxBitrate = ISIStrxvuBitrateStatus.trxvu_bitratestatus_4800;
         receiver.RxBitrate    = ISIStrxvuBitrateStatus.trxvu_bitratestatus_4800;
     }
     if (bitrate == ISIStrxvuBitrate.trxvu_bitrate_9600)
     {
         transmitter.TxBitrate = ISIStrxvuBitrateStatus.trxvu_bitratestatus_9600;
         receiver.RxBitrate    = ISIStrxvuBitrateStatus.trxvu_bitratestatus_9600;
     }
 }
Example #3
0
        public static byte[] analyzeIsisTrxvu(string request)
        {
            byte[]   response   = { 0 };
            string[] args       = request.Split('&');
            string   methodName = args[0];
            byte     index      = Encoding.ASCII.GetBytes(args[1])[0];

            switch (methodName)
            {
            case "IsisTrxvu_initialize":
            {
                byte number = Encoding.ASCII.GetBytes(args[4])[0];
                ISIStrxvuI2CAddress[]   address          = convertToSturctISIStrxvuI2CAddressArr(args[1], number);
                ISIStrxvuFrameLengths[] maxFrameLengths  = convertToStructISIStrxvuFrameLengths(args[2], number);
                ISIStrxvuBitrate        default_bitrates = convertToStructISIStrxvuBitrate(args[3]);
                response = convertErrorToByteArr(trx.IsisTrxvu_initialize(address, maxFrameLengths, default_bitrates, number));
                break;
            }

            case "IsisTrxvu_componentSoftReset":
            {
                ISIStrxvuComponent component = convertToSturctISIStrxvuComponent(args[2]);
                response = convertErrorToByteArr(trx.IsisTrxvu_componentSoftReset(index, component));
                break;
            }

            case "IsisTrxvu_componentHardReset":
            {
                ISIStrxvuComponent component = convertToSturctISIStrxvuComponent(args[2]);
                response = convertErrorToByteArr(trx.IsisTrxvu_componentHardReset(index, component));
                break;
            }

            case "IsisTrxvu_softReset":
            {
                response = convertErrorToByteArr(trx.IsisTrxvu_softReset(index));
                break;
            }

            case "IsisTrxvu_hardReset":
            {
                response = convertErrorToByteArr(trx.IsisTrxvu_hardReset(index));
                break;
            }

            case "IsisTrxvu_tcSendAX25DefClSign":
            {
                byte[]        data   = Encoding.ASCII.GetBytes(args[2]);
                byte          length = Encoding.ASCII.GetBytes(args[3])[0];
                Output <Byte> avail  = new Output <byte>();
                byte[]        err    = convertErrorToByteArr(trx.IsisTrxvu_tcSendAX25DefClSign(index, data, length, avail));
                byte[]        output = new byte[] { avail.output };
                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_tcSendAX25OvrClSign":
            {
                char[]        fromCallsign = args[2].ToCharArray(0, args[2].Length);
                char[]        toCallsign   = args[3].ToCharArray(0, args[3].Length);
                byte[]        data         = Encoding.ASCII.GetBytes(args[4]);
                byte          length       = Encoding.ASCII.GetBytes(args[5])[0];
                Output <Byte> avail        = new Output <byte>();
                byte[]        err          = convertErrorToByteArr(trx.IsisTrxvu_tcSendAX25OvrClSign(index, fromCallsign, toCallsign, data, length, avail));
                byte[]        output       = new byte[] { avail.output };
                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_tcSetAx25BeaconDefClSign":
            {
                byte[] data     = Encoding.ASCII.GetBytes(args[2]);
                byte   length   = Encoding.ASCII.GetBytes(args[3])[0];
                ushort interval = BitConverter.ToUInt16(Encoding.ASCII.GetBytes(args[4]), 0);
                response = convertErrorToByteArr(trx.IsisTrxvu_tcSetAx25BeaconDefClSign(index, data, length, interval));
                break;
            }

            case "IsisTrxvu_tcSetAx25BeaconOvrClSign":
            {
                char[] fromCallsign = args[2].ToCharArray(0, args[2].Length);
                char[] toCallsign   = args[3].ToCharArray(0, args[3].Length);
                byte[] data         = Encoding.ASCII.GetBytes(args[4]);
                byte   length       = Encoding.ASCII.GetBytes(args[5])[0];
                ushort interval     = BitConverter.ToUInt16(Encoding.ASCII.GetBytes(args[6]), 0);
                response = convertErrorToByteArr(trx.IsisTrxvu_tcSetAx25BeaconOvrClSign(index, fromCallsign, toCallsign, data, length, interval));
                break;
            }

            case "IsisTrxvu_tcClearBeacon":
            {
                response = convertErrorToByteArr(trx.IsisTrxvu_tcClearBeacon(index));
                break;
            }

            case "IsisTrxvu_tcSetDefToClSign":
            {
                char[] toCallsign = args[2].ToCharArray(0, args[2].Length);
                response = convertErrorToByteArr(trx.IsisTrxvu_tcSetDefToClSign(index, toCallsign));
                break;
            }

            case "IsisTrxvu_tcSetDefFromClSign":
            {
                char[] toCallsign = args[2].ToCharArray(0, args[2].Length);
                response = convertErrorToByteArr(trx.IsisTrxvu_tcSetDefFromClSign(index, toCallsign));
                break;
            }

            case "IsisTrxvu_tcSetIdlestate":
            {
                ISIStrxvuIdleState state = (ISIStrxvuIdleState)Encoding.ASCII.GetBytes(args[2])[0];
                response = convertErrorToByteArr(trx.IsisTrxvu_tcSetIdlestate(index, state));
                break;
            }

            case "IsisTrxvu_tcSetAx25Bitrate":
            {
                ISIStrxvuBitrate bitrate = (ISIStrxvuBitrate)Encoding.ASCII.GetBytes(args[2])[0];
                response = convertErrorToByteArr(trx.IsisTrxvu_tcSetAx25Bitrate(index, bitrate));
                break;
            }

            case "IsisTrxvu_tcGetUptime":
            {
                /*Output<Byte> uptime = new Output<byte>();
                 * byte[] err = convertErrorToByteArr(trx.IsisTrxvu_tcGetUptime(index, uptime));
                 * byte[] output = { uptime.output };
                 * response = concatBytesArr(err, output);*/
                break;
            }

            case "IsisTrxvu_tcGetState":
            {
                Output <ISIStrxvuTransmitterState> currentvutcState = new Output <ISIStrxvuTransmitterState>();
                ISIStrxvuTransmitterState          currOutput       = new ISIStrxvuTransmitterState();
                currOutput.transmitter_bitrate    = ISIStrxvuBitrateStatus.trxvu_bitratestatus_4800;
                currOutput.transmitter_idle_state = ISIStrxvuIdleState.trxvu_idle_state_off;
                currentvutcState.output           = currOutput;
                byte[] err    = convertErrorToByteArr(trx.IsisTrxvu_tcGetState(index, currentvutcState));
                byte[] output = getBytes(currentvutcState.output);
                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_tcGetTelemetryAll":
            {
                Output <ISIStrxvuTxTelemetry> telemetry = new Output <ISIStrxvuTxTelemetry>();
                byte[] err    = convertErrorToByteArr(trx.IsisTrxvu_tcGetTelemetryAll(index, telemetry));
                byte[] output = getBytes(telemetry.output);

                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_tcGetLastTxTelemetry":
            {
                Output <ISIStrxvuTxTelemetry> telemetry = new Output <ISIStrxvuTxTelemetry>();
                byte[] err = convertErrorToByteArr(trx.IsisTrxvu_tcGetLastTxTelemetry(index, telemetry));
                //byte[] err = convertErrorToByteArr(0);
                //ISIStrxvuTxTelemetry telemetryoutput = new ISIStrxvuTxTelemetry();
                //telemetryoutput.tx_reflpwr = 1;
                //telemetryoutput.pa_temp = 2;
                //telemetryoutput.tx_fwrdpwr = 3;
                //telemetryoutput.tx_current = 4;
                //telemetry.output = telemetryoutput;

                byte[] output = getBytes(telemetry.output);

                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_tcEstimateTransmissionTime":
            {
                byte length = Encoding.ASCII.GetBytes(args[2])[0];
                response = convertErrorToByteArr(trx.IsisTrxvu_tcEstimateTransmissionTime(index, length));
                break;
            }

            case "IsisTrxvu_rcGetFrameCount":
            {
                Output <ushort> frameCount = new Output <ushort>();
                byte[]          err        = convertErrorToByteArr(trx.IsisTrxvu_rcGetFrameCount(index, frameCount));
                //byte[] err = convertErrorToByteArr(0);
                //frameCount.output = 5;
                byte[] output = BitConverter.GetBytes(frameCount.output);
                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_rcGetCommandFrame":
            {
                Output <ISIStrxvuRxFrame> rx_frame = new Output <ISIStrxvuRxFrame>();
                byte[] err = convertErrorToByteArr(trx.IsisTrxvu_rcGetCommandFrame(index, rx_frame));
                //byte[] err = convertErrorToByteArr(0);
                //ISIStrxvuRxFrame rxFrameOut = new ISIStrxvuRxFrame();
                //rxFrameOut.rx_doppler = 1;
                //rxFrameOut.rx_framedata = new byte[]{ 2,3,4,5};
                //rxFrameOut.rx_length = 4;
                //rxFrameOut.rx_rssi = 8;
                //rx_frame.output = rxFrameOut;
                byte[] output = getBytes(rx_frame.output);
                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_rcGetTelemetryAll":
            {
                Output <ISIStrxvuRxTelemetry> telemetry = new Output <ISIStrxvuRxTelemetry>();
                //ISIStrxvuRxTelemetry telOutput = new ISIStrxvuRxTelemetry();
                //telOutput.tx_current = 1;
                //telOutput.rx_doppler = 2;
                //telOutput.rx_current = 3;
                //telOutput.bus_volt = 4;
                //telOutput.board_temp = 5;
                //telOutput.pa_temp = 6;
                //telOutput.rx_rssi = 7;
                //telemetry.output = telOutput;
                byte[] err = convertErrorToByteArr(trx.IsisTrxvu_rcGetTelemetryAll(index, telemetry));
                //byte[] err = convertErrorToByteArr(0);
                byte[] output = getBytes(telemetry.output);
                response = concatBytesArr(err, output);
                break;
            }

            case "IsisTrxvu_rcGetUptime":
            {
                Output <Byte[]> uptime = new Output <byte[]>();
                byte[]          err    = convertErrorToByteArr(trx.IsisTrxvu_rcGetUptime(index, uptime));
                //byte[] err = convertErrorToByteArr(0);
                //uptime.output = new byte[]{ 1,2,3,4 };
                response = concatBytesArr(err, uptime.output);
                break;
            }
            }
            return(response);
        }
Example #4
0
 /**
  *  @brief      Initialize the ISIS TRXVU with the corresponding i2cAddress from the array of TRXVU I2C Address structure.
  *  @note       This function can only be called once.
  *  @param[in]  address array of TRXVU I2C Address structure.
  *  @param[in]  maxFrameLengths array of maximum frame length structures for TRXVU.
  *  @param[in]	default_bitrates initial default bitrate.
  *  @param[in]  number of attached TRXVU in the system to be initialized.
  *  @return     Error code according to <hal/errors.h>
  */
 public int IsisTrxvu_initialize(ISIStrxvuI2CAddress[] address, ISIStrxvuFrameLengths[] maxFrameLengths, ISIStrxvuBitrate default_bitrates, byte number)
 {
     logs.Add(DateTime.Now + " IsisTrxvu_initialize");
     if (tRXes == null)
     {
         tRXes = new TRX[number];
         for (int i = 0; i < number; i++)
         {
             logs.Add("address: " + address[i].ToString() + ", maxFrameLength: " + maxFrameLengths[i].ToString() + " ,default bitrates: " + default_bitrates + " ,index: " + i);
             TRX trx = new TRX(i, address[i], maxFrameLengths[i], default_bitrates)
             {
                 Name = i.ToString()
             };
             tRXes[i] = trx;
             tRXesCollection.Add(trx);
         }
         logs.Add(DateTime.Now + " Exit Status: No Error");
         return(Constants.E_NO_SS_ERR);
     }
     logs.Add(DateTime.Now + " ERROR: IsisTRXVU allready initiallized");
     return(Constants.E_IS_INITIALIZED);
 }
Example #5
0
        private void Update_Click(object sender, RoutedEventArgs e)
        {
            string error = "";
            short  res;

            if (Int16.TryParse(pvTempText.Text, out res))
            {
                EPSStartValues.PVTemp = res;
            }
            else
            {
                error = "Photovolatic converters should be a number";
            }
            if (pptModeText.SelectedValue != null)
            {
                EPSStartValues.PPTmode = (PPTMode)pptModeText.SelectedValue;
            }
            short batttemp;

            if (Int16.TryParse(batt_temp.Text, out batttemp))
            {
                EPSStartValues.BattTemp = batttemp;
            }
            else
            {
                error += "\n battery temperature should be a number";
            }

            byte battlow;

            if (byte.TryParse(batt_heat_low.Text, out battlow))
            {
                EPSStartValues.BattHeaterLow = battlow;
            }
            else
            {
                error += "\n battery low should be a number";
            }

            byte batthigh;

            if (byte.TryParse(batt_heat_high.Text, out batthigh))
            {
                EPSStartValues.BattHeaterHigh = batthigh;
            }
            else
            {
                error += "\n battery high should be a number";
            }
            if (heater_mode.SelectedValue != null)
            {
                EPSStartValues.BattHeaterMode = (HeaterMode)heater_mode.SelectedValue;
            }


            byte trx_num;

            if (byte.TryParse(num_of_trx.Text, out trx_num))
            {
                if (trx_num < 1)
                {
                    error += "\n trx units number should be greater then 0";
                }
                else
                {
                    trx_number = trx_num;
                }
            }
            else
            {
                error += "\n trx units number should be a number";
            }

            uint max_f_rx = 2048;

            if (uint.TryParse(max_rx.Text, out max_f_rx))
            {
                trxLens.maxAX25frameLengthRX = max_f_rx;
            }
            else
            {
                error += "\n max frame length should be a number";
            }

            uint max_f_tx = 2048;

            if (uint.TryParse(max_tx.Text, out max_f_tx))
            {
                trxLens.maxAX25frameLengthTX = max_f_tx;
            }
            else
            {
                error += "\n max frame length should be a number";
            }

            if (bitRateSelect.SelectedValue != null)
            {
                trxBitrate = (ISIStrxvuBitrate)bitRateSelect.SelectedValue;
            }

            if (!error.Equals(""))
            {
                MessageBox.Show(error);
            }
        }
Example #6
0
 public TRX(int trxId, ISIStrxvuI2CAddress address, ISIStrxvuFrameLengths maxFrameLengths, ISIStrxvuBitrate default_bitrates)
 {
     this.trxId             = trxId;
     this.address           = address;
     this.maxFrameLengths   = maxFrameLengths;
     this.default_bitrates  = default_bitrates;
     this.ISIStrxvuBeaconOn = ISIStrxvuBeacon.trxvu_beacon_none;
     transmitter            = new Transmitter();
     transmitter.bitrate    = MapBitrateToState[default_bitrates];
     receiver         = new Receiver();
     receiver.bitrate = MapBitrateToState[default_bitrates];
 }