File was renamed from HDL_ON/DAL/DriverLayer/Control_Udp_Bus.cs |
| | |
| | | |
| | | namespace HDL_ON |
| | | { |
| | | public class Control_Udp_Bus |
| | | public class Control_Udp |
| | | { |
| | | |
| | | public Control_Udp() |
| | | { |
| | | MainPage.Log($"control bus udp 被创建,时间:{DateTime.Now}"); |
| | | } |
| | | /// <summary> |
| | | /// 通讯ID |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 所有对一端口的控制都会放到这个集合里 |
| | | /// </summary> |
| | | List<Control_Udp_Bus> controlList = new List<Control_Udp_Bus>(50); |
| | | static List<Control_Udp> controlList = new List<Control_Udp>(50); |
| | | |
| | | public System.Net.IPEndPoint EndPoint |
| | | { |
| | |
| | | |
| | | /// <summary> |
| | | /// 发送数据,不需要等待回复 |
| | | /// ps:允许临时公开,仅供tv发送bus命令使用,后期需要更新到A协议数据格式控制 |
| | | /// </summary> |
| | | public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3) |
| | | { |
| | | var control = new Control_Udp_Bus(); |
| | | var control = new Control_Udp(); |
| | | control.Send(new Target() |
| | | { |
| | | IPEndPoint = EndPoint , |
| | |
| | | return; |
| | | } |
| | | |
| | | Control.ins.OpenTcpServer(); |
| | | var sendStr = UserInfo.Current.accountString; |
| | | Control.Ins.OpenTcpServer(); |
| | | var sendStr = UserInfo.Current.AccountString; |
| | | if (usefullBytes.Length == 0) |
| | | { |
| | | SendRemark(sendStr); |
| | |
| | | /// </summary> |
| | | void SendRemark(string sendStr) |
| | | { |
| | | //if (System.Globalization.CultureInfo.InstalledUICulture.EnglishName.ToUpper().StartsWith("CZECH")) |
| | | // Encoding.GetEncoding(1250); |
| | | |
| | | byte[] sendBytes = new byte[20]; |
| | | byte[] b1 = Encoding.GetEncoding("gb2312").GetBytes(sendStr); |
| | | Array.Copy(b1, 0, sendBytes, 0, 20 < b1.Length ? 20 : b1.Length); |
| | | |
| | | var control = new Control_Udp_Bus(); |
| | | var control = new Control_Udp(); |
| | | control.Send(new Target() |
| | | { |
| | | IPEndPoint = EndPoint, |
| | |
| | | } |
| | | |
| | | } |
| | | //System.MainPage.WriteLog ("++++++++"+controlList.Count.ToString ()); |
| | | } |
| | | controlList.Add(this); |
| | | } |
| | |
| | | allDone.WaitOne(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 让当前线程继续执行 |
| | | /// </summary> |
| | |
| | | Packet.HaveSendCount = 4; |
| | | } |
| | | |
| | | |
| | | //数据重发处理 |
| | | //数据发送处理 |
| | | void managerSendCount(object o) |
| | | { |
| | | add(); |
| | |
| | | /// 当前数据包 |
| | | /// </summary> |
| | | Packet Packet; |
| | | |
| | | private void ini(Target target) |
| | | /// <summary> |
| | | /// 记录发送数据包 |
| | | /// </summary> |
| | | /// <param name="target"></param> |
| | | private void signPacket(Target target) |
| | | { |
| | | this.SendFlag = string.Format("{0},{1},{2},", target.SubnetID, target.DeviceID, (int)target.Command + 1); |
| | | |
| | |
| | | break; |
| | | } |
| | | |
| | | System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); |
| | | thread.IsBackground = true; |
| | | thread.Start(Packet); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 发送Bus数据,发送了不需要等待 |
| | | /// 发送数据 |
| | | /// </summary> |
| | | /// <param name="target">发送对象</param> |
| | | /// <param name="sendCount">重发次数</param> |
| | |
| | | Packet = new Packet(target.SendBytes, target.IPEndPoint); |
| | | Packet.HaveSendCount = 3 - sendCount; |
| | | |
| | | ini(target); |
| | | signPacket(target); |
| | | |
| | | System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); |
| | | thread.IsBackground = true; |
| | | thread.Start(Packet); |
| | | |
| | | if (isWait) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | var sendJob = new JObject { |
| | | {"id",msg_id.ToString() } ,{"time_stamp",(DateTime.Now.Ticks / 10000).ToString()} |
| | | }; |
| | | var sendJob = new JObject { { "id", msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 10000).ToString() } }; |
| | | var bodyString = JsonConvert.SerializeObject(sendJob); |
| | | var bodyBytes = Encoding.ASCII.GetBytes(bodyString); |
| | | var sendBytes = A_Protocal_Common.apc.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString); |