Beispiel #1
0
 /**
  *  @brief       Set the idle state of the TRXVU transmitter, i.e. the state in between transmission.
  *  @param[in]   index index of ISIS TRXVU I2C bus address.
  *  @param[in]   state The desired idle state of the TRXVU.
  *  @return      Error code according to <hal/errors.h>
  */
 public int IsisTrxvu_tcSetIdlestate(byte index, ISIStrxvuIdleState state)
 {
     logs.Add(DateTime.Now + " IsisTrxvu_tcSetIdlestate");
     logs.Add("index: " + index + ", state: " + state);
     if (index < tRXes.Length)
     {
         tRXes[index].IsisTrxvu_tcSetIdlestate(state);
         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);
 }
Beispiel #2
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);
        }
Beispiel #3
0
 public void IsisTrxvu_tcSetIdlestate(ISIStrxvuIdleState state)
 {
     transmitter.IdleState = state;
 }