示例#1
0
文件: Form1.cs 项目: EastFive/Client
        private void btn_lane_connect_Click(object sender, EventArgs e)
        {
            Dictionary <string, string> dic = new Dictionary <string, string> {
                { "Type", "Client" }, { "Name", text_message_lane_code.Text }
            };

            connection = new HubConnection(text_lane_hub_address.Text, dic);

            proxy = connection.CreateHubProxy(text_lane_hub_name.Text);

            connection.Start().Wait();

            lane = new Lane();
            GetLane_Value();
            Pf_Message_Lane_Object lane_obj = new Pf_Message_Lane_Object {
                lane = this.lane, lane_code = lane.lane_code, send_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            };
            Pf_Message_Obj <Pf_Message_Lane_Object> obj = new Pf_Message_Obj <Pf_Message_Lane_Object>("lane", lane_obj);

            proxy.Invoke("Change", lane.lane_code, JSONHelper.SerializeObject(obj));//send to messageHub
            richTextBox1.AppendText(DateTime.Now.ToString() + ":" + "与服务器连接成功" + "\r\n");
            connection.StateChanged += Connection_StateChanged;


            proxy.On("reciveLane", (data) =>
            {
                Pf_Message_Lane_Object lane_obj_temp = JSONHelper.DeserializeJsonToObject <Pf_Message_Lane_Object>(data);
                lane = JSONHelper.DeserializeJsonToObject <Lane>(JSONHelper.SerializeObject(lane_obj_temp.lane));
                SetLane_Value();
            });
        }
示例#2
0
        public void LaneStatusChange(string laneCode, string JsonMessage)
        {
            try
            {
                Pf_Message_Obj obj = (Pf_Message_Obj)DataHepler.Decoding(JsonMessage);
                switch (obj.message_type)
                {
                case "Status":
                    var statusObj = JsonHelper.DeserializeJsonToObject <pf_MessageStatusContext_Obj>(JsonHelper.SerializeObject(obj.message_content));
                    if (StatusList.Count(x => x.lane_code == laneCode) > 0)
                    {
                        lock (StatusList)
                        {
                            if (StatusList.Count(x => x.lane_code == statusObj.lane_code) > 0)
                            {
                                statusObj.update_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                StatusList[StatusList.FindIndex(x => x.lane_code == statusObj.lane_code)] = statusObj;    //车道对象
                                if (statusObj.connection_id != "")
                                {
                                    var reobj = new Pf_Message_Obj {
                                        message_type = "Status", message_content = statusObj
                                    };                                                                                          //编码成消息对象

                                    Clients.Client(statusObj.connection_id).reciveStatus(JsonHelper.SerializeObject(reobj));    //如果有这个客户端就推送给这个客户端
                                }

                                F5();    //刷新
                                ReCode = "状态刷新/修改成功";
                                GetRe(); //服务器返回
                                ReCode = "无状态";
                            }
                        }
                    }
                    break;

                case "Action":
                    var actionObj = JsonHelper.DeserializeJsonToObject <pf_MessageActionContext_Obj>(JsonHelper.SerializeObject(obj.message_content));
                    if (actionObj.connection_id != "")
                    {
                        var reobj = new Pf_Message_Obj {
                            message_type = "Action", message_content = actionObj
                        };
                        Clients.Client(actionObj.connection_id).reciveAction(JsonHelper.SerializeObject(reobj));    //返回JSON对象
                    }
                    break;

                case "Job":
                    var jobObj = JsonHelper.DeserializeJsonToObject <pf_JobContet_Obj>(JsonHelper.SerializeObject(obj.message_content));


                    break;
                }
            }
            catch (Exception ex)
            {
                ReCode = "状态刷新/修改失败";
                GetRe();
                Loger.AddErrorText("更新状态失败", ex);
            }
        }
示例#3
0
文件: Form1.cs 项目: EastFive/Client
 private void button1_Click(object sender, EventArgs e)
 {
     if (proxy != null)
     {
         GetLane_Value(); //从控件中 获取值
         Pf_Message_Lane_Object lane_obj = new Pf_Message_Lane_Object {
             lane = this.lane, lane_code = lane.lane_code, send_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         Pf_Message_Obj <Pf_Message_Lane_Object> obj = new Pf_Message_Obj <Pf_Message_Lane_Object>("lane", lane_obj);
         proxy.Invoke("Change", lane.lane_code, JSONHelper.SerializeObject(obj));//send to messageHub
     }
 }
示例#4
0
文件: Form1.cs 项目: EastFive/Client
        private void button2_Click(object sender, EventArgs e)
        {
            if (proxy != null)
            {
                GetLane_Value();

                Pf_Message_Lane_Object lane_obj = new Pf_Message_Lane_Object {
                    lane = this.lane, lane_code = lane.lane_code, send_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };
                Pf_Message_Obj <Pf_Message_Lane_Object> obj = new Pf_Message_Obj <Pf_Message_Lane_Object>("lane", lane_obj);

                string controllane_code = string.Empty;
                Invoke(new MethodInvoker(() =>
                {
                    controllane_code = text_message_lane_code.Text;
                }));
                proxy.Invoke("SendMessage", controllane_code, JSONHelper.SerializeObject(obj));//send to messageHub
            }
        }
示例#5
0
文件: Form1.cs 项目: EastFive/Client
        void SetLane_Value()
        {
            try
            {
                Invoke(new MethodInvoker(() =>
                {
                    text_lane_code.Text          = lane.lane_code;
                    text_lane_name.Text          = lane.lane_name;
                    text_lane_conutry_code.Text  = lane.country_code;
                    text_lane_city_code.Text     = lane.city_code;
                    text_lane_terminal_code.Text = lane.terminal_code;
                    text_lane_direction.Text     = lane.direction;
                    text_lane_has_truck.Text     = lane.has_truck == true ? "True" : "False";
                    text_lane_led_display.Text   = lane.led_display;
                    text_lane_barrier.Text       = lane.barrier;
                    text_lane_update_time.Text   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                    richTextBox1.AppendText(DateTime.Now + ":" + "接收消息并赋值给控件成功" + "\r\n");
                }));

                if (proxy != null)
                {
                    Pf_Message_Lane_Object lane_obj = new Pf_Message_Lane_Object {
                        lane = this.lane, lane_code = lane.lane_code, send_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    //Pf_Message_Obj obj = new Pf_Message_Obj { message_type = "lane", message_content = lane_obj };
                    Pf_Message_Obj <Pf_Message_Lane_Object> obj = new Pf_Message_Obj <Pf_Message_Lane_Object>("lane", lane_obj);
                    proxy.Invoke("Change", lane.lane_code, JSONHelper.SerializeObject(obj));//send to messageHub
                    Invoke(new MethodInvoker(() =>
                    {
                        richTextBox1.AppendText(DateTime.Now + ":" + "推送至服务器缓存成功" + "\r\n");
                    }));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "赋值给控件失败");
            }
        }