zoukankan      html  css  js  c++  java
  • 时间校验

    gps设备上传数据到服务器,服务器取本机时间应该不是gps设备发送数据的时间。gps设备上传时间的话占字节太多,所以gps设备上传个占用1字节的校验位,此校验位是gps时间对240取模的模值。本文通过该模值换算得到gps设备上传数据的时间,只用于误差小于2min的情况。

     1         private  static DateTime GetGPSTime(byte secbyte)//参数为时间校验位
    2 {
    3 double gpstime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
    4 int sec = (int)gpstime%60;
    5 int m4 = (int)(gpstime/60) & 3;
    6 int gsec = ((int) secbyte)%60;
    7 int gm4 = (((int) secbyte)/60) & 3;
    8 gpstime = gpstime -sec + gsec;
    9
    10 if (m4 != gm4)
    11 {
    12 int i1 = gm4 << 4;
    13 int b1 = i1 | m4;
    14 switch ((gm4 << 4) | m4)
    15 {
    16 case 0x01:
    17 case 0x12:
    18 case 0x23:
    19 case 0x30:
    20 gpstime -= 60;
    21 break;
    22 case 0x02:
    23 case 0x13:
    24 case 0x20:
    25 case 0x31:
    26 gpstime -= 120;
    27 break;
    28 case 0x03:
    29 case 0x10:
    30 case 0x21:
    31 case 0x32:
    32 gpstime += 60;
    33 break;
    34 default:
    35 break;
    36 }
    37 }
    38 DateTime gTime=new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(Convert.ToInt32(gpstime + 28800));
    39 return gTime;
    40 }



  • 相关阅读:
    数据链路层
    补码加减法
    matlab函数
    HDU2159_二维完全背包问题
    HDU2844买表——多重背包初探
    HDU1025贫富平衡
    最大m段子段和
    01背包浮点数情况
    第K大01背包
    HDU2955 01背包
  • 原文地址:https://www.cnblogs.com/beyondGodLike/p/2358976.html
Copyright © 2011-2022 走看看