首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

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

2013-01-05 
刷新终端登陆列表//************************************//刷新终端登陆列表//*************************

刷新终端登陆列表


        //************************************
        //刷新终端登陆列表
        //************************************
        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下线并发下线指令


                        continue;
                    }
                    ListInsert(user_info, t_update);
                }
            }
        }


[解决办法]
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下线并发下线指令
continue;
}
ListInsert(user_info, t_update);
}
}
}

热点排行