public static RelayController ConnectSerial(string port) { IEmissionProcessor processor = new ApiFrameEmissionProcessor(); IRelay relay = new SerialRelay(port, processor); return(new RelayController(relay, processor, new TransmissionObjectFactory(new BasicCompressor()))); }
public void SendData() { string text = ""; int expected_byte_count = CONSTANTS.MAX_FRAME_DATA; for (int i = 0; i < expected_byte_count; i++) { text += "x"; } byte[] data_bytes = Encoding.UTF8.GetBytes(text); IEmissionProcessor receiver = new ApiFrameEmissionProcessor(); IRelay relay = new SerialRelay("COM4", receiver); using (RelayController ctrl_send = new RelayController(relay, receiver, transmissionFactory)) { ulong long_address = 0x0013A20041B764AD; ushort short_address = ctrl_send.Discover(long_address); for (int i = 0; i < 1000; i++) { // send ACTUAL data try { ctrl_send.SendRawBytes(short_address, data_bytes); } catch (Exception e) { Console.WriteLine($"Failed at iteration {i} after {CONSTANTS.MAX_FRAME_DATA * i} bytes"); break; } } } }
private void Send() { try { byte[] data_bytes = Encoding.UTF8.GetBytes(this.DataOut + "\r\n"); IEmissionProcessor receiver = new ApiFrameEmissionProcessor(); ulong long_address = 0x0013A20041B764AD; // TODO 06/28/21: determine how to discover via micropython //ushort short_address = this.relayController.Discover(long_address); this.relayController.Transmit(long_address, data_bytes); } catch (Exception e) { Debug.WriteLine($"Error while transmitting data via bluetooth ({e.Message})"); } }