public static byte[] getBytes(ISIStrxvuTransmitterState str) { byte[] ans = new byte[255]; int index = 0; copyToByteArr(ans, (uint)str.transmitter_idle_state, ref index); copyToByteArr(ans, (uint)str.transmitter_beacon, ref index); copyToByteArr(ans, (uint)str.transmitter_bitrate, ref index); return(ans); }
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); }