当前位置: 代码迷 >> GIS >> 刷新终端登陆列表解决办法
  详细解决方案

刷新终端登陆列表解决办法

热度:114   发布时间:2016-05-05 06:22:48.0
刷新终端登陆列表


        //************************************
        //刷新终端登陆列表
        //************************************
        public void RefreshList()
        {
            uint i, iDtuAmount;
            string str = "";
            long t_update, t_now;
            StringBuilder mess = new StringBuilder(1000);
            GPRS_USER_INFO user_info = new GPRS_USER_INFO();
            listView1.Items.Clear();//清空终端登陆列表
            str = str + 0x00 + 0x00 + 0x00;
            iDtuAmount = Gps.get_max_user_amount();//开发包函数,返回中心最大连接DTU数量
            for (i = 0; i < iDtuAmount; i++)
            {
                Gps.get_user_at(i, ref user_info);//开发包函数,通过DTU顺序号获取DTU信息
                if (user_info.m_status == 1)
                {
                    t_update = (long)(user_info.m_update_time[0])
                                + (long)(user_info.m_update_time[1]) * 256
                                + (long)(user_info.m_update_time[2]) * 256 * 256
                                + (long)(user_info.m_update_time[3]) * 256 * 256 * 256
                                + 3600 * 8;
                    t_now = (long)Math.Round((DateTime.Now.ToOADate() - 25569) * 3600 * 24);
                    if ((t_now - t_update) > 1 * 60)//判断DTU最后注册时间与现在时间的差值是否超过设置的超时时间
                    { //若超时则认为该DTU不在线,调用开发包函数使其下线
                        Gps.do_close_one_user2(user_info.m_userid, mess);//开发包函数,使某个DTU下线并发下线指令
  相关解决方案