Пример #1
0
        //选中某一调度令后显示处理函数
        private void tbd_lb_SelectedIndexChanged(object sender, EventArgs e)
        {
            //  display order info
            int selectedIndex = tbd_lb.SelectedIndex;           //鼠标选择的调度令的index

            if (selectedIndex == -1)                            //未选中调度令则返回
            {
                return;
            }
            OrderInfo tmpOrIn = GlobalVarForApp.tbdOrdersInfo[selectedIndex];//

            //显示文号
            label1.Text = "广无调单字【" + tmpOrIn.orInfo.ORDER_YEAR.ToString() + "】" + tmpOrIn.orInfo.ORDER_CODE;
            label2.Text = "582丁机房填表人 " + tmpOrIn.orInfo.SENDER.Trim();
            label3.Text = "下发时间 " + tmpOrIn.orInfo.SEND_DATE.ToString();
            //调度 指令排序
            if (tmpOrIn.orderStatus_enum == orderStatus.unconfirmed)           //调度令未下发状态
            {
                if (tmpOrIn.orOp.Count > 1)
                {
                    GlobalVarForApp.tbdOrdersInfo[selectedIndex].orOp.Sort(CompareOrOpByNum);
                }
            }
            //清空显示,重新显示
            orderInfo_dgv.Rows.Clear();
            OrderOp tmpOrOp = new OrderOp();

            //显示所有调度指令
            for (int j = 0; j < GlobalVarForApp.tbdOrdersInfo[selectedIndex].orOp.Count; j++)
            {
                tmpOrOp = tmpOrIn.orOp[j];
                orderInfo_dgv.Rows.Add(1);
                orderInfo_dgv.Rows[j].Cells[0].Value = tmpOrOp.NUM.ToString();        //序号
                if (tmpOrOp.TR_ID == 7)                                               //机号
                {
                    orderInfo_dgv.Rows[j].Cells[1].Value = "B01";
                }
                else
                {
                    orderInfo_dgv.Rows[j].Cells[1].Value = "A0" + tmpOrOp.TR_ID.ToString();
                }
                orderInfo_dgv.Rows[j].Cells[2].Value = tmpOrOp.POWER.ToString();                    //功率
                orderInfo_dgv.Rows[j].Cells[3].Value = tmpOrOp.START_TIME + "-" + tmpOrOp.END_TIME; //开始结束时间
                orderInfo_dgv.Rows[j].Cells[4].Value = tmpOrOp.FREQ.ToString();                     //频率
                orderInfo_dgv.Rows[j].Cells[5].Value = tmpOrOp.CHANNEL.ToString();                  //节目
                orderInfo_dgv.Rows[j].Cells[6].Value = tmpOrOp.CHANNEL.ToString();                  //通道
                if (tmpOrOp.AN_ID == 11)                                                            //天线
                {
                    orderInfo_dgv.Rows[j].Cells[7].Value = "201";
                }
                else
                {
                    orderInfo_dgv.Rows[j].Cells[7].Value = (100 + tmpOrOp.AN_ID).ToString();
                }
                orderInfo_dgv.Rows[j].Cells[8].Value  = tmpOrOp.ANT_PROG.ToString(); //程式
                orderInfo_dgv.Rows[j].Cells[9].Value  = tmpOrOp.AZIMUTH_M;           //方向
                orderInfo_dgv.Rows[j].Cells[10].Value = tmpOrOp.SERV_AREA;           //服务区             ?????
                if (tmpOrOp.OPERATE.Trim() == "1")                                   //操作
                {
                    orderInfo_dgv.Rows[j].Cells[11].Value = "开";
                }
                else
                {
                    orderInfo_dgv.Rows[j].Cells[11].Value = "停";
                }
                orderInfo_dgv.Rows[j].Cells[12].Value = tmpOrOp.DAYS.ToString();            //周期
                //Regex dateRegex = new Regex("d{4}{-,/,\}d{2}{-,/,\}d{2}");
                Regex           dateReg   = new Regex(@"[0-9]{4}[-/\\][0-9]{1,2}[-/\\][0-9]{1,2}");
                MatchCollection dateMatch = dateReg.Matches(tmpOrOp.START_DATE);
                try
                {
                    orderInfo_dgv.Rows[j].Cells[13].Value = dateMatch[0]; //开始时间
                }
                catch (Exception a) {
                    Console.WriteLine(a.Message);
                }
                dateMatch = dateReg.Matches(tmpOrOp.END_DATE.ToString());
                try
                {
                    orderInfo_dgv.Rows[j].Cells[14].Value = dateMatch[0]; //结束时间
                }
                catch (Exception a) {
                    Console.WriteLine(a.Message);
                }
                orderInfo_dgv.Rows[j].Cells[15].Value = "";   //业务    对内广播?对外广播?实验?
                orderInfo_dgv.Rows[j].Cells[16].Value = "";   //备注
            }
            switch (tmpOrIn.orderStatus_enum)
            {
            case orderStatus.unconfirmed:           //
                OrInfo_btn.Text    = "确认接收";
                OrInfo_btn.Enabled = true;
                break;

            /*case orderStatus.confirmed:         //已接收
             *  OrInfo_btn.Text = "反馈执行情况";
             *  OrInfo_btn.Enabled = false;
             *  break;*/

            case orderStatus.noFeedbackYet:          //待反馈
                OrInfo_btn.Text    = "反馈执行情况";
                OrInfo_btn.Enabled = true;
                break;

            case orderStatus.feedback:    //已反馈未确认
                OrInfo_btn.Text    = "已完成";
                OrInfo_btn.Enabled = false;
                break;
            }
        }
Пример #2
0
        //消息处理函数
        public void messageHandle()
        {
            RSData tmp = new RSData();

            while (GlobalVarForApp.receiveMessageQueue.Count > 0)  //队列中有消息进行处理
            {
                //foreach( RSData  rsdData in receiveQueue)
                //{   //
                //"LOGIN_REPLY"     "ADD_USER_REPLY"      "DELETE_USER_REPLY"
                //"DOWN_ORDER"      "QUERY_ORDER_REPLY"     "NEW_MESSAGE"
                tmp = GlobalVarForApp.receiveMessageQueue.Dequeue();
                switch (tmp.CommType.Trim())
                {
                case "LOGIN_REPLY":
                    break;

                case "ADD_USER_REPLY":
                    break;

                case "DELETE_USER_REPLY":
                    break;

                case "DOWN_ORDER":
                    OrderInfo tmpOrInfo = new OrderInfo();              //调度令信息
                    //提取调度令信息
                    tmpOrInfo.orInfo           = tmp.order;
                    tmpOrInfo.orRc             = tmp.orderRecordList;
                    tmpOrInfo.orOp             = tmp.orderOpList;
                    tmpOrInfo.orderStatus_enum = orderStatus.unconfirmed;                //设置调度令状态信息    未接收确认状态
                    GlobalVarForApp.tbdOrdersInfo.Add(tmpOrInfo);                        //添加到调度令信息

                    //对orInfo全局变量按调度令号进行排序
                    if (GlobalVarForApp.tbdOrdersInfo.Count > 1)
                    {
                        GlobalVarForApp.tbdOrdersInfo.Sort(CompareOrderByOrderID);
                    }
                    //od_dis.od_dis_show();            //新调度令显示
                    tbd_lb.BeginUpdate();
                    tbd_lb.Items.Clear();
                    int count = 0;
                    foreach (OrderInfo tmpOrderInfo in GlobalVarForApp.tbdOrdersInfo)
                    {
                        count++;
                        tbd_lb.Items.Add("#" + count.ToString() + "广无调单字【" + tmpOrderInfo.orInfo.ORDER_YEAR + "】" + tmpOrderInfo.orInfo.ORDER_CODE);
                    }
                    tbd_lb.EndUpdate();


                    //
                    //接收到新调度语音提示
                    //

                    break;


                case "QUERY_ORDER_REPLY":
                    break;


                case "NEW_MESSAGE":
                    break;


                default:         /* 可选的 */
                    break;
                }
                // }
            }
        }