加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
dlt645_api_07.h 80.10 KB
一键复制 编辑 原始数据 按行查看 历史
unknown 提交于 2015-12-01 15:16 . 版本1.0
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720
/*******************************************************************************
File name: dlt645_api_07.h
Author: 李明
Version: 1.0
Date: 2012年10月22日
Description: dlt645 2007版规约解析头文件,用于智能采集终端与集中器、集中
器与智能电表通信的规约处理
Others:
Function List:
1. History:
1) Date:
2) Author:
3) Modification: Created
2. ...
*******************************************************************************/
#ifndef _DLT645_API_2007_H_
#define _DLT645_API_2007_H_
#pragma pack(push) // 采用一字节对齐
#pragma pack(1)
/* 调试开关 */
#define D07_DEBUG_ON
#undef D07_DEBUG_ON // 正式版注释掉
#ifdef D07_DEBUG_ON
#define OUT_BUF_LEN 1024
#define D07_ON 0
#define D07_OFF 1
extern int g_need_pack_07;
extern char g_out_data_07[OUT_BUF_LEN];
#endif
#ifndef _TYPE_DEF_LM_
#define _TYPE_DEF_LM_
#ifndef __RTL_H__
#define __RTL_H__
typedef char BOOL;
#endif
#define TRUE (1)
#define FALSE (0)
typedef unsigned char UCHAR;
typedef char CHAR;
typedef unsigned short USHORT;
typedef short SHORT;
typedef unsigned long ULONG;
typedef long LONG;
#ifndef _TYPE_DEF_
#define _TYPE_DEF_
typedef char INT8; //c
typedef short INT16; //s
typedef int INT32; //l
typedef unsigned char UINT8; //uc
typedef unsigned short UINT16; //us
typedef unsigned int UINT32; //ul
#ifdef MACHINE_64_BITS
typedef long INT64;
typedef unsigned long UINT64;
#else
typedef long long INT64;
typedef unsigned long long UINT64;
#endif
typedef char* STRING; //str
typedef char ISBOOL; //b
typedef unsigned int IPADDR; //ip
typedef double DOUBLE;
typedef void* FRWK_HANDLE;
#endif
#endif
/* 宏定义 **/
#define NAME_LEN 128
#define UNKNOWN_RULER_ID 0XFFFFFFFF
#define D07_ADDR_LEN 12 /* 地址长 */
#define D07_DATA_MAX_NR 240 /* dlt645 2007 最大数据域字节数算规约ID */
#define D07_DATA_MAX (D07_DATA_MAX_NR + 4) /* dlt645 2007 最大数据域字节数 */
#define D07_FRAME_LEN_MIN 12 /* DLT645 2007 最小帧字节数 */
/*功能码 2007*/
#define D07_CTRL_RESV 0x00 // 保留
#define D07_CTRL_SYNC_TIME 0x08 // 广播校时
#define D07_CTRL_READ_DATA 0x11 // 读数据
#define D07_CTRL_READ_AFTERDATA 0x12 // 读后续数据
#define D07_CTRL_READ_ADDR 0x13 // 读通信地址
#define D07_CTRL_WRITE_DATA 0x14 // 写数据
#define D07_CTRL_WRITE_ADDR 0x15 // 写通信地址
#define D07_CTRL_FREEZ_COMM 0x16 // 冻结命令
#define D07_CTRL_MODIFY_BAUD 0x17 // 修改通信速率
#define D07_CTRL_MODIFY_PASSWORD 0x18 // 修改密码
#define D07_CTRL_CLEAR_MAXDEMAND 0x19 // 最大需量清零
#define D07_CTRL_CLEAR_METER 0x1A // 电表清零
#define D07_CTRL_CLEAR_EVENT 0x1B // 事件清零
#define D07_CTRL_COMM 0x1C // 控制命令
/** 宏定义 */
/* 返回值类型 列表*/
typedef enum
{
E_D07_OK = 0, /* 返回OK */
E_D07_ERRO_NULL, /* 指针为空 */
E_D07_ERRO_UNKOWN_ID, // 未知规约ID
E_D07_ERRO_PARA_NONE, /* 不存在 */
E_D07_ERRO_PARA_OUT_RANGE,
//check frame
E_D07_ERRO_FRAME_UNCOMP, /* 不完整的帧数据 */
E_D07_ERRO_FRAME_0x68, /* 测试帧帧起始符 0x68 的位置不对 */
E_D07_ERRO_FRAME_CHECK_SUM, /* 测试帧检验和不对 */
E_D07_ERRO_FRAME_END_0x16, /* 测试帧结束符 0x16 不对 */
E_D07_ERRO_NONE_FRAME, // 没有找到帧
}eD07Err;
/* dlt645 2007规约类型 **/
typedef enum
{
E_D07_RULER_TYPE_UNKNOWN = 0, // 未知的规约类型
/* 标准协议 */
E_D07_RULER_TYPE_A1_MIN,
/* [00] [00] [(00~FF)] [00] */
E_D07_RULER_TYPE_COMB_HAVE_POWER_TOTAL = E_D07_RULER_TYPE_A1_MIN,// 组合有功总电能
E_D07_RULER_TYPE_COMB_HAVE_POWER_RATE, // 组合有功费率电能
E_D07_RULER_TYPE_COMB_HAVE_POWER_BLOCK, // 组合有电能数据块
/* [00] [01] [(00~FF)] [00] */
E_D07_RULER_TYPE_FORTH_HAVE_POWER_TOTAL, // 正向有功总电能
E_D07_RULER_TYPE_FORTH_HAVE_POWER_RATE, // 正向有功费率电能
E_D07_RULER_TYPE_FORTH_HAVE_POWER_BLOCK, // 正向有功电能数据块
/* [00] [02] [(00~FF)] [00] */
E_D07_RULER_TYPE_BACK_HAVE_POWER_TOTAL, // 反向有功总电能
E_D07_RULER_TYPE_BACK_HAVE_POWER_RATE, // 反向有功费率电能
E_D07_RULER_TYPE_BACK_HAVE_POWER_BLOCK, // 反向有功电能数据块
/* [00] [03] [(00~FF)] [00] */
E_D07_RULER_TYPE_COMB_NONE_1_POWER_TOTAL, // 组合无功1总电能
E_D07_RULER_TYPE_COMB_NONE_1_POWER_RATE, // 组合无功1费率电能
E_D07_RULER_TYPE_COMB_NONE_1_POWER_BLOCK, // 组合无功1电能数据块
/* [00] [04] [(00~FF)] [00] */
E_D07_RULER_TYPE_COMB_NONE_2_POWER_TOTAL, // 组合无功2总电能
E_D07_RULER_TYPE_COMB_NONE_2_POWER_RATE, // 组合无功2费率电能
E_D07_RULER_TYPE_COMB_NONE_2_POWER_BLOCK, // 组合无功2电能数据块
/* [00] [05] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_1_NONE_POWER_TOTAL, // 第一象限无功总电能
E_D07_RULER_TYPE_QUAD_1_NONE_POWER_RATE, // 第一象限无功费率电能
E_D07_RULER_TYPE_QUAD_1_NONE_POWER_BLOCK, // 第一象限无功电能数据块
/* [00] [06] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_2_NONE_POWER_TOTAL, // 第二象限无功总电能
E_D07_RULER_TYPE_QUAD_2_NONE_POWER_RATE, // 第二象限无功费率电能
E_D07_RULER_TYPE_QUAD_2_NONE_POWER_BLOCK, // 第二象限无功电能数据块
/* [00] [07] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_3_NONE_POWER_TOTAL, // 第三象限无功总电能
E_D07_RULER_TYPE_QUAD_3_NONE_POWER_RATE, // 第三象限无功费率电能
E_D07_RULER_TYPE_QUAD_3_NONE_POWER_BLOCK, // 第三象限无功电能数据块
/* [00] [08] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_4_NONE_POWER_TOTAL, // 第四象限无功总电能
E_D07_RULER_TYPE_QUAD_4_NONE_POWER_RATE, // 第四象限无功费率电能
E_D07_RULER_TYPE_QUAD_4_NONE_POWER_BLOCK, // 第四象限无功电能数据块
/* [00] [09] [(00~FF)] [00] */
E_D07_RULER_TYPE_FORTH_APPARENT_POWER_TOTAL, // 正向视在总电能
E_D07_RULER_TYPE_FORTH_APPARENT_POWER_RATE, // 正向视在费率电能
E_D07_RULER_TYPE_FORTH_APPARENT_POWER_BLOCK, // 正向视在电能数据块
/* [00] [0A] [(00~FF)] [00] */
E_D07_RULER_TYPE_BACK_APPARENT_POWER_TOTAL, // 反向视在总电能
E_D07_RULER_TYPE_BACK_APPARENT_POWER_RATE, // 反向视在费率电能
E_D07_RULER_TYPE_BACK_APPARENT_POWER_BLOCK, // 反向视在电能数据块
/* [00] [80][00] [00] */
E_D07_RULER_TYPE_ASSO_POWER_TOTAL, // 关联总电能
/* [00] [81][00] [00] */
E_D07_RULER_TYPE_FORTH_FUND_HAVE_POWER_TOTAL, // 正向有功基波总电能
/* [00] [82][00] [00] */
E_D07_RULER_TYPE_BACK_FUND_HAVE_POWER_TOTAL, // 反向有功基波总电能
/* [00] [83][00] [00] */
E_D07_RULER_TYPE_FORTH_HARM_HAVE_POWER_TOTAL, // 正向有功谐波总电能
/* [00] [84][00] [00] */
E_D07_RULER_TYPE_BACK_HARM_HAVE_POWER_TOTAL, // 反向有功谐波总电能
/* [00] [85][00] [00] */
E_D07_RULER_TYPE_COPR_LOSS_HAVE_POWER_COMP_TOTAL, // 铜损有功总电能补偿量
/* [00] [86][00] [00] */
E_D07_RULER_TYPE_CORE_LOSS_HAVE_POWER_COMP_TOTAL, // 铁损有功总电能补偿量
/* [00] [(15~9A)][00] [00] */
E_D07_RULER_TYPE_PHASE_A_FORTH_HAVE_POWER, // A相正向有功电能
E_D07_RULER_TYPE_PHASE_A_BACK_HAVE_POWER, // A相反向有功电能
E_D07_RULER_TYPE_PHASE_A_COMB_NONE_1_POWER, // A相组合无功1电能
E_D07_RULER_TYPE_PHASE_A_COMB_NONE_2_POWER, // A相组合无功2电能
E_D07_RULER_TYPE_PHASE_A_QUAD_1_NONE_POWER, // A相第一象限无功电能
E_D07_RULER_TYPE_PHASE_A_QUAD_2_NONE_POWER, // A相第二象限无功电能
E_D07_RULER_TYPE_PHASE_A_QUAD_3_NONE_POWER, // A相第三象限无功电能
E_D07_RULER_TYPE_PHASE_A_QUAD_4_NONE_POWER, // A相第四象限无功电能
E_D07_RULER_TYPE_PHASE_A_FORTH_APPARENT_POWER, // A相正向视在电能
E_D07_RULER_TYPE_PHASE_A_BACK_APPARENT_POWER, // A相反向视在电能
E_D07_RULER_TYPE_PHASE_A_ASSO_POWER, // A相关联电能
E_D07_RULER_TYPE_PHASE_A_FORTH_FUND_HAVE_POWER, // A相正向有功基波电能
E_D07_RULER_TYPE_PHASE_A_BACK_FUND_HAVE_POWER, // A相反向有功基波电能
E_D07_RULER_TYPE_PHASE_A_FORTH_HARM_HAVE_POWER, // A相正向有功谐波电能
E_D07_RULER_TYPE_PHASE_A_BACK_HARM_HAVE_POWER, // A相反向有功谐波电能
E_D07_RULER_TYPE_PHASE_A_COPR_LOSS_HAVE_POWER_COMP, // A相铜损有功电能补偿量
E_D07_RULER_TYPE_PHASE_A_CORE_LOSS_HAVE_POWER_COMP, // A相铁损有功电能补偿量
/* [00] [(29~AE)][00] [00] */
E_D07_RULER_TYPE_PHASE_B_FORTH_HAVE_POWER, // B相正向有功电能
E_D07_RULER_TYPE_PHASE_B_BACK_HAVE_POWER, // B相反向有功电能
E_D07_RULER_TYPE_PHASE_B_COMB_NONE_1_POWER, // B相组合无功1电能
E_D07_RULER_TYPE_PHASE_B_COMB_NONE_2_POWER, // B相组合无功2电能
E_D07_RULER_TYPE_PHASE_B_QUAD_1_NONE_POWER, // B相第一象限无功电能
E_D07_RULER_TYPE_PHASE_B_QUAD_2_NONE_POWER, // B相第二象限无功电能
E_D07_RULER_TYPE_PHASE_B_QUAD_3_NONE_POWER, // B相第三象限无功电能
E_D07_RULER_TYPE_PHASE_B_QUAD_4_NONE_POWER, // B相第四象限无功电能
E_D07_RULER_TYPE_PHASE_B_FORTH_APPARENT_POWER, // B相正向视在电能
E_D07_RULER_TYPE_PHASE_B_BACK_APPARENT_POWER, // B相反向视在电能
E_D07_RULER_TYPE_PHASE_B_ASSO_POWER, // B相关联电能
E_D07_RULER_TYPE_PHASE_B_FORTH_FUND_HAVE_POWER, // B相正向有功基波电能
E_D07_RULER_TYPE_PHASE_B_BACK_FUND_HAVE_POWER, // B相反向有功基波电能
E_D07_RULER_TYPE_PHASE_B_FORTH_HARM_HAVE_POWER, // B相正向有功谐波电能
E_D07_RULER_TYPE_PHASE_B_BACK_HARM_HAVE_POWER, // B相反向有功谐波电能
E_D07_RULER_TYPE_PHASE_B_COPR_LOSS_HAVE_POWER_COMP, // B相铜损有功电能补偿量
E_D07_RULER_TYPE_PHASE_B_CORE_LOSS_HAVE_POWER_COMP, // B相铁损有功电能补偿量
/* [00] [(3D~C2)][00] [00] */
E_D07_RULER_TYPE_PHASE_C_FORTH_HAVE_POWER, // C相正向有功电能
E_D07_RULER_TYPE_PHASE_C_BACK_HAVE_POWER, // C相反向有功电能
E_D07_RULER_TYPE_PHASE_C_COMB_NONE_1_POWER, // C相组合无功1电能
E_D07_RULER_TYPE_PHASE_C_COMB_NONE_2_POWER, // C相组合无功2电能
E_D07_RULER_TYPE_PHASE_C_QUAD_1_NONE_POWER, // C相第一象限无功电能
E_D07_RULER_TYPE_PHASE_C_QUAD_2_NONE_POWER, // C相第二象限无功电能
E_D07_RULER_TYPE_PHASE_C_QUAD_3_NONE_POWER, // C相第三象限无功电能
E_D07_RULER_TYPE_PHASE_C_QUAD_4_NONE_POWER, // C相第四象限无功电能
E_D07_RULER_TYPE_PHASE_C_FORTH_APPARENT_POWER, // C相正向视在电能
E_D07_RULER_TYPE_PHASE_C_BACK_APPARENT_POWER, // C相反向视在电能
E_D07_RULER_TYPE_PHASE_C_ASSO_POWER, // C相关联电能
E_D07_RULER_TYPE_PHASE_C_FORTH_FUND_HAVE_POWER, // C相正向有功基波电能
E_D07_RULER_TYPE_PHASE_C_BACK_FUND_HAVE_POWER, // C相反向有功基波电能
E_D07_RULER_TYPE_PHASE_C_FORTH_HARM_HAVE_POWER, // C相正向有功谐波电能
E_D07_RULER_TYPE_PHASE_C_BACK_HARM_HAVE_POWER, // C相反向有功谐波电能
E_D07_RULER_TYPE_PHASE_C_COPR_LOSS_HAVE_POWER_COMP, // C相铜损有功电能补偿量
E_D07_RULER_TYPE_PHASE_C_CORE_LOSS_HAVE_POWER_COMP, // C相铁损有功电能补偿量
// 对应表A.1电能数据标识编码表最大标识 */
E_D07_RULER_TYPE_A1_MAX = E_D07_RULER_TYPE_PHASE_C_CORE_LOSS_HAVE_POWER_COMP,
/* 对应表A.2 */
E_D07_RULER_TYPE_A2_MIN,
/* [01] [00] [(00~FF)] [00] */
/* [01] [01] [(00~FF)] [00] */
E_D07_RULER_TYPE_FORTH_HAVE_DEMAND_TOTAL = E_D07_RULER_TYPE_A2_MIN, // 正向有功总最大需量及发生时间
E_D07_RULER_TYPE_FORTH_HAVE_DEMAND_RATE, // 正向有功费率最大需量及发生时间
E_D07_RULER_TYPE_FORTH_HAVE_DEMAND_BLOCK, // 正向有功最大需量及发生时间数据块
/* [01] [02] [(00~FF)] [00] */
E_D07_RULER_TYPE_BACK_HAVE_DEMAND_TOTAL, // 反向有功总最大需量及发生时间
E_D07_RULER_TYPE_BACK_HAVE_DEMAND_RATE, // 反向有功费率最大需量及发生时间
E_D07_RULER_TYPE_BACK_HAVE_DEMAND_BLOCK, // 反向有功最大需量及发生时间数据块
/* [01] [03] [(00~FF)] [00] */
E_D07_RULER_TYPE_COMB_NONE_1_DEMAND_TOTAL, // 组合无功1总最大需量及发生时间
E_D07_RULER_TYPE_COMB_NONE_1_DEMAND_RATE, // 组合无功1费率最大需量及发生时间
E_D07_RULER_TYPE_COMB_NONE_1_DEMAND_BLOCK, // 组合无功1最大需量及发生时间数据块
/* [01] [04] [(00~FF)] [00] */
E_D07_RULER_TYPE_COMB_NONE_2_DEMAND_TOTAL, // 组合无功2总最大需量及发生时间
E_D07_RULER_TYPE_COMB_NONE_2_DEMAND_RATE, // 组合无功2费率最大需量及发生时间
E_D07_RULER_TYPE_COMB_NONE_2_DEMAND_BLOCK, // 组合无功2最大需量及发生时间数据块
/* [01] [05] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_1_NONE_DEMAND_TOTAL, // 第一象限无功总最大需量及发生时间
E_D07_RULER_TYPE_QUAD_1_NONE_DEMAND_RATE, // 第一象限无功费率最大需量及发生时间
E_D07_RULER_TYPE_QUAD_1_NONE_DEMAND_BLOCK, // 第一象限无功最大需量及发生时间数据块
/* [01] [06] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_2_NONE_DEMAND_TOTAL, // 第二象限无功总最大需量及发生时间
E_D07_RULER_TYPE_QUAD_2_NONE_DEMAND_RATE, // 第二象限无功费率最大需量及发生时间
E_D07_RULER_TYPE_QUAD_2_NONE_DEMAND_BLOCK, // 第二象限无功最大需量及发生时间数据块
/* [01] [07] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_3_NONE_DEMAND_TOTAL, // 第三象限无功总最大需量及发生时间
E_D07_RULER_TYPE_QUAD_3_NONE_DEMAND_RATE, // 第三象限无功费率最大需量及发生时间
E_D07_RULER_TYPE_QUAD_3_NONE_DEMAND_BLOCK, // 第三象限无功最大需量及发生时间数据块
/* [01] [08] [(00~FF)] [00] */
E_D07_RULER_TYPE_QUAD_4_NONE_DEMAND_TOTAL, // 第四象限无功总最大需量及发生时间
E_D07_RULER_TYPE_QUAD_4_NONE_DEMAND_RATE, // 第四象限无功费率最大需量及发生时间
E_D07_RULER_TYPE_QUAD_4_NONE_DEMAND_BLOCK, // 第四象限无功最大需量及发生时间数据块
/* [01] [09] [(00~FF)] [00] */
E_D07_RULER_TYPE_FORTH_APPARENT_DEMAND_TOTAL, // 正向视在总最大需量及发生时间
E_D07_RULER_TYPE_FORTH_APPARENT_DEMAND_RATE, // 正向视在费率最大需量及发生时间
E_D07_RULER_TYPE_FORTH_APPARENT_DEMAND_BLOCK, // 正向视在最大需量及发生时间数据块
/* [01] [0A] [(00~FF)] [00] */
E_D07_RULER_TYPE_BACK_APPARENT_DEMAND_TOTAL, // 反向视在总最大需量及发生时间
E_D07_RULER_TYPE_BACK_APPARENT_DEMAND_RATE, // 反向视在费率最大需量及发生时间
E_D07_RULER_TYPE_BACK_APPARENT_DEMAND_BLOCK, // 反向视在最大需量及发生时间数据块
/* [01] [(15~9A)][00] [00] */
E_D07_RULER_TYPE_PHASE_A_FORTH_HAVE_DEMAND, // A相正向有功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_BACK_HAVE_DEMAND, // A相反向有功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_COMB_NONE_1_DEMAND, // A相组合无功1最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_COMB_NONE_2_DEMAND, // A相组合无功2最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_QUAD_1_NONE_DEMAND, // A相第一象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_QUAD_2_NONE_DEMAND, // A相第二象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_QUAD_3_NONE_DEMAND, // A相第三象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_QUAD_4_NONE_DEMAND, // A相第四象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_FORTH_APPARENT_DEMAND, // A相正向视在最大需量及发生时间
E_D07_RULER_TYPE_PHASE_A_BACK_APPARENT_DEMAND, // A相反向视在最大需量及发生时间
/* [01] [(29~AE)][00] [00] */
E_D07_RULER_TYPE_PHASE_B_FORTH_HAVE_DEMAND, // B相正向有功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_BACK_HAVE_DEMAND, // B相反向有功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_COMB_NONE_1_DEMAND, // B相组合无功1最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_COMB_NONE_2_DEMAND, // B相组合无功2最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_QUAD_1_NONE_DEMAND, // B相第一象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_QUAD_2_NONE_DEMAND, // B相第二象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_QUAD_3_NONE_DEMAND, // B相第三象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_QUAD_4_NONE_DEMAND, // B相第四象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_FORTH_APPARENT_DEMAND, // B相正向视在最大需量及发生时间
E_D07_RULER_TYPE_PHASE_B_BACK_APPARENT_DEMAND, // B相反向视在最大需量及发生时间
/* [01] [(3D~C2)][00] [00] */
E_D07_RULER_TYPE_PHASE_C_FORTH_HAVE_DEMAND, // C相正向有功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_BACK_HAVE_DEMAND, // C相反向有功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_COMB_NONE_1_DEMAND, // C相组合无功1最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_COMB_NONE_2_DEMAND, // C相组合无功2最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_QUAD_1_NONE_DEMAND, // C相第一象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_QUAD_2_NONE_DEMAND, // C相第二象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_QUAD_3_NONE_DEMAND, // C相第三象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_QUAD_4_NONE_DEMAND, // C相第四象限无功最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_FORTH_APPARENT_DEMAND, // C相正向视在最大需量及发生时间
E_D07_RULER_TYPE_PHASE_C_BACK_APPARENT_DEMAND, // C相反向视在最大需量及发生时间
/* 对应表A.2最大需量及发生时间数据标识编码表 */
E_D07_RULER_TYPE_A2_MAX = E_D07_RULER_TYPE_PHASE_C_BACK_APPARENT_DEMAND,
/* 对应表A.3 变量数据标识编码表 */
E_D07_RULER_TYPE_A3_MIN,
E_D07_RULER_TYPE_PHASE_A_VOLT = E_D07_RULER_TYPE_A3_MIN,// A相电压
E_D07_RULER_TYPE_PHASE_B_VOLT, // B相电压
E_D07_RULER_TYPE_PHASE_C_VOLT, // C相电压
E_D07_RULER_TYPE_VOLT_BLOCK, // 电压数据块
E_D07_RULER_TYPE_PHASE_A_ELEC, // A相电流
E_D07_RULER_TYPE_PHASE_B_ELEC, // B相电流
E_D07_RULER_TYPE_PHASE_C_ELEC, // C相电流
E_D07_RULER_TYPE_ELEC_BLOCK, // 电流数据块
E_D07_RULER_TYPE_INSTANT_HAVE_POWER_RATE_TOTAL, // 瞬时总有功功率
E_D07_RULER_TYPE_INSTANT_PHASE_A_HAVE_POWER_RATE, // 瞬时A相有功功率
E_D07_RULER_TYPE_INSTANT_PHASE_B_HAVE_POWER_RATE, // 瞬时B相有功功率
E_D07_RULER_TYPE_INSTANT_PHASE_C_HAVE_POWER_RATE, // 瞬时C相有功功率
E_D07_RULER_TYPE_INSTANT_HAVE_POWER_RATE_BLOCK, // 瞬时有功功率数据块
E_D07_RULER_TYPE_INSTANT_NONE_POWER_RATE_TOTAL, // 瞬时总无功功率
E_D07_RULER_TYPE_INSTANT_PHASE_A_NONE_POWER_RATE, // 瞬时A相无功功率
E_D07_RULER_TYPE_INSTANT_PHASE_B_NONE_POWER_RATE, // 瞬时B相无功功率
E_D07_RULER_TYPE_INSTANT_PHASE_C_NONE_POWER_RATE, // 瞬时C相无功功率
E_D07_RULER_TYPE_INSTANT_NONE_POWER_RATE_BLOCK, // 瞬时无功功率数据块
E_D07_RULER_TYPE_INSTANT_APPARENT_POWER_RATE_TOTAL, // 瞬时总视在功率
E_D07_RULER_TYPE_INSTANT_PHASE_A_APPARENT_POWER_RATE, // 瞬时A相视在功率
E_D07_RULER_TYPE_INSTANT_PHASE_B_APPARENT_POWER_RATE, // 瞬时B相视在功率
E_D07_RULER_TYPE_INSTANT_PHASE_C_APPARENT_POWER_RATE, // 瞬时C相视在功率
E_D07_RULER_TYPE_INSTANT_APPARENT_POWER_RATE_BLOCK, // 瞬时视在功率数据块
E_D07_RULER_TYPE_POWER_RATE_FACTOR_TOTAL, // 总功率因数
E_D07_RULER_TYPE_PHASE_A_POWER_RATE_FACTOR, // A相功率因数
E_D07_RULER_TYPE_PHASE_B_POWER_RATE_FACTOR, // B相功率因数
E_D07_RULER_TYPE_PHASE_C_POWER_RATE_FACTOR, // C相功率因数
E_D07_RULER_TYPE_POWER_RATE_FACTOR_BLOCK, // 功率因数数据块
E_D07_RULER_TYPE_PHASE_A_ANGLE, // A相相角
E_D07_RULER_TYPE_PHASE_B_ANGLE, // B相相角
E_D07_RULER_TYPE_PHASE_C_ANGLE, // C相相角
E_D07_RULER_TYPE_ANGLE_BLOCK, // 相角数据块
E_D07_RULER_TYPE_PHASE_A_VOLT_WAVEFORM_DISTORTION, // A相电压波形失真度
E_D07_RULER_TYPE_PHASE_B_VOLT_WAVEFORM_DISTORTION, // B相电压波形失真度
E_D07_RULER_TYPE_PHASE_C_VOLT_WAVEFORM_DISTORTION, // C相电压波形失真度
E_D07_RULER_TYPE_VOLT_WAVEFORM_DISTORTION_BLOCK, // 电压波形失真度数据块
E_D07_RULER_TYPE_PHASE_A_ELEC_WAVEFORM_DISTORTION, // A相电流波形失真度
E_D07_RULER_TYPE_PHASE_B_ELEC_WAVEFORM_DISTORTION, // B相电流波形失真度
E_D07_RULER_TYPE_PHASE_C_ELEC_WAVEFORM_DISTORTION, // C相电流波形失真度
E_D07_RULER_TYPE_ELEC_WAVEFORM_DISTORTION_BLOCK, // 电流波形失真度数据块
E_D07_RULER_TYPE_PHASE_A_VOLT_HARMONIC_CONTENT_T, // A相电压(t)次谐波含量
E_D07_RULER_TYPE_PHASE_A_VOLT_HARMONIC_CONTENT_BLOCK, // A相电压次谐波含量数据块
E_D07_RULER_TYPE_PHASE_B_VOLT_HARMONIC_CONTENT_T, // B相电压(t)次谐波含量
E_D07_RULER_TYPE_PHASE_B_VOLT_HARMONIC_CONTENT_BLOCK, // B相电压谐波含量数据块
E_D07_RULER_TYPE_PHASE_C_VOLT_HARMONIC_CONTENT_T, // C相电压(t)次谐波含量
E_D07_RULER_TYPE_PHASE_C_VOLT_HARMONIC_CONTENT_BLOCK, // C相电压谐波含量数据块
E_D07_RULER_TYPE_PHASE_A_ELEC_HARMONIC_CONTENT_T, // A相电流(t)次谐波含量
E_D07_RULER_TYPE_PHASE_A_ELEC_HARMONIC_CONTENT_BLOCK, // A相电流谐波含量数据块
E_D07_RULER_TYPE_PHASE_B_ELEC_HARMONIC_CONTENT_T, // C相电流(t)次谐波含量
E_D07_RULER_TYPE_PHASE_B_ELEC_HARMONIC_CONTENT_BLOCK, // C相电流谐波含量数据块
E_D07_RULER_TYPE_PHASE_C_ELEC_HARMONIC_CONTENT_T, // C相电流(t)次谐波含量
E_D07_RULER_TYPE_PHASE_C_ELEC_HARMONIC_CONTENT_BLOCK, // C相电流谐波含量数据块
E_D07_RULER_TYPE_ZERO_LINE_ELEC, // 零线电流
E_D07_RULER_TYPE_POWER_GRID_HZ, // 电网频率
E_D07_RULER_TYPE_1M_AVER_HAVE_POWER_RATE_TOTAL, // 一分钟有功总平均功率
E_D07_RULER_TYPE_CURRENT_HAVE_POWER_DEMAND, // 当前有功需量
E_D07_RULER_TYPE_CURRENT_NONE_POWER_DEMAND, // 当前无功需量
E_D07_RULER_TYPE_CURRENT_APPARENT_POWER_DEMAND, // 当前视在需量
E_D07_RULER_TYPE_METER_TEMP, // 表内温度
E_D07_RULER_TYPE_INTER_CLOCK_CELL_VOLT, // 时钟电池电压(内部)
E_D07_RULER_TYPE_READ_METER_CELL_VOLT, // 停电抄表电池电压(外部)
E_D07_RULER_TYPE_INTER_CLOCK_WORK_TIME, // 内部电池工作时间
E_D07_RULER_TYPE_A3_MAX = E_D07_RULER_TYPE_INTER_CLOCK_WORK_TIME,
/* 对应表 A.4 事件记录数据标识编码表 */
E_D07_RULER_TYPE_A4_MIN, /* 表A.4规约最小值 */
E_D07_RULER_TYPE_PHASE_ABC_LOSS_VOLT_TIMES = E_D07_RULER_TYPE_A4_MIN,// ABC相失压次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_LOSS_VOLT_RECORD, // 上(n)次A相失压记录
E_D07_RULER_TYPE_PHASE_B_LOSS_VOLT_RECORD, // 上(n)次B相失压记录
E_D07_RULER_TYPE_PHASE_C_LOSS_VOLT_RECORD, // 上(n)次C相失压记录
E_D07_RULER_TYPE_PHASE_ABC_LESS_VOLT_TIMES, // ABC相欠压次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_LESS_VOLT_RECORD, // 上(n)次A相欠压记录
E_D07_RULER_TYPE_PHASE_B_LESS_VOLT_RECORD, // 上(n)次B相欠压记录
E_D07_RULER_TYPE_PHASE_C_LESS_VOLT_RECORD, // 上(n)次C相欠压记录
E_D07_RULER_TYPE_PHASE_ABC_MORE_VOLT_TIMES, // ABC相过压次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_MORE_VOLT_RECORD, // 上(n)次A相过压记录
E_D07_RULER_TYPE_PHASE_B_MORE_VOLT_RECORD, // 上(n)次B相过压记录
E_D07_RULER_TYPE_PHASE_C_MORE_VOLT_RECORD, // 上(n)次C相过压记录
E_D07_RULER_TYPE_PHASE_ABC_DROP_TIMES, // ABC相断相次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_DROP_RECORD, // 上(n)次A相断相记录
E_D07_RULER_TYPE_PHASE_B_DROP_RECORD, // 上(n)次B相断相记录
E_D07_RULER_TYPE_PHASE_C_DROP_RECORD, // 上(n)次C相断相记录
E_D07_RULER_TYPE_LOSS_VOLT_TIMES_TOTAL, // 全失压次数,总累计时间
E_D07_RULER_TYPE_LOSS_ALL_VOLT_TIME_N, // 上(n)次全失压发生时刻,电流值,结束时刻
E_D07_RULER_TYPE_APS_LOSS_ELEC_TIMES_TOTAL, // 辅助电源失电发生次数,总累计时间
E_D07_RULER_TYPE_APS_LOSS_ELEC_TIME_N, // 上(n)次辅助电源失电发生时刻,结束时刻
E_D07_RULER_TYPE_VOLT_ANTI_PHASE_TIMES_TOTAL, // 电压逆相序总次数,总累计时间
E_D07_RULER_TYPE_VOLT_ANTI_PHASE_RECORD_N, // 上(n)次电压逆相序记录
E_D07_RULER_TYPE_ELEC_ANTI_PHASE_TIMES_TOTAL, // 电流逆相序总次数,总累计时间
E_D07_RULER_TYPE_ELEC_ANTI_PHASE_RECORD_N, // 上(n)次电流逆相序记录
E_D07_RULER_TYPE_VOLT_UNBALANCE_TIMES_TOTAL, // 电压不平衡总次数,总累计时间
E_D07_RULER_TYPE_VOLT_UNBALANCE_RECORD_N, // 上(n)次电压不平衡记录
E_D07_RULER_TYPE_ELEC_UNBALANCE_TIMES_TOTAL, // 电流不平衡总次数,总累计时间
E_D07_RULER_TYPE_ELEC_UNBALANCE_RECORD_N, // 上(n)次电流不平衡记录
E_D07_RULER_TYPE_PHASE_ABC_LOSS_ELEC_TIMES, // ABC相失流次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_LOSS_ELEC_RECORD, // 上(n)次A相失流记录
E_D07_RULER_TYPE_PHASE_B_LOSS_ELEC_RECORD, // 上(n)次B相失流记录
E_D07_RULER_TYPE_PHASE_C_LOSS_ELEC_RECORD, // 上(n)次C相失流记录
E_D07_RULER_TYPE_PHASE_ABC_MORE_ELEC_TIMES, // ABC相过流次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_MORE_ELEC_RECORD, // 上(n)次A相过流记录
E_D07_RULER_TYPE_PHASE_B_MORE_ELEC_RECORD, // 上(n)次B相过流记录
E_D07_RULER_TYPE_PHASE_C_MORE_ELEC_RECORD, // 上(n)次C相过流记录
E_D07_RULER_TYPE_PHASE_ABC_DROP_ELEC_TIMES, // ABC相断流次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_DROP_ELEC_RECORD, // 上(n)次A相断流记录
E_D07_RULER_TYPE_PHASE_B_DROP_ELEC_RECORD, // 上(n)次B相断流记录
E_D07_RULER_TYPE_PHASE_C_DROP_ELEC_RECORD, // 上(n)次C相断流记录
E_D07_RULER_TYPE_PHASE_ABC_BACKWARD_ELEC_TIMES, // ABC相潮流反向次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_BACKWARD_ELEC_RECORD, // 上(n)次A相潮流反向记录
E_D07_RULER_TYPE_PHASE_B_BACKWARD_ELEC_RECORD, // 上(n)次B相潮流反向记录
E_D07_RULER_TYPE_PHASE_C_BACKWARD_ELEC_RECORD, // 上(n)次C相潮流反向记录
E_D07_RULER_TYPE_PHASE_ABC_OVERLOAD_TIMES, // ABC相过载次数,总累计时间
E_D07_RULER_TYPE_PHASE_A_OVERLOAD_RECORD, // 上(n)次A相过载记录
E_D07_RULER_TYPE_PHASE_B_OVERLOAD_RECORD, // 上(n)次B相过载记录
E_D07_RULER_TYPE_PHASE_C_OVERLOAD_RECORD, // 上(n)次C相过载记录
E_D07_RULER_TYPE_VOLT_PASS_PERCENT_M, // 上(n)月电压合格率统计数据
E_D07_RULER_TYPE_PHASE_A_VOLT_PASS_PERCENT_M, // 上(n)月A相电压合格率统计数据
E_D07_RULER_TYPE_PHASE_B_VOLT_PASS_PERCENT_M, // 上(n)月B相电压合格率统计数据
E_D07_RULER_TYPE_PHASE_C_VOLT_PASS_PERCENT_M, // 上(n)月C相电压合格率统计数据
E_D07_RULER_TYPE_POWER_DOWN_TIMES, // 掉电总次数
E_D07_RULER_TYPE_POWER_DOWN_TIME_T, // 上(t)次掉电发生时刻,结束时刻
E_D07_RULER_TYPE_OVER_LIMIT_MEMAND_TIMES, // 需量超限总次数记录
E_D07_RULER_TYPE_FORTH_OVER_LIMIT_MEMAND_TIME_T, // 上(t)次正向有功需量超限记录
E_D07_RULER_TYPE_BACK_OVER_LIMIT_MEMAND_TIME_T, // 上(t)次反向有功需量超限记录
E_D07_RULER_TYPE_QUAD_1_OVER_LIMIT_MEMAND_TIME_T, // 上(t)次第1象限无功需量超限记录
E_D07_RULER_TYPE_QUAD_2_OVER_LIMIT_MEMAND_TIME_T, // 上(t)次第2象限无功需量超限记录
E_D07_RULER_TYPE_QUAD_3_OVER_LIMIT_MEMAND_TIME_T, // 上(t)次第3象限无功需量超限记录
E_D07_RULER_TYPE_QUAD_4_OVER_LIMIT_MEMAND_TIME_T, // 上(t)次第4象限无功需量超限记录
E_D07_RULER_TYPE_METER_PROG_TIMES_TOTAL, // 编程总次数
E_D07_RULER_TYPE_METER_PROG_RECORD_T, // 上(t)次编程记录
E_D07_RULER_TYPE_METER_CLEAR_TIMES_TOTAL, // 电表清零总次数
E_D07_RULER_TYPE_METER_CLEAR_RECORD_T, // 上(t)次电表清零记录
E_D07_RULER_TYPE_DEMAND_CLEAR_TIMES_TOTAL, // 需量清零总次数
E_D07_RULER_TYPE_DEMAND_CLEAR_RECORD_T, // 上(t)次需量清零记录
E_D07_RULER_TYPE_EVENT_CLEAR_TIMES_TOTAL, // 事件清零总次数
E_D07_RULER_TYPE_EVENT_CLEAR_RECORD_T, // 上(t)次事件清零记录
E_D07_RULER_TYPE_ADJUST_TIME_TIMES_TOTAL, // 校时总次数
E_D07_RULER_TYPE_ADJUST_TIME_RECORD_T, // 上(t)次校时记录
E_D07_RULER_TYPE_TIME_PART_PROG_TIMES_TOTAL, // 时段表编程总次数
E_D07_RULER_TYPE_TIME_PART_PROG_RECORD_T, // 上(t)次时段表编程记录
E_D07_RULER_TYPE_TIME_ZONE_PROG_TIMES_TOTAL, // 时区表编程总次数
E_D07_RULER_TYPE_TIME_ZONE_PROG_RECORD_T, // 上(t)次时区表编程记录
E_D07_RULER_TYPE_WEEKDAY_PROG_TIMES_TOTAL, // 周休日编程总次数
E_D07_RULER_TYPE_WEEKDAY_PROG_RECORD_T, // 上(t)次周休日编程记录
E_D07_RULER_TYPE_HOLIDAY_PROG_TIMES_TOTAL, // 节假日编程总次数
E_D07_RULER_TYPE_HOLIDAY_PROG_RECORD_T, // 上(t)次节假日编程记录
E_D07_RULER_TYPE_HAVE_COMB_PROG_TIMES_TOTAL, // 有功组合方式编程总次数
E_D07_RULER_TYPE_HAVE_COMB_PROG_RECORD_T, // 上(t)次有功组合方式编程记录
E_D07_RULER_TYPE_NONE_COMB_1_PROG_TIMES_TOTAL, // 无功组合方式1编程总次数
E_D07_RULER_TYPE_NONE_COMB_1_PROG_RECORD_T, // 上(t)次无功组合方式1编程记录
E_D07_RULER_TYPE_NONE_COMB_2_PROG_TIMES_TOTAL, // 无功组合方式2编程总次数
E_D07_RULER_TYPE_NONE_COMB_2_PROG_RECORD_T, // 上(t)次无功组合方式2编程记录
E_D07_RULER_TYPE_PAYOFF_DAY_PROG_TIMES_TOTAL, // 结算日编程总次数
E_D07_RULER_TYPE_PAYOFF_DAY_PROG_RECORD_T, // 上(t)次结算日编程记录
E_D07_RULER_TYPE_OPEN_METER_CAP_TIMES_TOTAL, // 开表盖总次数
E_D07_RULER_TYPE_OPEN_METER_CAP_RECORD_T, // 上(t)次开表盖记录
E_D07_RULER_TYPE_OPEN_BTN_BOX_TIMES_TOTAL, // 开端钮盒总次数
E_D07_RULER_TYPE_OPEN_BTN_BOX_RECORD_T, // 上(t)次开端钮盒记录
E_D07_RULER_TYPE_A4_MAX = E_D07_RULER_TYPE_OPEN_BTN_BOX_RECORD_T, /* 表 A.4 规约最大值 */
/* 对应表 A.5 参变量数据标识编码表 */
E_D07_RULER_TYPE_A5_MIN, /* 表 A.5 规约最小值 */
E_D07_RULER_TYPE_DATE = E_D07_RULER_TYPE_A5_MIN, // 日期及星期(其中0代表星期天)
E_D07_RULER_TYPE_TIME, // 时间
E_D07_RULER_TYPE_DEMAND_PERIOD, // 最大需量周期
E_D07_RULER_TYPE_SLIT_TIME, // 滑差时间
E_D07_RULER_TYPE_ADJUST_PULSE_WEDTH, // 校表脉冲宽度
E_D07_RULER_TYPE_SWITCH_ZONE_TIME, // 两套时区表切换时间
E_D07_RULER_TYPE_SWITCH_PART_TIME, // 两套日时段表切换时间
E_D07_RULER_TYPE_YEAR_ZONE_P, // 年时区数 p <= 14
E_D07_RULER_TYPE_DAY_PART_Q, // 日时段表数 q <= 8
E_D07_RULER_TYPE_DAY_PART_M, // 日时段数(每日切换数)m <=14
E_D07_RULER_TYPE_RATE_K, // 费率数 k <= 63
E_D07_RULER_TYPE_HOLIDAY_N, // 公共假日数n <= 254
E_D07_RULER_TYPE_HARMONIC_ANALY_TIMES, // 谐波分析次数
E_D07_RULER_TYPE_AUTO_DISPLAY_SCREENS, // 自动循环显示屏数
E_D07_RULER_TYPE_DISPLAY_TIME, // 每屏显示时间
E_D07_RULER_TYPE_DISPLAY_POWER_DECIMAL_DIGITS, // 显示电能小数位数
E_D07_RULER_TYPE_DISPLAY_DEMAND_DECIMAL_DIGITS, // 显示最大需量小数位数
E_D07_RULER_TYPE_PRESS_DISPLAY_SCREENS, // 按键循环显示屏数
E_D07_RULER_TYPE_ADDRESS, // 通信地址
E_D07_RULER_TYPE_METER_ID, // 表号
E_D07_RULER_TYPE_ASSETS_CODE, // 资产管理编码
E_D07_RULER_TYPE_RATED_VOLT, // 额定电压
E_D07_RULER_TYPE_RATED_ELEC, // 额定电流
E_D07_RULER_TYPE_MAX_ELEC, // 最大电流
E_D07_RULER_TYPE_HAVE_ACCURACY_CLASS, // 有功准确度等级
E_D07_RULER_TYPE_NONE_ACCURACY_CLASS, // 无功准确度等级
E_D07_RULER_TYPE_METER_HAVE_CONSTANT, // 电表有功常数
E_D07_RULER_TYPE_METER_NONE_CONSTANT, // 电表无功常数
E_D07_RULER_TYPE_METER_MODEL_NUM, // 电表型号
E_D07_RULER_TYPE_METER_PROD_DATE, // 生产日期
E_D07_RULER_TYPE_METER_RULER_VERSION, // 协议版本号
E_D07_RULER_TYPE_METER_RUN_STWD_1, // 电表运行状态字 1
E_D07_RULER_TYPE_METER_RUN_STWD_2, // 电表运行状态字 2
E_D07_RULER_TYPE_METER_RUN_STWD_3, // 电表运行状态字 3
E_D07_RULER_TYPE_METER_RUN_STWD_4, // 电表运行状态字 4
E_D07_RULER_TYPE_METER_RUN_STWD_5, // 电表运行状态字 5
E_D07_RULER_TYPE_METER_RUN_STWD_6, // 电表运行状态字 6
E_D07_RULER_TYPE_METER_RUN_STWD_7, // 电表运行状态字 7
E_D07_RULER_TYPE_METER_RUN_STWD_BLOCK, // 电表运行状态字数据块
E_D07_RULER_TYPE_HAVE_COMB_STWD, // 有功组合方式特征字
E_D07_RULER_TYPE_NONE_COMB_1_STWD, // 无功组合方式1特征字
E_D07_RULER_TYPE_NONE_COMB_2_STWD, // 无功组合方式2特征字
E_D07_RULER_TYPE_MODEM_IRDA_RATE_STWD, // 调制型红外光口通信速率特征字
E_D07_RULER_TYPE_TOUCH_IRDA_RATE_STWD, // 接触式红外光口通信速率特征字
E_D07_RULER_TYPE_PART_1_RATE_STWD, // 通信口 1 通信速率特征字
E_D07_RULER_TYPE_PART_2_RATE_STWD, // 通信口 2 通信速率特征字
E_D07_RULER_TYPE_PART_3_RATE_STWD, // 通信口 3 通信速率特征字
E_D07_RULER_TYPE_WEEKDAY_STWD, // 周休日特征字
E_D07_RULER_TYPE_WEEKDAY_TBL, // 周休日采用的日时段表号
E_D07_RULER_TYPE_OVERLOAD_MODEL_STWD, // 负荷记录模式字
E_D07_RULER_TYPE_FREEZE_MODEL_STWD, // 冻结数据模式字
E_D07_RULER_TYPE_OVERLOAD_START_TIME, // 负荷记录起始时间
E_D07_RULER_TYPE_OVERLOAD_INTRV_TIME_1, // 第 1 类负荷记录间隔时间
E_D07_RULER_TYPE_OVERLOAD_INTRV_TIME_2, // 第 2 类负荷记录间隔时间
E_D07_RULER_TYPE_OVERLOAD_INTRV_TIME_3, // 第 3 类负荷记录间隔时间
E_D07_RULER_TYPE_OVERLOAD_INTRV_TIME_4, // 第 4 类负荷记录间隔时间
E_D07_RULER_TYPE_OVERLOAD_INTRV_TIME_5, // 第 5 类负荷记录间隔时间
E_D07_RULER_TYPE_OVERLOAD_INTRV_TIME_6, // 第 6 类负荷记录间隔时间
E_D07_RULER_TYPE_PAYOFF_DAY_1, // 每月第 1 结算日
E_D07_RULER_TYPE_PAYOFF_DAY_2, // 每月第 2 结算日
E_D07_RULER_TYPE_PAYOFF_DAY_3, // 每月第 3 结算日
E_D07_RULER_TYPE_PASSWORD_LV0, // 0 级密码
E_D07_RULER_TYPE_PASSWORD_LV1, // 1 级密码
E_D07_RULER_TYPE_PASSWORD_LV2, // 2 级密码
E_D07_RULER_TYPE_PASSWORD_LV3, // 3 级密码
E_D07_RULER_TYPE_PASSWORD_LV4, // 4 级密码
E_D07_RULER_TYPE_PASSWORD_LV5, // 5 级密码
E_D07_RULER_TYPE_PASSWORD_LV6, // 6 级密码
E_D07_RULER_TYPE_PASSWORD_LV7, // 7 级密码
E_D07_RULER_TYPE_PASSWORD_LV8, // 8 级密码
E_D07_RULER_TYPE_PASSWORD_LV9, // 9 级密码
E_D07_RULER_TYPE_PHASE_A_CONDUCT_FACTOR, // A相电导系数
E_D07_RULER_TYPE_PHASE_A_SUSCEPT_FACTOR, // A相电纳系数
E_D07_RULER_TYPE_PHASE_A_RESIST_FACTOR, // A相电阻系数
E_D07_RULER_TYPE_PHASE_A_REACTANCE_FACTOR, // A相电抗系数
E_D07_RULER_TYPE_PHASE_B_CONDUCT_FACTOR, // B相电导系数
E_D07_RULER_TYPE_PHASE_B_SUSCEPT_FACTOR, // B相电纳系数
E_D07_RULER_TYPE_PHASE_B_RESIST_FACTOR, // B相电阻系数
E_D07_RULER_TYPE_PHASE_B_REACTANCE_FACTOR, // B相电抗系数
E_D07_RULER_TYPE_PHASE_C_CONDUCT_FACTOR, // C相电导系数
E_D07_RULER_TYPE_PHASE_C_SUSCEPT_FACTOR, // C相电纳系数
E_D07_RULER_TYPE_PHASE_C_RESIST_FACTOR, // C相电阻系数
E_D07_RULER_TYPE_PHASE_C_REACTANCE_FACTOR, // C相电抗系数
E_D07_RULER_TYPE_FORTH_HAVE_POWER_MAX, // 正向有功功率上限值
E_D07_RULER_TYPE_BACK_HAVE_POWER_MAX, // 反向有功功率上限值
E_D07_RULER_TYPE_VOLT_MAX, // 电压上限值
E_D07_RULER_TYPE_VOLT_MIN, // 电压下限值
E_D07_RULER_TYPE_DAY_PART_DATA_1, // 第一套时区表数据
E_D07_RULER_TYPE_DAY_PART_DATA_1_T, // 第一套第(t)日时段表数据 t(1~8)
E_D07_RULER_TYPE_DAY_PART_DATA_2, // 第二套时区表数据
E_D07_RULER_TYPE_DAY_PART_DATA_2_T, // 第二套第(t)日时段表数据 t(1~8)
E_D07_RULER_TYPE_HOLIDAY_DATE_T, // 第 (t)公共假日日期及日时段表号 t(1~254)
E_D07_RULER_TYPE_AUTO_DISPLAY_SCREEN_T, // 自动循环显示第(t)屏显示数据项 t(1~254)
E_D07_RULER_TYPE_PREES_DISPLAY_SCREEN_T, // 按键循环显示第(t)屏显示数据项 t(1~254)
E_D07_RULER_TYPE_FACTORY_SOFTWARE_VERSION, // 厂家软件版本号
E_D07_RULER_TYPE_FACTORY_HARDWARE_VERSION, // 厂家硬件版本号
E_D07_RULER_TYPE_FACTORY_SERIAL_NUM, // 厂家编号
E_D07_RULER_TYPE_A5_MAX = E_D07_RULER_TYPE_FACTORY_SERIAL_NUM,/* 表 A.5 规约最大值 */
/* 对应表 A.6 冻结数据标识编码表 */
/* t(1~12)*/
E_D07_RULER_TYPE_A6_MIN, /* 表 A.6 规约最小值 */
E_D07_RULER_TYPE_FIX_FREZ_TIME_T = E_D07_RULER_TYPE_A6_MIN, // 上(t)次定时冻结时间
E_D07_RULER_TYPE_FIX_FREZ_FORTH_HAVE_POWER_T, // 上(t)次定时冻结正向有功电能数据
E_D07_RULER_TYPE_FIX_FREZ_BACK_HAVE_POWER_T, // 上(t)次定时冻结反向有功电能数据
E_D07_RULER_TYPE_FIX_FREZ_COMB_1_NONE_POWER_T, // 上(t)次定时冻结组合无功1电能数据
E_D07_RULER_TYPE_FIX_FREZ_COMB_2_NONE_POWER_T, // 上(t)次定时冻结组合无功2电能数据
E_D07_RULER_TYPE_FIX_FREZ_PHASE_1_NONE_POWER_T, // 上(t)次定时冻结第一象限无功电能数据
E_D07_RULER_TYPE_FIX_FREZ_PHASE_2_NONE_POWER_T, // 上(t)次定时冻结第二象限无功电能数据
E_D07_RULER_TYPE_FIX_FREZ_PHASE_3_NONE_POWER_T, // 上(t)次定时冻结第三象限无功电能数据
E_D07_RULER_TYPE_FIX_FREZ_PHASE_4_NONE_POWER_T, // 上(t)次定时冻结第四象限无功电能数据
E_D07_RULER_TYPE_FIX_FREZ_FORTH_HAVE_DEMAND_T, // 上(t)次定时冻结正向有功最大需量数据及发生时间数据
E_D07_RULER_TYPE_FIX_FREZ_BACK_HAVE_DEMAND_T, // 上(t)次定时冻结反向有功最大需量数据及发生时间数据
E_D07_RULER_TYPE_FIX_FREZ_VAR_T, // 上(t)次定时冻结变量数据
E_D07_RULER_TYPE_FIX_FREZ_BLOCK_T, // 上(t)次定时冻结数据块
/* t (1~3)*/
E_D07_RULER_TYPE_INST_FREZ_TIME_T, // 上(t)次瞬时冻结时间
E_D07_RULER_TYPE_INST_FREZ_FORTH_HAVE_POWER_T, // 上(t)次瞬时冻结正向有功电能数据
E_D07_RULER_TYPE_INST_FREZ_BACK_HAVE_POWER_T, // 上(t)次瞬时冻结反向有功电能数据
E_D07_RULER_TYPE_INST_FREZ_COMB_1_NONE_POWER_T, // 上(t)次瞬时冻结组合无功电能数据
E_D07_RULER_TYPE_INST_FREZ_COMB_2_NONE_POWER_T, // 上(t)次瞬时冻结组合无功电能数据
E_D07_RULER_TYPE_INST_FREZ_PHASE_1_NONE_POWER_T, // 上(t)次瞬时冻结第一象限无功电能数据
E_D07_RULER_TYPE_INST_FREZ_PHASE_2_NONE_POWER_T, // 上(t)次瞬时冻结第二象限无功电能数据
E_D07_RULER_TYPE_INST_FREZ_PHASE_3_NONE_POWER_T, // 上(t)次瞬时冻结第三象限无功电能数据
E_D07_RULER_TYPE_INST_FREZ_PHASE_4_NONE_POWER_T, // 上(t)次瞬时冻结第四象限无功电能数据
E_D07_RULER_TYPE_INST_FREZ_FORTH_HAVE_DEMAND_T, // 上(t)次瞬时冻结正向有功最大需量数据及发生时间数据
E_D07_RULER_TYPE_INST_FREZ_BACK_HAVE_DEMAND_T, // 上(t)次瞬时冻结反向有功最大需量数据及发生时间数据
E_D07_RULER_TYPE_INST_FREZ_BLOCK_T, // 上(t)次瞬时冻结数据块
/* t (1~2) */
E_D07_RULER_TYPE_SWITCH_ZONE_TIME_T, // 上(t)次 两套时区表切换时间
E_D07_RULER_TYPE_SWITCH_ZONE_FORTH_HAVE_POWER_T, // 上(t)次 两套时区表切换正向有功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_BACK_HAVE_POWER_T, // 上(t)次 两套时区表切换反向有功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_COMB_1_NONE_POWER_T, // 上(t)次 两套时区表切换组合无功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_COMB_2_NONE_POWER_T, // 上(t)次 两套时区表切换组合无功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_QUAD_1_NONE_POWER_T, // 上(t)次 两套时区表切换第一象限无功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_QUAD_2_NONE_POWER_T, // 上(t)次 两套时区表切换第二象限无功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_QUAD_3_NONE_POWER_T, // 上(t)次 两套时区表切换第三象限无功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_QUAD_4_NONE_POWER_T, // 上(t)次 两套时区表切换第四象限无功电能数据
E_D07_RULER_TYPE_SWITCH_ZONE_FORTH_HAVE_DEMAND_T, // 上(t)次 两套时区表切换正向有功最大需量及发生时间数据
E_D07_RULER_TYPE_SWITCH_ZONE_BACK_HAVE_DEMAND_T, // 上(t)次 两套时区表切换反向有功最大需量及发生时间数据
E_D07_RULER_TYPE_SWITCH_ZONE_VAR_DATA_T, // 上(t)次 两套时区表切换变量数据
E_D07_RULER_TYPE_SWITCH_ZONE_BLOCK_T, // 上(t)次 两套时区表切换数据块
/* t (1~2) */
E_D07_RULER_TYPE_SWITCH_PART_TIME_T, // 上(t)次 两套日时段表切换时间
E_D07_RULER_TYPE_SWITCH_PART_FORTH_HAVE_POWER_T, // 上(t)次 两套日时段表切换正向有功电能数据
E_D07_RULER_TYPE_SWITCH_PART_BACK_HAVE_POWER_T, // 上(t)次 两套日时段表切换反向有功电能数据
E_D07_RULER_TYPE_SWITCH_PART_COMB_1_NONE_POWER_T, // 上(t)次 两套日时段表切换组合无功电能数据
E_D07_RULER_TYPE_SWITCH_PART_COMB_2_NONE_POWER_T, // 上(t)次 两套日时段表切换组合无功电能数据
E_D07_RULER_TYPE_SWITCH_PART_QUAD_1_NONE_POWER_T, // 上(t)次 两套日时段表切换第一象限无功电能数据
E_D07_RULER_TYPE_SWITCH_PART_QUAD_2_NONE_POWER_T, // 上(t)次 两套日时段表切换第二象限无功电能数据
E_D07_RULER_TYPE_SWITCH_PART_QUAD_3_NONE_POWER_T, // 上(t)次 两套日时段表切换第三象限无功电能数据
E_D07_RULER_TYPE_SWITCH_PART_QUAD_4_NONE_POWER_T, // 上(t)次 两套日时段表切换第四象限无功电能数据
E_D07_RULER_TYPE_SWITCH_PART_FORTH_HAVE_DEMAND_T, // 上(t)次 两套日时段表切换正向有功最大需量及发生时间数据
E_D07_RULER_TYPE_SWITCH_PART_BACK_HAVE_DEMAND_T, // 上(t)次 两套日时段表切换反向有功最大需量及发生时间数据
E_D07_RULER_TYPE_SWITCH_PART_VAR_DATA_T, // 上(t)次 两套日时段表切换变量数据
E_D07_RULER_TYPE_SWITCH_PART_BLOCK_T, // 上(t)次 两套日时段表切换数据块
E_D07_RULER_TYPE_A6_MAX = E_D07_RULER_TYPE_SWITCH_PART_BLOCK_T, /* 表 A.6 规约最大值 */
/* 对应表 A.7 负荷记录数据编码表 */
E_D07_RULER_TYPE_A7_MIN, /* 表 A.7 规约最小值 */
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD = E_D07_RULER_TYPE_A7_MIN, // 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD, // 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD, // 最近一个记录块
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD_1, // 第一类负荷 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD_1, // 第一类负荷 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_1, // 第一类负荷 最近一个记录块
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD_2, // 第二类负荷 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD_2, // 第二类负荷 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_2, // 第二类负荷 最近一个记录块
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD_3, // 第三类负荷 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD_3, // 第三类负荷 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_3, // 第三类负荷 最近一个记录块
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD_4, // 第四类负荷 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD_4, // 第四类负荷 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_4, // 第四类负荷 最近一个记录块
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD_5, // 第五类负荷 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD_5, // 第五类负荷 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_5, // 第五类负荷 最近一个记录块
E_D07_RULER_TYPE_EARLY_OVERLOAD_RECORD_6, // 第六类负荷 最早记录块
E_D07_RULER_TYPE_GIVEN_OVERLOAD_RECORD_6, // 第六类负荷 给定时间记录块
E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_6, // 第六类负荷 最近一个记录块
E_D07_RULER_TYPE_A7_MAX = E_D07_RULER_TYPE_RECNT_OVERLOAD_RECORD_6, /* 表 A.7 规约最大值 */
/* 用户扩展 */
}E_D07_RULER_TYPE;
/** dlt645 2007规约类型 */
/* DLT645 2007版 规约编码表类型 */
typedef enum
{
E_DLT64507_RULER_TABEL_POWER, /* 对应表A.1 电能量数据标识编码表 */
E_DLT64507_RULER_TABEL_DEMAND, /* 对应表A.2 最大需量及发生时间数据标识编码表 */
E_DLT64507_RULER_TABEL_VAR, /* 对应表A.3 变量数据标识编码表 */
E_DLT64507_RULER_TABEL_EVENT, /* 对应表A.4 事件记录数据标识编码表 */
E_DLT64507_RULER_TABEL_PARA, /* 对应表A.5 参变量数据标识编码表 */
E_DLT64507_RULER_TABEL_FREEZE, /* 对应表A.6 冻结数据标识编码表 */
E_DLT64507_RULER_TABEL_LOAD, /* 对应表A.7 负荷记录数据标识编码表 */
E_DLT64507_RULER_TABEL_EXT, /* 对应表A.8 用户自定义数据标识编码表 */
}E_DLT645_07_RULER_TABEL_TYPE;
/* 结算日类型 */
typedef enum
{
E_D07_PAYOFF_NULL, // 不关心该参数
E_D07_PAYOFF_CURRENT, /* 当前 */
E_D07_PAYOFF_PRE_1, /* 上 1 结算日 */
E_D07_PAYOFF_PRE_2, /* 上 2 结算日 */
E_D07_PAYOFF_PRE_3, /* 上 3 结算日 */
E_D07_PAYOFF_PRE_4, /* 上 4 结算日 */
E_D07_PAYOFF_PRE_5, /* 上 5 结算日 */
E_D07_PAYOFF_PRE_6, /* 上 6 结算日 */
E_D07_PAYOFF_PRE_7, /* 上 7 结算日 */
E_D07_PAYOFF_PRE_8, /* 上 8 结算日 */
E_D07_PAYOFF_PRE_9, /* 上 9 结算日 */
E_D07_PAYOFF_PRE_10, /* 上 10 结算日 */
E_D07_PAYOFF_PRE_11, /* 上 11 结算日 */
E_D07_PAYOFF_PRE_12, /* 上 12 结算日 */
}E_D07_PARA_PAYOFF;
/* 参数 谐波次数 */
typedef enum
{
E_D07_HARM_NULL, // 不关心谐波次数
E_D07_HARM_1, // 1次谐波
E_D07_HARM_2, // 2次谐波
E_D07_HARM_3, // 3次谐波
E_D07_HARM_4, // 4次谐波
E_D07_HARM_5, // 5次谐波
E_D07_HARM_6, // 6次谐波
E_D07_HARM_7, // 7次谐波
E_D07_HARM_8, // 8次谐波
E_D07_HARM_9, // 9次谐波
E_D07_HARM_10, // 10次谐波
E_D07_HARM_11, // 11次谐波
E_D07_HARM_12, // 12次谐波
E_D07_HARM_13, // 13次谐波
E_D07_HARM_14, // 14次谐波
E_D07_HARM_15, // 15次谐波
E_D07_HARM_16, // 16次谐波
E_D07_HARM_17, // 17次谐波
E_D07_HARM_18, // 18次谐波
E_D07_HARM_19, // 19次谐波
E_D07_HARM_20, // 20次谐波
E_D07_HARM_21, // 21次谐波
}E_D07_PARA_HARM;
/* 参数上N次数 */
typedef enum
{
E_D07_LAST_NULL, // 上不关次数
E_D07_LAST_1, // 上1次
E_D07_LAST_2, // 上2次
E_D07_LAST_3, // 上3次
E_D07_LAST_4, // 上4次
E_D07_LAST_5, // 上5次
E_D07_LAST_6, // 上6次
E_D07_LAST_7, // 上7次
E_D07_LAST_8, // 上8次
E_D07_LAST_9, // 上9次
E_D07_LAST_10, // 上10次
E_D07_LAST_11, // 上11次
E_D07_LAST_12, // 上12次
}E_D07_PARA_LAST;
/* 规约参数费率 */
typedef enum
{
E_D07_RATE_NULL, // 不关心费率参数
E_D07_RATE_1, // 费率
E_D07_RATE_2, // 费率2
E_D07_RATE_3, // 费率3
E_D07_RATE_4, // 费率4
E_D07_RATE_5, // 费率5
E_D07_RATE_6, // 费率6
E_D07_RATE_7, // 费率7
E_D07_RATE_8, // 费率8
E_D07_RATE_9, // 费率9
E_D07_RATE_10, // 费率10
E_D07_RATE_11, // 费率11
E_D07_RATE_12, // 费率12
E_D07_RATE_13, // 费率13
E_D07_RATE_14, // 费率14
E_D07_RATE_15, // 费率15
E_D07_RATE_16, // 费率16
E_D07_RATE_17, // 费率17
E_D07_RATE_18, // 费率18
E_D07_RATE_19, // 费率19
E_D07_RATE_20, // 费率20
E_D07_RATE_21, // 费率21
E_D07_RATE_22, // 费率22
E_D07_RATE_23, // 费率23
E_D07_RATE_24, // 费率24
E_D07_RATE_25, // 费率25
E_D07_RATE_26, // 费率26
E_D07_RATE_27, // 费率27
E_D07_RATE_28, // 费率28
E_D07_RATE_29, // 费率29
E_D07_RATE_30, // 费率30
E_D07_RATE_31, // 费率31
E_D07_RATE_32, // 费率32
E_D07_RATE_33, // 费率33
E_D07_RATE_34, // 费率34
E_D07_RATE_35, // 费率35
E_D07_RATE_36, // 费率36
E_D07_RATE_37, // 费率37
E_D07_RATE_38, // 费率38
E_D07_RATE_39, // 费率39
E_D07_RATE_40, // 费率40
E_D07_RATE_41, // 费率41
E_D07_RATE_42, // 费率42
E_D07_RATE_43, // 费率43
E_D07_RATE_44, // 费率44
E_D07_RATE_45, // 费率45
E_D07_RATE_46, // 费率46
E_D07_RATE_47, // 费率47
E_D07_RATE_48, // 费率48
E_D07_RATE_49, // 费率49
E_D07_RATE_50, // 费率50
E_D07_RATE_51, // 费率51
E_D07_RATE_52, // 费率52
E_D07_RATE_53, // 费率53
E_D07_RATE_54, // 费率54
E_D07_RATE_55, // 费率55
E_D07_RATE_56, // 费率56
E_D07_RATE_57, // 费率57
E_D07_RATE_58, // 费率58
E_D07_RATE_59, // 费率59
E_D07_RATE_60, // 费率60
E_D07_RATE_61, // 费率61
E_D07_RATE_62, // 费率62
E_D07_RATE_63, // 费率63
E_D07_RATE_64, // 费率64
}E_D07_PARA_RATE;
/* 结构 */
/* 数据转换方向 */
typedef enum
{
E_D07_TRANS_U2F, // 数据格式从用户侧转换到帧侧
E_D07_TRANS_F2U, // 数据格式从帧侧转换到用户侧
}E_D07_TRANS_FLG;
typedef eD07Err (*F_D07_RULER_TRANS)(E_D07_TRANS_FLG, char*, char*);
/* 规约的格式类型 */
typedef enum
{
E_D07_FMT_UNKOWN, // 未知
E_D07_FMT_XXXX, // XXXX
E_D07_FMT_XX_2 = E_D07_FMT_XXXX,// XXXX
E_D07_FMT_XXXXXX, // XXXXXX
E_D07_FMT_XX_3 = E_D07_FMT_XXXXXX,
E_D07_FMT_XX_4, // XX 重复4次
E_D07_FMT_XX_6, // XX 重复6次
E_D07_FMT_XX_8, // XX 重复8次
E_D07_FMT_XX_10, // XX 重复10次
E_D07_FMT_XX_16, // XX 重复16次
E_D07_FMT_X_XXX, // X.XXX
E_D07_FMT_XX_XX, // XX.XX
E_D07_FMT_XX_XXXX, // XX.XXXX
E_D07_FMT_XX_XXXX_8, // XX.XXXX
E_D07_FMT_XXX_X, // XXX.X
E_D07_FMT_XXX_XXX, // XXX.XXX
E_D07_FMT_XXXXXX_XX, // XXXXXX.XX
E_D07_FMT_XXXXXXXX, // XXXXXXXX
E_D07_FMT_XXXXXX_2, // XXXXXX 重复2次
E_D07_FMT_XXXXXX_6, // XXXXXX 重复6次
E_D07_FMT_NN, // NN
E_D07_FMT_NNNN, // NNNN
E_D07_FMT_NN_4, // NN
E_D07_FMT_NN_6, // NN
E_D07_FMT_NN_32, // NN
E_D07_FMT_N_NNN, // N.NNN
E_D07_FMT_NN_NNNN, // NN.NNNN
E_D07_FMT_NNN_N, // NNN.N
E_D07_FMT_hhmmss, // hhmmss
E_D07_FMT_MMDDhhmm, // MMDDhhmm
E_D07_FMT_MMDDNN_14, // MMDDNN 重复14次
E_D07_FMT_hhmmNN_14, // hhmmNN 重复14次
E_D07_FMT_DDhh, // DDhh
E_D07_FMT_YYMMDDWW, // YYMMDDWW
E_D07_FMT_YYMMDDNN, // YYMMDDWW
E_D07_FMT_YYMMDDhhmm, // YYMMDDhhmm
E_D07_FMT_YYMMDDhhmmNN, // YYMMDDhhmm
E_D07_FMT_YYMMDDhhmmss, // YYMMDDhhmmss
E_D07_FMT_YYMMDDhhmmss_2, // YYMMDDhhmmss YYMMDDhhmmss
E_D07_FMT_YYMMDDhhmmss_2_XX_XXXX_YYMMDDhhmm, // YYMMDDhhmmss YYMMDDhhmmss xx.xxxx YYMMDDhhmm
E_D07_FMT_XX_XXXX_YYMMDDhhmm, /* XX.XXXX
YYMMDDhhmm */
E_D07_FMT_YYMMDDhhmmss_XXX_XXX_YYMMDDhhmmss, /* YYMMDDhhmmss
XXX.XXXX
YYMMDDhhmmss */
// 复杂结合数据格式类型
E_D07_FMT_RECD_LOSS_LESS_VOLT, // 失压 欠压数据格式
E_D07_FMT_RECD_ANTI_PHASE, // 逆相序数据格式
E_D07_FMT_RECD_UN_BALANCE, // 不平衡数据格式
E_D07_FMT_RECD_LESS_MORE_LOSS_ELEC, // LESS MORE LOSS 失流、过流、断流数据记录格式
E_D07_FMT_RECD_VOLT_PASS_PERCENT, // 电压合格率数据统计
E_D07_FMT_RECD_METER_PROG, // 电压合格率数据统计
E_D07_FMT_RECD_METER_CLEAR, // 电压合格率数据统计
E_D07_FMT_RECD_DEAMD_CLEAR, // 电压合格率数据统计
E_D07_FMT_RECD_EVENT_CLEAR, // 电压合格率数据统计
E_D07_FMT_RECD_ADJUST_TIME, // 电压合格率数据统计
E_D07_FMT_RECD_PART_PROG, // 时段表编程记录
E_D07_FMT_RECD_ZONE_PROG, // 时区表编程记录
E_D07_FMT_RECD_WEEKDAY_PROG,
E_D07_FMT_RECD_HOLIDAY_PROG,
E_D07_FMT_RECD_POWER_PROG,
E_D07_FMT_RECD_PAYOFF_PROG,
E_D07_FMT_RECD_OPEN_METER_CAP,
E_D07_FMT_RECD_OPEN_BTN_BOX,
}E_D07_RULER_FORMAT;
/* 规约读写类型 */
typedef enum
{
E_D07_RDWR_READ_ONLY, /* 只读 */
E_D07_RDWR_WRITE_ONLY, /* 只写 */
E_D07_RDWR_READ_WRITE, /* 读写 */
}E_D07_RULER_RDWR;
/*数据结构*/
typedef struct
{
E_D07_PARA_PAYOFF payoff; // 结算日(不关心,当前,上(1-12)结算日)
E_D07_PARA_RATE rate; // 费率(不关心,1~63)
E_D07_PARA_HARM harm; // 谐波次(不关心,1~21)
E_D07_PARA_LAST last; // 上(n)次记录(不关心,1-10)
}S_D07_RULER_PARA;
typedef struct
{
E_D07_RULER_TYPE type; // 规约类型
E_D07_RULER_RDWR rdwr; // 规约数据的读写属性
E_D07_RULER_FORMAT format; // 规约数据的格式
F_D07_RULER_TRANS func; // 数据域转换函数指针
S_D07_RULER_PARA para; // 规约类型的额外数据
int len; // 数据域字节长度
char name[NAME_LEN]; // 该条规约数据项名称
}S_D07_RULER_INFO;
typedef struct
{
UINT32 ruler_id; /* 规约标签符 C0 C1 型如 0x40E3 */
UINT8 ctrl_code; /* 控制码 */
UINT8 data_len; /* 数据域字节数 包括规约和其它数据 */
char address[13]; /* 地址 */
char* data; /* 数据 */
}S_D07_PACK_FRAME;
/* 控制码域 C 帧传送方向 */
typedef enum
{
E_D07_CTRL_DIR_M2S, // 主站到从站
E_D07_CTRL_DIR_S2M, // 从站到主站
}E_D07_CTRL_DIR;
/* 从站异常标志 */
typedef enum
{
E_D07_CTRL_SR_OK, // 从站正常应答
E_D07_CTRL_SR_NO, // 从站异常应答
}E_D07_CTRL_SR;
/* 有无后续帧标志 */
typedef enum
{
E_D07_CTRL_FLW_NONE, //无后续
E_D07_CTRL_FLW_HAVE, //有后续
}E_D07_CTRL_FLW;
/* 解析包数据域的结果标志 */
typedef enum
{
E_D07_UNPD_FLG_OK, /* 解析正确 数据可用 且数据是正常的答复 */
E_D07_UNPD_FLG_ERROR_OK, /* 解析正确 数据可用 且数据是异常的答复 */
E_D07_UNPD_FLG_NONE_DATA, /* 没有对应除规约 数据 */
E_D07_UNPD_FLG_FUNC_NULL, /* 没有解析函数 */
E_D07_UNPD_FLG_FUNC_ERROR, /* 有解析函数,但解析过程出错 */
E_D07_UNPD_FLG_NONE_STRUCT, /* 没有解析该类型的用户侧数据结构 */
}E_D07_UNPD_FLG;
/* 控制域C 功能码 */
typedef enum
{
E_D07_CTRL_RESV = 0x00,// 保留
E_D07_CTRL_SYNC_TIME = 0x08,// 广播校时
E_D07_CTRL_READ_DATA = 0x11,// 读数据
E_D07_CTRL_READ_AFTERDATA = 0x12,// 读后续数据
E_D07_CTRL_READ_ADDR = 0x13,// 读通信地址
E_D07_CTRL_WRITE_DATA = 0x14,// 写数据
E_D07_CTRL_WRITE_ADDR = 0x15,// 写通信地址
E_D07_CTRL_FREEZ_COMM = 0x16,// 冻结命令
E_D07_CTRL_MODIFY_BAUD = 0x17,// 修改通信速率
E_D07_CTRL_MODIFY_PASSWORD = 0x18,// 修改密码
E_D07_CTRL_CLEAR_MAXDEMAND = 0x19,// 最大需量清零
E_D07_CTRL_CLEAR_METER = 0x1A,// 电表清零
E_D07_CTRL_CLEAR_EVENT = 0x1B,// 事件清零
E_D07_CTRL_COMM = 0x1C // 控制命令
}E_D07_CTRL_FNC;
/* 控制域C 结构定义 */
typedef struct
{
E_D07_CTRL_DIR direct; // 帧传送方向
E_D07_CTRL_SR reply; // 从站应答异常标志
E_D07_CTRL_FLW follow; // 有无后续帧
E_D07_CTRL_FNC funcode; // 功能码
}S_D07_CTRL_CODE;
typedef struct
{
float fXX_XXXX;
UINT8 YY;
UINT8 MM;
UINT8 DD;
UINT8 hh;
UINT8 mm;
}S_D07_XX_XXXX_YYMMDDhhmm;
typedef struct
{
UINT32 a_times;
UINT32 a_seconds;
UINT32 b_times;
UINT32 b_seconds;
UINT32 c_times;
UINT32 c_seconds;
}S_D07_XXXXXX_6;
typedef struct
{
UINT8 MM; // month
UINT8 DD; // day
UINT8 hh; // hour
UINT8 mm; // minute
}S_D07_MMDDhhmm;
typedef struct
{
UINT32 ulTimes; // XXXXXX
UINT32 ulMinutes; // XXXXXX
}S_D07_XXXXXX_2;
typedef struct
{
float fXX_XXXXX[8];
}S_D07_XX_XXXX_8;
typedef struct
{
UINT8 hh;
UINT8 mm;
UINT8 ss;
}S_D07_hhmmss;
typedef struct
{
UINT8 hh;
UINT8 mm;
UINT8 NN;
}S_D07_hhmmNN;
typedef struct
{
S_D07_hhmmNN hhmmNN[14];
}S_D07_hhmmNN_14;
typedef struct
{
UINT8 YY; // year
UINT8 MM; // month
UINT8 DD; // day
UINT8 hh; // hour
UINT8 mm; // minute
UINT8 ss; // second
}S_D07_YYMMDDhhmmss;
typedef struct
{
S_D07_YYMMDDhhmmss sBegin;
S_D07_YYMMDDhhmmss sEnd;
}S_D07_YYMMDDhhmmss_2;
typedef struct
{
UINT8 YY; // year
UINT8 MM; // month
UINT8 DD; // day
UINT8 hh; // hour
UINT8 mm; // minute
}S_D07_YYMMDDhhmm;
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻 6 * 1
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻 6 * 1
S_D07_XX_XXXX_YYMMDDhhmm sDemand; // 最大需量及发生时间
}S_D07_YYMMDDhhmmss_2_XX_XXXX_YYMMDDhhmm;
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻 6 * 1
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻 6 * 1
float fXXX_XXX;
}S_D07_YYMMDDhhmmss_XX_XXXX_YYMMDDhhmmss;
typedef struct
{
double dForthHavePowerIcr; // 事件发生期间某相 正向有功电能增量 XXXXXX.XX
double dBackHavePowerIcr; // 事件发生期间某相 反向有功电能增量 XXXXXX.XX
double dCombNone1PowerIcr; // 事件发生期间某相 组合无功1电能增量 XXXXXX.XX
double dCombNone2PowerIcr; // 事件发生期间某相 组合无功2电能增量 XXXXXX.XX
}S_D07_EventRecordVoltPhase;
typedef struct
{
float fVolt; // 事件发生期间某相 电压 形如 XXX.X
float fElec; // 事件发生期间某相 电流 XXX.XXX
float fHavePowerRate; // 事件发生期间某相 有功功率 XX.XXXX
float fNonePowerRate; // 事件发生期间某相 无功功率 XX.XXXX
float fPowerRateFactor; // 事件发生期间某相 功率因数 X.XXX
}S_D07_EventRecordFactor;
typedef struct
{
double dAtimeTotal; // 事件发生期间 总安时数 XXXXXX.XX
double dAtimePhaseA; // 事件发生期间 A相安时数 XXXXXX.XX
double dAtimePhaseB; // 事件发生期间 B相安时数 XXXXXX.XX
double dAtimePhaseC; // 事件发生期间 C相安时数 XXXXXX.XX
}S_D07_EventRecordAtime; // 安时数
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻 6 * 1
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻 6 * 1
S_D07_EventRecordVoltPhase sPowerTotal; // 总电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerA; // A相电能增量 4 * 8
S_D07_EventRecordFactor sFactorA; // A相因数 5 * 4
S_D07_EventRecordVoltPhase sPowerB; // B相电能增量 4 * 8
S_D07_EventRecordFactor sFactorB; // B相因数 5 * 4
S_D07_EventRecordVoltPhase sPowerC; // C相电能增量 4 * 8
S_D07_EventRecordFactor sFactorC; // C相因数 5 * 4
S_D07_EventRecordAtime sAtime; // 安时数 4 * 8
}S_D07_LESS_LOSS_VOLT;// 失压欠压过压,断相事件发生记录数据 35 * 4 + 12 = 152字节
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻 6 * 1
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻 6 * 1
S_D07_EventRecordVoltPhase sPowerTotal; // 总电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerA; // A相电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerB; // B相电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerC; // C相电能增量 4 * 8
}S_D07_EventRevPhase; // 电压 电流逆相 共(140)字节
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻
float fMaxUnbalanceFator; // 最大不平衡率
S_D07_EventRecordVoltPhase sPowerTotal; // 总电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerA; // A相电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerB; // B相电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerC; // C相电能增量 4 * 8
}S_D07_EventUnBalance; //不平衡事件记录
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻 6 * 1
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻 6 * 1
S_D07_EventRecordVoltPhase sPowerTotal; // 总电能增量 4 * 8
S_D07_EventRecordVoltPhase sPowerA; // A相电能增量 4 * 8
S_D07_EventRecordFactor sFactorA; // A相因数 5 * 4
S_D07_EventRecordVoltPhase sPowerB; // B相电能增量 4 * 8
S_D07_EventRecordFactor sFactorB; // B相因数 5 * 4
S_D07_EventRecordVoltPhase sPowerC; // C相电能增量 4 * 8
S_D07_EventRecordFactor sFactorC; // C相因数 5 * 4
//S_D07_EventRecordAtime sAtime; // 安时数 4 * 8
}S_D07_LESS_MORE_LOSS_ELET;// 失流,断流,过流事件发生记录数据 35 * 4 + 12 = 152字节
typedef struct
{
UINT32 ulMonitorVoltMinutes; // 监测时间 单位分
float fVoltPassPercent; // 电压合格率
float fVoltOverLimitPercent; // 电压超限率
UINT32 ulVoltOverUpperLimitMinutes; // 电压超上限时间
UINT32 ulVoltOverLowerLimitMinutes; // 电压超下限时间
float fVoltValueMax; // 电压最大值
float fVoltValueMin; // 电压最小值
S_D07_MMDDhhmm sTimeVoltValueMax; // 最高电压发生时间
S_D07_MMDDhhmm sTimeVoltValueMin; // 最低电压发生时间
}S_D07_EventPassPercent; // 合格率事件数据
typedef struct
{
S_D07_YYMMDDhhmmss sProgTime; // 事件发生时刻
UINT8 programer[4]; // 编程者标识 4字节
UINT32 ulRulerID[10]; // 编程的前十个数据标识码,型如 0xFFFFFFFF 不足用0xFFFFFFFF补足
}S_D07_EventMeterProgram; // 编程事件记录
typedef struct
{
double dForthHavePower; // XXXXXX.XX 正向 有功总电能
double dBackHavePower; // XXXXXX.XX 反向 有功总电能
double dNonePowerQuad1; // XXXXXX.XX 事件发生时第 1 象限无功电能
double dNonePowerQuad2; // XXXXXX.XX 事件发生时第 2 象限无功电能
double dNonePowerQuad3; // XXXXXX.XX 事件发生时第 3 象限无功电能
double dNonePowerQuad4; // XXXXXX.XX 事件发生时第 4 象限无功电能
}S_D07_EventPower;
typedef struct
{
S_D07_XX_XXXX_YYMMDDhhmm sFortHaveDemand; // 正向有功最大需量及发生时间 XX.XXXX YYMMDDhhmm
S_D07_XX_XXXX_YYMMDDhhmm sBackHaveDemand; // 正向有功最大需量及发生时间 XX.XXXX YYMMDDhhmm
S_D07_XX_XXXX_YYMMDDhhmm sNoneDemandQuad1; // 正向有功最大需量及发生时间 XX.XXXX YYMMDDhhmm
S_D07_XX_XXXX_YYMMDDhhmm sNoneDemandQuad2; // 正向有功最大需量及发生时间 XX.XXXX YYMMDDhhmm
S_D07_XX_XXXX_YYMMDDhhmm sNoneDemandQuad3; // 正向有功最大需量及发生时间 XX.XXXX YYMMDDhhmm
S_D07_XX_XXXX_YYMMDDhhmm sNoneDemandQuad4; // 正向有功最大需量及发生时间 XX.XXXX YYMMDDhhmm
}S_D07_EventDemand; //最大需量清零事件某项最大需量及发生时间
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
S_D07_EventDemand sTotal; // 电表清零前 总 需量数据
S_D07_EventDemand sPhaseA; // 电表清零前 A相需量数据
S_D07_EventDemand sPhaseB; // 电表清零前 B相需量数据
S_D07_EventDemand sPhaseC; // 电表清零前 C相需量数据
}S_D07_EventDemandClear;
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
S_D07_EventPower sTotal; // 电表清零前 总 电能数据
S_D07_EventPower sPhaseA; // 电表清零前 A相电能数据
S_D07_EventPower sPhaseB; // 电表清零前 B相电能数据
S_D07_EventPower sPhaseC; // 电表清零前 C相电能数据
}S_D07_EventMeterClear; // 电表清0事件记录
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
UINT32 ulEventID; // 清零事件标记
}S_D07_EventClear; // 事件清零记录
typedef struct
{
UINT8 operator[4]; // 操作者标识 4字节
S_D07_YYMMDDhhmmss sBefTime; // 校时前时间
S_D07_YYMMDDhhmmss sAftTime; // 校时后时间
}S_D07_EventTiming; // 校时事件记录
typedef struct
{
UINT8 MM;
UINT8 DD;
UINT8 NN;
}S_D07_MMDDNN;
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
S_D07_MMDDNN sZoneSet1[14]; // 时区表编程前第一套第(1~14)时区表数据
S_D07_MMDDNN sZoneSet2[14]; // 时区表编程前第二套第(1~14)时区表数据
}S_D07_EventZone; // 时区表编程事件记录
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
UINT8 ucTableNum; // 周休是编程前采用的日段表号
}S_D07_EventWeekDay; // 周休日编程记录
typedef struct
{
UINT8 DD;
UINT8 hh;
}S_D07_DDhh;
typedef struct
{
UINT8 YY;
UINT8 MM;
UINT8 DD;
UINT8 NN;
}S_D07_YYMMDDNN;
typedef struct
{
UINT8 YY;
UINT8 MM;
UINT8 DD;
UINT8 hh;
UINT8 mm;
UINT8 NN;
}S_D07_YYMMDDhhmmNN;
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
S_D07_YYMMDDNN sHoliday[12];
// 中国法定节假日11天 元旦一天。春节三天。清明一天。五一一天。端午一天。中秋一天。国庆三天。
// 编程前第N节假日数据 标准协议支持254个节假日
//
}S_D07_EventHoliday; // 节假日编程事件记录
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
UINT8 ucWord; // 功组合方式编程前的有功组合方式特征字
}S_D07_EventCombPower; // 有功/无功组合方式编程记录
typedef struct
{
S_D07_YYMMDDhhmmss sOccurTime; // 事件发生时刻
UINT8 operator[4]; // 操作者标识 4字节
S_D07_DDhh sDay1;
S_D07_DDhh sDay2;
S_D07_DDhh sDay3;
}S_D07_EventPayoff;
typedef struct
{
S_D07_YYMMDDhhmmss sBgnTime; // 开始时刻
S_D07_YYMMDDhhmmss sEndTime; // 结束时刻
S_D07_EventPower sPowerBeforOpen; // 开盖前电能数据
S_D07_EventPower sPowerAfterOpen; // 开盖后电能数据
}S_D07_EventOpenCap; // 开表盖记录
typedef struct
{
UINT8 YY;
UINT8 MM;
UINT8 DD;
UINT8 WW;
}S_D07_YYMMDDWW;
typedef struct
{
S_D07_MMDDNN MMDDNN[14];
}S_D07_MMDDNN_14;
typedef struct
{
BOOL bRateErr; // 费率数超
BOOL bDayErr; // 日时段数超
BOOL bYearErr; // 年时区数超
BOOL bCommErr; // 通讯速率不能更改
BOOL bPwdErr; // 密码错或未授权
BOOL bNoneReq; // 没有请求数据
BOOL bOtherErr; // 其它错误
}S_D07_ERR;
/* 用户接口侧数据结构 */
typedef union
{
float fPower;
S_D07_YYMMDDWW sYYMMDDWW;
S_D07_ERR sError;
}U_D07_DATA_UNPACK;
/* 解析帧信息数据结构 */
typedef struct
{
UINT8 ctrl_c; /* 控制码 字节型 */
UINT8 lead_num; /* 前导字符 0xFE的个数 */
UINT32 ruler_id; /* 规约ID */
unsigned short data_len; /* 数据域长 */
unsigned short frame_len; /* 整个帧长*/
E_D07_RULER_TYPE type; /* 规约类型 */
E_D07_RULER_FORMAT format; /* 帧中数据格式 */
E_D07_UNPD_FLG flag; /* 解析数据到用户侧数据的标志,说明解析状态 决定data_unpack 是否可用 */
S_D07_CTRL_CODE ctrl_s; /* 控制码结构 */
S_D07_RULER_PARA para; /* 规约类型的额外数据 */
UINT8 data_pack[D07_DATA_MAX_NR]; /* 数据域 不包括规约ID的部分 没有做转换 */
UINT8 address[D07_ADDR_LEN+1]; //12位地址域数据
U_D07_DATA_UNPACK data_unpack; /* 转换为用户侧的数据 */
//UINT8 *pDataUser;
}S_D07_UNPACK;
/* 功能函数 */
/* 根据规约ID 获取对应规约的数据类型信息 */
int get_d07_ruler_info(UINT32 rulerID, S_D07_RULER_INFO *outRulerInfo);
int get_d07_ruler_id(E_D07_RULER_TYPE type,
S_D07_RULER_PARA para,
UINT32 *poutRulerID);
/* 通过地址 规约ID 数据域数据及长度 封帧 */
int pack_d07_frame_by_data(S_D07_PACK_FRAME *inPara, char *outBuffer, int *outLength);
//解析 dlt645 07帧
int unpack_d07_frame(void *inpBuffer, int inBufferLength, S_D07_UNPACK *outpFrame);
/* 从一段数据中找出第一个有效dlt645 2007帧的位置及长度 */
int get_d07_first_valid_frame(const UINT8 *pBuf, // 要解析的buf
UINT16 usLenBuf, // 要解析的buf字节数
UINT8 **ppFirstPos, // 输出帧buffer
UINT16 *pusLenFrame); // 输出Frame字节数
/* 判断一个帧是否为正确的 */
int is_right_d07_frame(void *inpBuffer, int inBufferLength);
/* */
void d07_str2bcd(const char *pstr, UINT8 *pbcd, int len);
void d07_bcd2str(const char* inBCD, char *outStr, int len);
double d07_bcd_to_double(UINT8* pBcd, int len,int LeftDigit);
int d07_remove_dot(int len, char*inArray, char *outArray); // 去掉字符串格式中去的小数点
int d07_add_dot(int len, char*inArray, char *outArray, int dotpos); // 加上小数点
/* 解析控制码 */
eD07Err trans_d07ctrl_struct2char(UINT8 *outChar, S_D07_CTRL_CODE *inStruct); //将结构封装成字节
eD07Err trans_d07ctrl_char2struct(UINT8 inChar, S_D07_CTRL_CODE *outStruct); //将字节封装成结构
/* 数据解析函数 */
/*XX*/
eD07Err trans_d07_data_XX_2(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_3(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_4(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_6(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_8(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_10(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_16(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXXXXX_2(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXXXXX_6(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXXX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXXXXX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXX_X(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXX_XXX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_XXXX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXXXXXXX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XXXXXX_XX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_XXXX_YYMMDDhhmm(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_XXXX_8(E_D07_TRANS_FLG flag, char *user, char *frame);
/*NN*/
eD07Err trans_d07_data_NN(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_NNNN(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_NN_4(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_NN_6(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_NN_32(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_N_NNN(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_NN_NNNN(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_NNN_N(E_D07_TRANS_FLG flag, char *user, char *frame);
/*X.X*/
eD07Err trans_d07_data_X_XXX(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_XX_XX(E_D07_TRANS_FLG flag, char *user, char *frame);
/*YYMMDDWWhhmmss*/
eD07Err trans_d07_data_hhmmss(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_MMDDhhmm(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_DDhh(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDWW(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDNN(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDhhmm(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDhhmmNN(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDhhmmss(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDhhmmss_2(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDhhmmss_2_XX_XXXX_YYMMDDhhmm(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_YYMMDDhhmmss_XXX_XXX_YYMMDDhhmmss(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_MMDDNN_14(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_hhmmNN_14(E_D07_TRANS_FLG flag, char *user, char *frame);
/* 组合数据 */
eD07Err trans_d07_data_recd_loss_less_volt(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_anti_phase(E_D07_TRANS_FLG flag, char *user, char *frame); // 逆相序数据格式
eD07Err trans_d07_data_recd_un_balance(E_D07_TRANS_FLG flag, char *user, char *frame); // 不平衡数据格式
eD07Err trans_d07_data_recd_less_more_loss_elec(E_D07_TRANS_FLG flag, char *user, char *frame); // less more loss 失流、过流、断流数据记录格式
eD07Err trans_d07_data_recd_volt_pass_percent(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_meter_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_meter_clear(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_demand_clear(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_event_clear(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_adjust_time(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_part_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_zone_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_weekday_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_holiday_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_power_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_payoff_prog(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_open_meter_cap(E_D07_TRANS_FLG flag, char *user, char *frame);
eD07Err trans_d07_data_recd_open_btn_box(E_D07_TRANS_FLG flag, char *user, char *frame);
//错误状态字
eD07Err trans_d07_data_err(E_D07_TRANS_FLG flag, char *user, char *frame);
#pragma pack(pop)
#endif //__DLT645_2007_RULERS_H__
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化