找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1074|回复: 2

怎样分离二进制数据

[复制链接]
发表于 2009-6-19 15:42:11 | 显示全部楼层 |阅读模式
我把数据读出来了,却不知如何分离成对应的项
struct datarec /* 长度=100 byte */    项序  
     { unsigned   char baoformat;          1  
       unsigned   char station;            2  
       unsigned   char stationname[6];     3
       unsigned   int  rec_time;           4  
       unsigned   long rec_date;           5   
unsigned   int  wd2dd;              6           unsigned   int  wd2df;              7  
       unsigned   int  wd10dd;             8  
       unsigned   int  wd10df;             9   
       unsigned   int  wd10maxdd;         10
       unsigned   int  wd10maxdf;         11
       unsigned   int  wd3smaxdd;         12
       unsigned   int  wd3smaxdf;         13
       unsigned   char wd10maxtime;       14
       unsigned   char wd3smaxtime;       15
                       int  temp;              16
                         int  maxtemp;           17
                   int  mintemp;           18
       unsigned   char maxtemptime;       19
       unsigned   char mintemptime;       20  
       unsigned   int  hourrf;            21
       unsigned   int  dayrf;             22
                  char rh;                23
                          char maxrh;             24
       unsigned   char maxrhtime;         25
                  char minrh;             26
       unsigned   char minrhtime;         27
       unsigned   char rfmark1;           28
                  int  dp;                29
                     int  ps;                30
                  int  maxps;             31
                     int  minps;             32
       unsigned   char maxpstime;         33
       unsigned   char minpstime;         34
       unsigned   char minrf[12];         35  
                   int  Bps;               36
                        -1-
       unsigned   char Ys;                37
       unsigned   char w3a;               38
       unsigned   int  wd3daymax;         39
       unsigned   int  wf3daymax;         40
       unsigned   int  wd3daymaxtime;     41
       unsigned   int  wd10daymax;        42
       unsigned   int  wf10daymax;        43
       unsigned   int  wd10daymaxtime;    44
                  int  daymaxtemp;        45
       unsigned   int  daymaxtemptime;    46
                  int  daymintemp;        47
       unsigned   int  daymintemptime;    48
       unsigned   int  WpV;               49
       unsigned   char Temp[2];           50
      } Recv_Data;

   二. 自动站资料格式中各项说明
    第 1项 资料类型(baoformat) 长=1 byte; 其中: “0”或0为正点报告 ,1为瞬时报告;其中瞬时报告只有正点观测数据;
    第 2项 自动站编号(station);长=1 byte;数值为: 0-99等;
    第 3项 自动站站号(stationname[6]);长=6 byte;  
           例: 59287,G1001等;
    第 4项 资料时间(rec_time) 长=2 byte; 用时分表示;如: 2230 为 22时30分;
    第 5项 资料日期(rec_date) 长=4 byte; 用年月日表示,如:980103 为98年1月3日;
    第 6项 二分钟风向(wd2dd);长=2 byte;0-360 以度表示;
    第 7项 二分钟风速(wd2df);长=2 byte,单位为m/s ,扩大10倍,156=15.6m/s;
    第 8项 十分钟风向(wd10dd);数值说明同第 6项;
    第 9项 十分钟风速(wd10df);数值说明同第 7项;
    第10项 时十分钟最大风速时的风向(wd10maxdd);数值说明同第 6项;
    第11项 时十分钟最大风速(wd10maxdf);数值说明同第7项;
    第12项 时瞬时极大风速时的风向(wd3smaxdd);数值说明同第 6项;
第13项 时瞬时极大风速(wd3smaxdf);数值说明同第 7项;
    第14项 时十分钟最风速出现时间(wd10maxtime);长=1 byte,
用分钟表示;
                          -2-
    第15项 时瞬时极风速出现时间(wd3smaxtime);数值说明同第14项;
    第16项 正点温度(temp);长=2 byte, 数值-500至500有效,扩大10倍, 如:-123=-12.3℃;
    第17项 时最高温度(maxtemp);数值说明同第16项;
    第18项 时最低温度(mintemp);数值说明同第16项;
    第19项 时最高温度出现时间(maxtemptime),数值说明同第14项;
    第20项 时最低温度出现时间(mintemptime),数值说明同第14项;
    第21项 时雨量累计(hourrf);从每小时的59分59秒后清零并开始重新计数;长=2 byte,数值0至9999;以0.1mm为单位,例:1001=100.1mm;
    第22项 日雨量累计(dayrf);数值说明同第21项;
    第23项 正点湿度(rh);长=1 byte; 0至100表示 0%至100%;
    第24项 时最高湿度(maxrh);数值说明同第23项;
    第25项 时最高湿度出现时间(maxrhtime);数值说明同第14项;
    第26项 时最低湿度(minrh);数值说明同第23项;
    第27项 时最低湿度出现时间(minrhtime);数值说明同第14项;
    第28项 当前一分钟雨量指示(rfmark1);
第29项 露点温度(dp);数值说明同第16项;
    第30项:正点气压(ps);长=2 byte,数值在8000至11000有效,表示800.0hpa-1100.0hpa;
    第31项:时最高气压(maxps);数值说明同第30项;
    第32项:时最低气压(minps);数值说明同第30项;
    第33项:时最高气压出现时间((maxpstime);数值说明同第14项;
    第34项:时最低气压出现时间((minpstime);数值说明同第14项;
    第35项:一小时中每五分钟的雨量分布(minrf[12]);若报告时间为00分的正点报,第一个数为0-5分钟的雨量累计,第12个数为56-60分钟的雨量累计;其它时间的报告时,第12个数为报告时间前五分钟的雨量累计,其余的向前推五分钟;
    第36项:测站高度(Bps);用于计算海平面气压;单为0.1米;例: 189=18.9米;
    第37项:自动站探测项目(Ys);用位权方式定义:一个字节有八位,最低位为0位,最高位为第7位;第0位定义降雨,第1位定义风,第2位定义温度,第3位定义湿度,第4位定义气压;当位权定义为0,表示无该项探测项目,定义为1,表示有该项探测项目;如:雨、风、
                           -3-
温项目,Ys=7;(0位=1,权值为1;1位=1,权值为2;2位=1,权值为4);
    第38项:自动站型号(w3a);
    第39项:日瞬时极大风速时的风向(wd3daymax);数值说明同第6项;
第40项:日瞬时极大风速(wf3daymax);数值说明同第 7项;
   第41项 日瞬时极大风速出现时间(wd3daymaxtime);数值说明同第4项;
   第42项 日十分钟最大风速时的风向(wd10daymax);数值说明同第 6项;
   第43项 日十分钟最大风速时(wf10daymax);数值说明同第 7项;
   第44项 日十分钟最大风速出现时间(wd10daymaxtime;);数值说明同第4项;
   第45项 日最高温度(daymaxtemp);数值说明同第16项;
   第46项 日最高温度出现时间(daymaxtemptime);数值说明同第4项;
   第47项 日最低温度(daymintemp);数值说明同第16项;
   第48项 日最低温度出现时间(daymintemptime);数值说明同第4项;
    第49项 自动站电池电压(WpV),长=2 byte,扩大100倍 ,1231=12.31伏;正常值为11.50-13.5伏,当此电压小与11.50伏时,可能交流断电;应检查自动站端的供电或交流保险;
第50项 没使用;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2009-6-20 14:54:05 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2009-6-20 14:54:16 | 显示全部楼层
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 15:00 , Processed in 0.035523 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表