void SendCommand(UartCommand command, ushort address, Task data) { var dta = new byte[7]; dta[0] = (byte)command; dta[1] = (byte)(address << 8); dta[2] = (byte)(address); if (data != null) { data.GetBytes().CopyTo(dta, 3); } port.Send(dta, 1, false); }
public UartCommand ConvertData(byte[] data) { if (data == null) { return(null); } if (data.Length >= 6) { UartCommand obj = new UartCommand(); obj.date = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss.") + DateTime.Now.Millisecond; obj.Address = data[0]; obj.Command = data[1]; obj.Data = new byte[data.Length - 2]; Array.Copy(data, 2, obj.Data, 0, data.Length - 2); return(obj); } return(null); }
public bool Send(UartCommand data) { if (data == null) { return(false); } var addLength = 0; if (data.Data != null) { addLength = data.Data.Length; } byte[] bytes = new byte[addLength + 2]; bytes[0] = (byte)data.Address; bytes[1] = (byte)(data.Command); if (addLength > 0) { data.Data.CopyTo(bytes, 2); } Send(bytes); return(true); }
public Task <object> Invoke(IDictionary <string, object> input) { if (input.ContainsKey("action")) { var action = input["action"].ToString(); if (action == "init") { return(Task.Run <object>(() => { return Init(input); })); } if (action == "list") { return(Task.Run <object>(() => { return Device.GetPorts(); })); } if (device != null) { if (action == "write") { return(Task.Run <object>(() => { return device.Send((byte[])input["data"]); })); } if (action == "write-sized") { var data = (byte[])input["data"]; string log = "Sending: " + data.Length + " L - "; for (var i = 0; i < data.Length; i++) { log += data[i] + " "; } Console.WriteLine(log); return(Task.Run <object>(() => { return device.Send(data, 1, false); })); } if (action == "command") { var obj = new UartCommand(); if (input.ContainsKey("command")) { obj.Command = Convert.ToByte(input["command"]); } if (input.ContainsKey("address")) { obj.Address = Convert.ToByte(input["address"]); } if (input.ContainsKey("data")) { obj.Data = (byte[])input["data"]; } return(Task.Run <object>(() => { return device.Send(obj); })); } if (action == "close") { return(Task.Run <object>(() => { return device.Close(); })); } if (action == "read") { return(Task.Run <object>(() => { try { var result = device.Read(); return result; } catch (Exception err) { //return err.StackTrace; throw err; } })); } if (action == "state") { return(Task.Run <object>(() => { return device.GetState(); })); } } } else { throw new InvalidOperationException("Unsupported type of command."); } return(null); }
public UartPacket(byte command) { this.Command = (UartCommand) command; //Source = (UartSource)(source & 0xF0); }
void SendCommand(UartCommand command, ushort address) { var dta = new byte[3]; dta[0] = (byte)command; dta[1] = (byte)(address << 8); dta[2] = (byte)(address); port.Send(dta, 1, false); }