/******************************************************************************************
* 功能:准备组帧的数据和对数据进行解析
* 时间:2006年9月12日
* 作者:颜勇
******************************************************************************************/
#include "..\inc\bio_func.h"
#include "..\inc\key.h"
//#include <tp_bio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stddef.H>
#include <stdarg.h>
#include <math.h>
#include <limits.h>
//#include <floatasm.h>
#include <errno.h>
#include <ctype.h>
//#include <tp_dbf.h>
#define debug_1 //调试信息开关
#define FILE _FILE
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 0
//键盘定义
#define _UP 0x4800
#define _DWN 0x5000
#define _LFT 0x4b00
#define _RGT 0x4D00
#define _ENT 0x1c0d
#define _ESC 0x011b
#define HELP 0x3b00
#define _DEL 0x0e08
#define FUNCTION 0x8200
//#define SHIFT 0x4b00
#define _F1 0x9600
#define ZERO 0x0130
#define ONE 0x0231
#define TWO 0x0332
#define THREE 0x0433
#define FOUR 0x0534
#define FIVE 0x0635
#define SIX 0x0736
#define SEVEN 0x0837
#define EIGHT 0x0938
#define NINE 0x0a39
/******************************************************************************************
******************************************************************************************/
#define SCREENWIDTH 20
#define SCREENHEIGHT 8
#define CENTERY 5
#define CENTERX 9
#define MaxNum 160 //单个数据标识包含的最大数据项数
#define ImLines 3 //一个菜单的信息占用屏幕的最大行数
#define XPosition 0 //显示右移距离
#define DBFMAX 3 //同时可以打开的文件数
#define ITEMS 0
#define PROTO 1
#define SELEC 2
#define OPENCOM 1
/********************************************************************************************
*数据库文件结构定义开始
********************************************************************************************/
typedef struct {
char Version; // offset: 0 size: 1版本信息
char UpdateDate[3]; // offset: 1 size: 3最后更新日期
unsigned long Record_Num; // offset: 4 size: 4
unsigned short int Head_Size; // offset: 8 size: 2
unsigned short int Record_Size; // offset: 10 size: 2
char Reserve[20]; // offset: 12 size: 20
}TDBHEAD; // Total Size: 32 bytes
typedef struct {
char Field_Name[11]; // offset: 0 size: 11
char Field_Type; // offset: 11 size: 1
unsigned long Field_Place; // offset: 12 size: 4
unsigned char Field_Lenth; // offset: 16 size: 1
unsigned char Field_Decimal; // offset: 17 size: 1
char Reserve1[2]; // offset: 18 size: 2
char Field_WorkArea; // offset: 20 size: 1
char Reserve2[11]; // offset: 21 size: 11
}TDBFIELD; // Total Size: 32 bytes
typedef struct{
char FieldName[12]; //字段名称
unsigned long FieldOffset; //字段在记录中的偏移度
unsigned short int FieldLen; //字段长度
}TSField;
typedef struct {
FILE* p_file;
unsigned short int m_headsize; //文件头大小
unsigned short int m_RecordSize; //单条记录所占的字节数
unsigned long m_RecordNum; //数据库中记录总数
unsigned long m_CurrRecord; //当前所指的记录索引号(0-n)
unsigned char m_FieldNum; //数据库中字段总数
TSField p_FiledInfo[16];
}TDBF;
/********************************************************************************************
*数据库文件结构定义结束
********************************************************************************************/
/********************************************************************************************
*菜单现场定义开始
********************************************************************************************/
//保存当前菜单当前屏顶端和底端的信息
typedef struct{
unsigned short int CurrIndex; //当前的菜单的序号
unsigned char BNIndex; //前(后)一个菜单项的序号
unsigned char Lines; //当前菜单占用的行数
unsigned char DispLines; //当前显示的行数
char Line[ImLines][21]; //当前菜单第一行的内容,
}TManulHT; //限定一个菜单在顶端和底端最多分三行显示
//保存菜单当前选择项的信息
typedef struct{
unsigned char Items; //当前菜单的选择项数
unsigned short int CurrIndex; //当前选择的菜单项的序号
unsigned char CurrLineNo; //当前显示行的行号
TManulHT ScreenTop;
TManulHT ScreenBottum;
}TManulStatus;
typedef struct{
int FDNIndex; //记录当前屏的第一个数据的索引号
int DataNums; //记录当前屏的数据个数,只在当前屏第一个数组中有用
}TUIInfor;
typedef struct{//
char Msg[60];
char Value[10];
}TEnumValue;
typedef struct{
long Part1;
long Part2;
long Part3;
}TLConvert;
/********************************************************************************************
*菜单现场定义结束
********************************************************************************************/
//告警数据保存结构体
typedef struct{
unsigned char AlarmType;
char AlarmBuf[200];
}AlarmData;
const char* Ok = "确认";
const char* Cance = "退出";
char* PartData[MaxNum]; //数据分割
char* PartFormat[MaxNum]; //数据格式分割
char* PartDName[MaxNum]; //数据名称分割
char* PartUnit[MaxNum]; //数据单位分割
unsigned int DNameNum; //数据名称项数
unsigned int DFormatNum; //数据格式项数
unsigned int DUnitNum; //数据单位数
unsigned int SDNameNum; //数据名称项数
unsigned int SDFormatNum; //保存时的数据格式项数
unsigned int SUnitNum; //数据单位数
unsigned int ModuNum; //数据项数
char ReceiBuff[500];
char SendBuff[400];
int RFrameLength; //当前接收帧中的数据域长度
unsigned char TRANSMODE = 0x01; //通信规则
unsigned char TRANSMODEVEN = 0x09; //串口使用偶校验
unsigned char TeleCom;
unsigned char TelType; //校验的类别 0表示无 1表示偶校验
unsigned int Botelv;
unsigned long waittime;
char* PartFormat_Bak[MaxNum]; //全局动态内存指针,用于最后释放内存
char* PartDName_Bak[MaxNum]; //全局动态内存指针,用于最后释放内存
char* PartUnit_Bak[MaxNum]; //全局动态内存指针,用于最后释放内存
/******************************************************************************************
*数据库文件操作变量定义开始
******************************************************************************************/
TDBF m_file[4];
/******************************************************************************************
* 数据库文件操作变量定义结束
******************************************************************************************/
/******************************************************************************************
*菜单操作变量定义开始
******************************************************************************************/
unsigned char Items; //当前菜单的选择项数
unsigned short int CurrIndex; //当前选择的菜单项的序号
unsigned char CurrLineNo; //当前显示行的行号
TManulHT ScreenTop; //顶部信息
TManulHT ScreenBottum; //底部信息
/******************************************************************************************
*菜单操作变量定义结束
******************************************************************************************/
/***********************************************************************************************
*公用的工具函数声明开始
************************************************************************************************/
void SelectCom();
unsigned short int ParaHisCfg(unsigned char* DataBuff,int Flag);
void hidecursor(unsigned char flag);
char* itoa(unsigned int value,char* string, int radix);
int StrToInt(char* sStr, char Radix);
short int Scanf(char * str, unsigned char length);
char* StrtoHex(char* str,
int lenth ,char revflag,
char preflag ,int addval);
char* HextoStr(char* dest,char* hexstr,int lenth,char re
GUODIAN_850.rar_376_smart meter_国网_国网376.1_无线电能
版权申诉
193 浏览量
2022-07-14
07:56:39
上传
评论
收藏 24KB RAR 举报
我虽横行却不霸道
- 粉丝: 75
- 资源: 1万+
最新资源
- 129335283047061xiazaigongjuxiang(去重软件).apk
- Android环境检测工具,检测ksu,lsp,magisk等
- WordPress后台美化插件QuarterAdmin分享
- PCB_Project单片机绘制 (2024-5-11 22-22-13).zip
- nccl-local-repo-ubuntu2204-2.21.5-cuda12.4-1.0-1-amd64
- STM32移植LVGL源码工程 stm32移植GUI-Guider源码 LVGL移植源码
- Screenshot_20240522_084328_com.tencent.mm.jpg
- 附件计算机专业课选课说明-1.xlsx
- 基于TypeScript的ahousepet-admin-web管理系统设计源码
- 《广东开放大学学习指引》期末考核要求0522.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈