using CANFDApiProxy.Requests; using System; using System.Collections.Generic; using System.Text; namespace CANFDApiProxy.Messages { public class CANConfigMessage { public List CANConfigList { get; set; } public Pipe Pipe { get; set; } public string Status { get; set; } public static CANConfigRequest CreateCanConfigRequest(CANConfigMessage canConfigMessage) { var request = new CANConfigRequest(); try { request.config = new config(); var CANConfigArray = canConfigMessage.CANConfigList.ToArray(); request.config.can1 = new CanConfigItem(CANConfigArray[0].Base_or_arb_bitrate, CANConfigArray[0].Base_or_arb_sjw, CANConfigArray[0].Data_bitrate, CANConfigArray[0].Data_sjw, CANConfigArray[0].Filetype, CANConfigArray[0].Included, CANConfigArray[0].Is_fd); request.config.can2 = new CanConfigItem(CANConfigArray[1].Base_or_arb_bitrate, CANConfigArray[1].Base_or_arb_sjw, CANConfigArray[1].Data_bitrate, CANConfigArray[1].Data_sjw, CANConfigArray[1].Filetype, CANConfigArray[1].Included, CANConfigArray[1].Is_fd); request.config.can3 = new CanConfigItem(CANConfigArray[2].Base_or_arb_bitrate, CANConfigArray[2].Base_or_arb_sjw, CANConfigArray[2].Data_bitrate, CANConfigArray[2].Data_sjw, CANConfigArray[2].Filetype, CANConfigArray[2].Included, CANConfigArray[2].Is_fd); request.config.can4 = new CanConfigItem(CANConfigArray[3].Base_or_arb_bitrate, CANConfigArray[3].Base_or_arb_sjw, CANConfigArray[3].Data_bitrate, CANConfigArray[3].Data_sjw, CANConfigArray[3].Filetype, CANConfigArray[3].Included, CANConfigArray[3].Is_fd); } catch (Exception ex) { request.Status = ex.Message; } return request; } public override string ToString() { var sb = new StringBuilder(); sb.Append($"Pipe: {Pipe}, Status: {Status}, CanConfigList:"); if (null != CANConfigList) { foreach( var c in CANConfigList) { sb.Append(" "); sb.Append(c.ToString()); } } return sb.ToString(); } } public class CANConfig { public CANConfig(string name, int base_or_arb_bitrate, int base_or_arb_sjw, int data_bitrate, int data_sjw, string filetype, bool included, bool is_fd) { Name = name; Base_or_arb_bitrate = base_or_arb_bitrate; Base_or_arb_sjw = base_or_arb_sjw; Data_bitrate = data_bitrate; Data_sjw = data_sjw; Filetype = filetype; Included = included; Is_fd = is_fd; } public string Name { get; } public int Base_or_arb_bitrate { get; set; } public int Base_or_arb_sjw { get; set; } public int Data_bitrate { get; set; } public int Data_sjw { get; set; } public string Filetype { get; set; } public bool Included { get; set; } public bool Is_fd { get; set; } public override string ToString() { return $"Name={Name}, BaseBR={Base_or_arb_bitrate}, BaseSJW={Base_or_arb_sjw}, BR={Data_bitrate}, DataSJW={Data_sjw}, FT={Filetype}, Inc={Included}, fd={Is_fd}"; } } }