/** * @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); }
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; } }
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); }
/** * @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); }
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); } }
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]; }