有文件C的数据结构!怎么用编程工具去生成这样的文件啊?高手指点
[文件头][显示项1][显示项2]……[字库1][字库2]……[背景图][文件头],12字节:
[文件版本],2字节
1:SuperComm的TMC文件,背景图为三色16位色的XMP 图片;
2:SuperComm的TMC文件,背景图为双色16位色的XMP 图片;
3:SCL2008的TMC文件,背景图为双色无灰度XMP图片
4:保留
5:SCL2008的TMC文件,背景图为三色无灰度XMP图片
[背景图的高度],2字节
[背景图的宽度],2字节
[文件中的显示项数],2字节
[本文件中包含的字库数],2字节
[背景图在本文件中的偏移量],2字节
[显示项],24字节:
[显示项类型],1字节。类型代码如下:
1:年,2:月,3:日,4:星期,5:时,6:分,7:秒,8:温度,9:湿度,10:倒计时,11:串口数据
[显示颜色],3字节,第一字节为红色,第二字节为绿色,第三字节为蓝色
[使用的字库在本文件中的偏移量],2字节
[显示位数],1字节
[显示项特征],1字节,对倒计时项为计数方向,正计(0)倒计(1);对串口数据为参数序号(1-8);对‘小时’数据为有符号数,用做显示小时数据的时区偏移值(例如,假设控制器时钟的小时值为‘3’,本字段为-2,则显示为‘1’),对温度数据为摄氏(0)华氏(1)选择
[倒计时初始值],4字节,长整数
[串口数据的串口编号],1字节,0:串口1,1:串口2,2:串口3
[数字首0不显示标记],1字节,0:显示首0,1:不显示首0
[修改本项的年],1字节,对1000取模
[修改本项的月],1字节
[修改本项的日],1字节。上述三项与初始值配合,用于控制器自动计算倒计时
[未用],1字节
[显示项输出的垂直坐标],2字节
[显示项输出的水平坐标],2字节
[未用],2字节
[字库]:
[字型高度],2字节
[字型宽度],2字节
[每个字使用的字节数],2字节
[字符点阵],按照“先行后列,每个字节表示垂直方向的8点”的格式依序存放字符‘0’-‘9’、‘+’、‘-’、空格、小数点的显示点阵(每个字的点阵是单色XMP图片)
[背景图]:
为一个XMP图片,遵循[文件头]中的图片[高度]和[宽度]。若[文件版本]=2,则是16位色XMP图片;若[文件版本]=3,则是双色XMP图片。
TMC 文件中各类结构的C语言格式如下:
#define WORD unsigned short;
#define BYTE unsigned char;
struct Tmc_Head
{
WORD Flag;
WORD AreaHeight;
WORD AreaWidth;
WORD ItemCount;
WORD FontCount;
WORD BkGroundOffset;
};
struct Item_Struct
{
BYTE AType;
BYTE Color_Red;
BYTE Color_Green;
BYTE Color_Blue;
WORD FontOffset;
BYTE BitCount;
Signed char CountDir; // 当AType=5为’时’,此字段为时区偏移
long Value;
BYTE ComPort;
BYTE HideZero;
BYTE Year;
BYTE Month;
BYTE Day;
BYTE NC0;
short YPosi;
short XPosi;
WORD NC1;
};
struct Font_Struct
{
WORD CharHeight;
WORD CharWidth;
WORD ByteCount;
BYTE Font[];
};
--------------------编程问答--------------------
Type Tmc_Head
Flag As Integer
AreaHeight As Integer
AreaWidth As Integer
ItemCount As Integer
FontCount As Integer
BkGroundOffset As Integer
End Type
Type Item_Struct
AType As Byte
Color_Red As Byte
Color_Green As Byte
Color_Blue As Byte
FontOffset As Integer
BitCount As Byte
CountDir As Byte
Value As Long
ComPort As Byte
HideZero As Byte
Year As Byte
Month As Byte
Day As Byte
NC0 As Byte
YPosi As Short
XPosi As Short
NC1 As Integer
End Type
Type Font_Struct
CharHeight As Integer
CharWidth As Integer
ByteCount As Integer
'没有与 Font[] 直接对应的类型,需要自己用 Byte() 数组进行处理'
End Type
补充:VB , COM/DCOM/COM+