📄 jzj.cpp
字号:
#include "func.h"
#include <string.h>
#include <stdio.h>
#include "lcd.h"
#include "battery.h"
#include <math.h>
#include <stdlib.h>
#include <dos.h>
#include <graphics.h>
static unsigned char XJCODE[]=
{
0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0x00,0x00,0x00,0x00,0x03,0xFC,0x1F,0xE0,0x00,0x00,0x00,0x0F,0x80,0x00,
0xF8,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xF0,
0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0xFE,0x00,0x04,0x00,0x00,0x1F,0x80,0xF0,
0x7F,0xFF,0xFF,0xFF,0xFF,0x80,0xF0,0x7F,0xFD,0xFF,0xFF,0xFF,0x80,0xF0,0x1F,0xC3,
0xF3,0xF8,0x07,0x80,0xF0,0x3F,0x87,0xF7,0xF8,0x0F,0x80,0xF0,0x3F,0x87,0xF7,0xF0,
0x0F,0x80,0xFF,0xFF,0xEF,0xFF,0xF0,0x0F,0x80,0xFF,0xFF,0xFF,0xFF,0xE0,0x07,0x80,
0xFF,0xFF,0xFF,0xFF,0xC0,0x0F,0x80,0xFE,0x00,0x00,0x00,0x00,0x3F,0x80,0x0F,0xFF,
0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x7F,0x80,0x00,
0xFE,0x00,0x00,0x00,0x0F,0xF0,0x07,0xF8,0x00,0x00,0x00,0x01,0xFC,0x1F,0xC0,0x3C,
0x00,0x00,0x00,0x1F,0xFC,0x00,0xFE,0x00,0x00,0x00,0x07,0xF0,0x00,0xDB,0x00,0x00,
0x00,0x00,0x80,0x01,0xBF,0x80,0x00,0x00,0x00,0x00,0x01,0xBD,0x80,0x00,0x00,0x00,
0x00,0x01,0xB9,0x80,0x00,0x00,0x00,0x00,0x01,0xBB,0x80,0x00,0x00,0x00,0x00,0x01,
0xDB,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,
};
uCHAR START[]=
{
0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFC,0x30,0x00,0x00,0x00,0x02,0x70,
0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,
0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,
0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,
0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,
0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x02,0x70,
0x00,0x00,0x00,0x02,0x7F,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,
0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xF0,
};
uCHAR TOP[]=
{
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x38,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x01,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,
} ;
uCHAR UP[]={//32*32
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xEF,0xFF,
0xFF,0xFF,0xC7,0xFF,0xFF,0xFF,0xC7,0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xC7,0xFF,
0xFF,0xFF,0xB7,0xFF,0xFF,0xFD,0x93,0xFF,0xFF,0xFD,0x93,0xFF,0xFF,0xF5,0x0B,0xFF,
0xFF,0xD4,0x83,0xFF,0xFF,0x94,0x83,0xFF,0xFF,0x96,0x83,0xFF,0xFF,0x9B,0x83,0xFF,
0xFF,0xAC,0x43,0xFF,0xFF,0xB0,0x03,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0x80,0x03,0xFF,
0xFF,0x80,0x07,0xFF,0xFF,0x80,0x07,0xFF,0xFF,0xC0,0x0F,0xFF,0xFF,0xC0,0x0F,0xFF,
0xFF,0xE0,0x1F,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
uCHAR DOWN[]={//32*32
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x0F,0xFF,0xFF,0xFC,0x0F,0xFF,0xFF,0xF8,0x07,0xFF,
0xFF,0xF0,0x03,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,0xE0,0x01,0xFF,0xFF,0xE0,0x01,0xFF,
0xFF,0xC0,0x01,0xFF,0xFF,0xC0,0x01,0xFF,0xFF,0xC0,0x0D,0xFF,0xFF,0xC2,0x35,0xFF,
0xFF,0xC1,0xD9,0xFF,0xFF,0xC1,0x69,0xFF,0xFF,0xC1,0x29,0xFF,0xFF,0xC1,0x2B,0xFF,
0xFF,0xD0,0xAF,0xFF,0xFF,0xC9,0xBF,0xFF,0xFF,0xC9,0xBF,0xFF,0xFF,0xED,0xFF,0xFF,
0xFF,0xE3,0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xE3,0xFF,0xFF,0xFF,0xE3,0xFF,0xFF,
0xFF,0xF7,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
uCHAR COM[]={//2个 COM宽96*24
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x80,0x00,0x00,0x00,
0x00,0x04,0x10,0x00,0x00,0x00,0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x02,0x20,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x00,0x00,
0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x0E,0x70,0x00,0x00,0x00,0x00,0x01,0x40,0x00,
0x00,0x00,0x00,0x0E,0x38,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x1C,
0x3C,0x00,0x00,0x00,0x00,0x02,0x20,0x00,0x00,0x00,0x00,0x3C,0x1F,0xFF,0xFF,0xFF,
0xFF,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF,0xF8,0x07,0xFF,0xFF,0xFF,0xFF,0xFC,0x1F,0xFF,
0xFF,0xFF,0xFF,0xE0,0x01,0xFF,0xFF,0xFF,0xFF,0xF8,0x0F,0xFF,0xFF,0xFF,0xFF,0x80,
};
uCHAR //1组单体电压96×24
{
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,
0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xE0,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,
}
//72×24 报警里路
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x38,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x01,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,
//-------------------设置系统日期---------------------------
void Set_Date(uCHAR * DateTime)
{
SYSDATETIME[0]=DateTime[0] ; //年
SYSDATETIME[1]=DateTime[1] ; //月
SYSDATETIME[2]=DateTime[2] ; //日
}
//-------------------设置系统时间---------------------------
void Set_Time(uCHAR * DateTime)
{
SYSDATETIME[3]=DateTime[0] ; //年
SYSDATETIME[4]=DateTime[1] ; //月
SYSDATETIME[5]=DateTime[2] ; //日
}
//----------------设置系统日期和时间------------------------
void Set_DateTime(uCHAR * DateTime)
{
SYSDATETIME[0]=DateTime[0] ; //年
SYSDATETIME[1]=DateTime[1] ; //月
SYSDATETIME[2]=DateTime[2] ; //日
SYSDATETIME[3]=DateTime[3] ; //年
SYSDATETIME[4]=DateTime[4] ; //月
SYSDATETIME[5]=DateTime[5] ; //日
}
//----------------读取系统日期和时间------------------------
struct DATETIME Get_DateTime()
{
struct DATETIME NewDateTime;
NewDateTime.System_Year=SYSDATETIME[0]; //年
if(SYSDATETIME[0]>90) SYSDATETIME[0]=90;
if(SYSDATETIME[0]<=0) SYSDATETIME[0]=0;
NewDateTime.System_Month=SYSDATETIME[1]; //月
if(SYSDATETIME[1]>12) SYSDATETIME[0]=12;
if(SYSDATETIME[1]<=0) SYSDATETIME[0]=0;
NewDateTime.System_Day=SYSDATETIME[2]; //日
if(SYSDATETIME[2]>31) SYSDATETIME[0]=31;
if(SYSDATETIME[2]<=0) SYSDATETIME[0]=0;
NewDateTime.System_Hour=SYSDATETIME[3]; //时
if(SYSDATETIME[3]>23) SYSDATETIME[0]=23;
if(SYSDATETIME[3]<=0) SYSDATETIME[0]=0;
NewDateTime.System_Minute=SYSDATETIME[4]; //分
if(SYSDATETIME[4]>59) SYSDATETIME[0]=59;
if(SYSDATETIME[4]<=0) SYSDATETIME[0]=0;
NewDateTime.System_Second=SYSDATETIME[5]; //秒
if(SYSDATETIME[5]>59) SYSDATETIME[0]=59;
if(SYSDATETIME[5]<=0) SYSDATETIME[0]=0;
return NewDateTime;
}
//-----------------将时间格式转换为字符串----------------------
void ChangeDateTimeToStr(char * String,struct DATETIME NewDateTime)
{
char TempString[32]=" ";
GetString_FromInt(NewDateTime.System_Year,TempString);
strcpy(String,TempString);
strcat(String," ");
GetString_FromInt(NewDateTime.System_Month,TempString);
if(NewDateTime.System_Month<10)
strcat(String,"0");
strcat(String,TempString);
strcat(String," ");
GetString_FromInt(NewDateTime.System_Day,TempString);
if(NewDateTime.System_Day<10)
strcat(String,"0");
strcat(String,TempString);
strcat(String," ");
GetString_FromInt(NewDateTime.System_Hour,TempString);
if(NewDateTime.System_Hour<10)
strcat(String,"0");
strcpy(String,TempString);
strcat(String,":");
GetString_FromInt(NewDateTime.System_Minute,TempString);
if(NewDateTime.System_Minute<10)
strcat(String,"0");
strcat(String,TempString);
strcat(String,":");
GetString_FromInt(NewDateTime.System_Second,TempString);
if(NewDateTime.System_Second<10)
strcat(String,"0");
strcat(String,TempString);
}
//--------------产生一个报警记录-------------------
void Create_Alarm(uINT Index,uCHAR Type)
{
uCHAR i=0;
if(Alarm_Content[Index].Is_Cancel==0) //没有该报警
{
struct DATETIME CurDateTime;
CurDateTime=Get_DateTime();
if(Index<100)
{
//----------------填充报警内容-----------------
Alarm_Content[Index].Alarm_Time=CurDateTime;
Alarm_Content[Index].Alarm_Index=Index;
Alarm_Content[Index].Is_Cancel=1;
//----------------填充报警显示索引-------------
Alarm_Display[Alarm_Count]=Index;
if(Alarm_Count<100) Alarm_Count++;
}
Write_ChargeRec(0,Index,0);
//--------------产生报警号推出报警窗口-----------
//if 系统允许弹出报警窗口
// 弹出报警窗口
// 并刷新报警信息
//if 告警声音设定时间不为零
// {
//产生声音报警
//}
//else
//{
//关掉声音报警
//}
//---------------开出处理------------------------
if(Type<6)
{
// Set_SWITCHOUT_Type(Type,1);
Alarm_Type[Type]++;
}
//-------------总出口报警------------------------------
for(i=0;i<6;i++)
{
// if(Alarm_Type[i])
// Set_SWITCHOUT_Type(6,1);
}
}
}
//--------------------------取消告警------------------------------
void Cancel_Alarm(uINT Index,uCHAR Type)
{
uCHAR i=0;
uCHAR bFlag=0;
uCHAR Temp_Count=0;
uCHAR bCount=0;
if(Alarm_Content[Index].Is_Cancel==1)//有该报警
{
if(Index<100)
{
//----------------删除报警内容-----------------
Alarm_Content[Index].Is_Cancel=0;
//----------------取消报警显示索引-------------
if(Alarm_Count>0)
{
for(i=0;i<Alarm_Count;i++)
{
if(Alarm_Display[i]==Index)
{
bFlag=1;
Temp_Count=i;
break;
}
}
}
if(bFlag==1)
{
for(i=Temp_Count+1;i<Alarm_Count;i++)
{
Alarm_Display[i-1]=Alarm_Display[i];
}
Alarm_Count--;
}
//------------马上把报警库写入文件---------------
// Write_ChargeRec(0,Index,1);
//--------------产生报警号推出报警窗口-----------
// if 系统允许弹出报警窗口
// 弹出报警窗口
// 并刷新报警信息
// if //告警声音设定时间不为零
//{
//产生声音报警
//}
// else
// {
//关掉声音报警
// }
//---------------开出处理------------------------
if(Type<6)
{
if(Alarm_Type[Type]==0)
{
// Set_SWITCHOUT_Type(Type,0);
}
}
//-------------总出口报警------------------------------
for(i=0;i<6;i++)
{
if(Alarm_Type[i]==0)
bCount++;
}
//if(bCount==6)
// Set_SWITCHOUT_Type(6,0);
}
}
}
//----------比较两个时间是否一致----------------------------
uCHAR DateTimeCmp(struct DATETIME Date_Time1,struct DATETIME Date_Time2)
{
uCHAR bFlag=0;
if(Date_Time1.System_Year==Date_Time2.System_Year)
if(Date_Time1.System_Month==Date_Time2.System_Month)
if(Date_Time1.System_Day==Date_Time2.System_Day)
if(Date_Time1.System_Hour==Date_Time2.System_Hour)
if(Date_Time1.System_Minute==Date_Time2.System_Minute)
if(Date_Time1.System_Second==Date_Time2.System_Second)
bFlag=1;
return bFlag;
}
//---------把压缩BCD转化为浮点数,再乘上比率Ratio------------
sFLOAT BCD_TO_HEX(uCHAR Data,sFLOAT Ratio)
{
sFLOAT ReturnValue;
uCHAR Temp;
Temp=Data;
Temp=Temp&0x0f;//屏蔽高四位
ReturnValue=Temp;
if(ReturnValue>9) ReturnValue=9;
Temp=Data&0xf0;//屏蔽低四位;
Temp=Temp>>4;//右移四位
if(Temp>9) Temp=9;
ReturnValue+=Temp*10;
ReturnValue*=Ratio;
return ReturnValue;
}
//-----------将三个字节 0x04 0x57,0x19转化为 0.5719*(10^4)----------
sFLOAT Three_Decode_(uCHAR Ratio,uCHAR Byte1,uCHAR Byte2)
{
uCHAR TempChar,i;
sFLOAT TempFloat;
TempChar=Ratio;
TempChar=TempChar&0x0f;//屏蔽高四位
if(TempChar>4)TempChar=4;
TempFloat=1;
for(i=0;i<TempChar;i++) TempFloat*=10;//获得系数
TempFloat=TempFloat*(BCD_TO_HEX(Byte1,0.01)+BCD_TO_HEX(Byte2,0.0001));
if(TempFloat>=10000) TempFloat=9999;
return TempFloat;
}
//----------将整数4957转换为0x49 0x57 两个字节------------------
void INT_TO_BCD(uINT Value,uCHAR Buffer[2])
{
uINT TempInt,Div,i;
uCHAR TempChar;
if(Value<=0) Value=0;
else Value=9999;
for(i=0;i<2;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -