示例#1
0
        //************************************************
        //非阻塞模式下数据处理定时器
        //************************************************
        private void Timer3Tick(object sender, EventArgs e)
        {
            //int i;
            var recdPtr = new GprsDataRecord();
            var mess = new StringBuilder(100);

            //读取DTU数据
            if (ServMode == 1)
            {
                if (Gprs.Gprs.do_read_proc(ref recdPtr, mess, true/*checkBox2.Checked*/) >= 0)
                {
                    //RefreshList();
                    switch (recdPtr.m_data_type)
                    {
                        case 0x01:	//注册包
                            var userInfo = new GprsUserInfo();
                            //ushort usPort;
                            if (Gprs.Gprs.get_user_info(recdPtr.m_userid, ref userInfo) == 0)
                            {
                                //已经注册过
                                AddText("\n" + recdPtr.m_userid + "---注册" + "\r\n");
                                //for (i = 0; i <	listView1.Items.Count; i++)
                                //    if (listView1.Items[i].Text == user_info.m_userid)
                                //    {
                                //        listView1.Items[i].SubItems.Add(user_info.m_logon_date);
                                //        listView1.Items[i].SubItems.Add(user_info.m_update_time.ToString());
                                //        listView1.Items[i].SubItems.Add(Gprs.Gprs.inet_ntoa(Gprs.Gprs.ntohl(user_info.m_sin_addr)));
                                //        usPort = user_info.m_sin_port;
                                //        listView1.Items[i].SubItems.Add(usPort.ToString());
                                //        listView1.Items[i].SubItems.Add(Gprs.Gprs.inet_ntoa(Gprs.Gprs.ntohl(user_info.m_local_addr)));
                                //        usPort = user_info.m_local_port;
                                //        listView1.Items[i].SubItems.Add(usPort.ToString());
                                //        return;
                                //    }
                                //没有注册过
                            }
                            //RefreshList();
                            break;
                        case 0x02:	//注销包
                            AddText("\n" + recdPtr.m_userid + "---注销" + "\r\n");
                            //for (i = 0; i <	listView1.Items.Count; i++)
                            //    if (listView1.Items[i].Text == recdPtr.m_userid)
                            //    {
                            //        listView1.Items[i].Remove();
                            //        break;
                            //    }
                            break;
                        case 0x04:	//无效包
                            break;
                        case 0x09:	//数据包
                            //if(checkBox1.Checked)
                            //    AddText("\r\n" + recdPtr.m_userid +"---"+ recdPtr.m_recv_date + "---"+recdPtr.m_data_len.ToString()+"\r\n"
                            //        +StrToHex(recdPtr.m_data_buf,recdPtr.m_data_len)+"\r\n");
                            //else
                            //    AddText("\r\n" + recdPtr.m_userid +"---"+ recdPtr.m_recv_date + "---"+recdPtr.m_data_len.ToString()+"\r\n"
                            //        +System.Text.Encoding.Default.GetString(recdPtr.m_data_buf)+"\r\n");
                            break;
                        case 0x0d:
                            //AddText("\n"+recdPtr.m_userid+"---参数设置成功"+"\r\n");
                            //config.timer3.Enabled = false;++++++++++++++
                            //config.button2.Enabled = true;++++++++++++++
                            MessageBox.Show(Resources.FMain_Timer3Tick_参数设置成功, Resources.FMain_Timer3Tick_信息, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        case 0x0b:
                            //AddText("\n"+recdPtr.m_userid+"---参数查询成功"+"\r\n");
                            //config.readconf();++++++++++++++
                            //config.timer2.Enabled = false;++++++++++++++
                            //config.button1.Enabled = true;++++++++++++++
                            MessageBox.Show(Resources.FMain_Timer3Tick_参数查询成功, Resources.FMain_Timer3Tick_信息, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        case 0x06:
                            //AddText("\n"+recdPtr.m_userid+"---断开PPP连接成功"+"\r\n");
                            break;
                        case 0x07:
                            //AddText("\n"+recdPtr.m_userid+"---停止向DSC发送数据"+"\r\n");
                            break;
                        case 0x08:
                            //AddText("\n"+recdPtr.m_userid+"---允许向DSC发送数据"+"\r\n");
                            break;
                        case 0x0A:
                            //AddText("\n"+recdPtr.m_userid+"---丢弃用户数据"+"\r\n");
                            break;
                    }
                }
            }
        }
示例#2
0
        //*******************************************
        //消息模式时定义消息的响应函数
        //*******************************************
        protected override void WndProc(ref Message m)
        {
            //int i;

            //响应DTU消息
            if (m.Msg == Gprs.Gprs.WmDtu)
            {
                var recdPtr = new GprsDataRecord();
                var mess = new StringBuilder(100);

                //开发包函数,读取DTU数据
                if (Gprs.Gprs.do_read_proc(ref recdPtr, mess, true/*checkBox2.Checked*/) >= 0)
                {
                    //RefreshList();
                    switch (recdPtr.m_data_type)
                    {
                        case 0x01:	//注册包
                            var userInfo = new GprsUserInfo();
                            //ushort usPort;
                            if (Gprs.Gprs.get_user_info(recdPtr.m_userid, ref userInfo) == 0)//开发包函数,通过ID获取DTU信息
                            {
                                //已经注册过
                                //AddText("\n"+recdPtr.m_userid + "---注册"+"\r\n");
                                //	RefreshList();//刷新终端登陆列表
                            }
                            break;
                        case 0x02:	//注销包
                            //AddText("\n"+recdPtr.m_userid + "---注销"+"\r\n");
                            //收到的是注销包,从终端登陆列表中删除该DTU信息
                            //for (i = 0; i <	listView1.Items.Count; i++)
                            //    if (listView1.Items[i].Text == recdPtr.m_userid)
                            //    {
                            //        listView1.Items[i].Remove();
                            //        break;
                            //    }
                            break;
                        case 0x04:	//无效包
                            break;
                        case 0x09:	//数据包
                            //16进制显示收到的数据
                            //if (checkBox1.Checked)
                            {
                                //DtuStateObject state = new DtuStateObject();
                                //state.Aera_IrradiatedSum = 10;
                                //Dqueue.EnQueueItem(state);
                                //logger.Info("Receive a message from Gprs Modules!.");
                                //AddText("\r\n" + recdPtr.m_userid + "---" + recdPtr.m_recv_date + "---" + recdPtr.m_data_len.ToString() + "\r\n"
                                //    + StrToHex(recdPtr.m_data_buf, recdPtr.m_data_len) + "\r\n");
                                //

                                Global.Dqueue.EnQueueItem(recdPtr);
                            }
                            // else
                            //显示数据
                            //AddText("\r\n" + recdPtr.m_userid + "---" + recdPtr.m_recv_date + "---" + recdPtr.m_data_len.ToString() + "\r\n"
                            //    + System.Text.Encoding.Default.GetString(recdPtr.m_data_buf) + "\r\n");
                            break;
                        case 0x0d:
                            //收到参数设置成功数据包,取消参数设置超时定时器
                            //AddText("\n"+recdPtr.m_userid+"---参数设置成功"+"\r\n");
                            //config.timer3.Enabled = false;+++++++
                            //config.button2.Enabled = true;+++++++
                            MessageBox.Show(Resources.FMain_Timer3Tick_参数设置成功, Resources.FMain_Timer3Tick_信息, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        case 0x0b:
                            //收到查询参数数据包,取消参数查询超时定时器,并读取各项参数到DEMO
                            //AddText("\n"+recdPtr.m_userid+"---参数查询成功"+"\r\n");
                            //config.readconf();//读取各项参数+++++++
                            //config.timer2.Enabled = false;+++++++
                            //config.button1.Enabled = true;+++++++
                            MessageBox.Show(Resources.FMain_Timer3Tick_参数查询成功, Resources.FMain_Timer3Tick_信息, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        case 0x06:
                            //AddText("\n"+recdPtr.m_userid+"---断开PPP连接成功"+"\r\n");
                            break;
                        case 0x07:
                            //AddText("\n"+recdPtr.m_userid+"---停止向DSC发送数据"+"\r\n");
                            break;
                        case 0x08:
                            //AddText("\n"+recdPtr.m_userid+"---允许向DSC发送数据"+"\r\n");
                            break;
                        case 0x0A:
                            //AddText("\n"+recdPtr.m_userid+"---丢弃用户数据"+"\r\n");
                            break;
                    }
                }
            }
            else
            {
                //缺省消息处理
                base.WndProc(ref m);
            }
        }
示例#3
0
 public static extern int get_user_info(
     [MarshalAs(UnmanagedType.LPStr)]
     string userid,
     ref GprsUserInfo infoPtr);
示例#4
0
 //****************************************
 //远程参数配置菜单响应函数
 //****************************************
 private void ToolStripMenuItemRemoteParaSetClick(object sender, EventArgs e)
 {
     uint i;
     var userInfo = new GprsUserInfo();
     Config = new FCenterConfig();
     var iDtuAmount = Gprs.Gprs.get_max_user_amount();
     for (i = 0; i < iDtuAmount; i++)
     {
         Gprs.Gprs.get_user_at(i, ref userInfo);//开发包函数,通过DTU顺序号获得DTU信息
         if (userInfo.m_status == 1)//在线
         {
             //向列表框添加ID号
             Config.comboBox8.Items.Add(userInfo.m_userid);
         }
     }
     Config.ShowDialog();
 }
示例#5
0
 public static extern int get_user_at(uint index, ref GprsUserInfo infoPtr);