📄 dt900lib.c
字号:
obr_mode.Itrf[0] = 0xff;
obr_mode.Itrf[1] = 4;
obr_mode.Itrf[2] = 40;
obr_mode.Itrf[3] = 0;
obr_mode.Itrf[4] = 0;
/* obr_mode.Itrf[5] = 1; */
obr_mode.Itrf[5] = 0;
obr_mode.Cd93[0] = 0xff;
obr_mode.Cd93[1] = 1;
obr_mode.Cd93[2] = 40;
obr_mode.Cd93[3] = 0;
obr_mode.Cd93[4] = 1;
obr_mode.Cd93[5] = 0;
obr_mode.Cd128[0] = 0xff;
obr_mode.Cd128[1] = 1;
obr_mode.Cd128[2] = 46;
obr_mode.Cd128[3] = 0;
obr_mode.Cd128[4] = 1;
obr_mode.Cd128[5] = 0;
obr_mode.Msi[0] = 0xff;
obr_mode.Msi[1] = 1;
obr_mode.Msi[2] = 40;
obr_mode.Msi[3] = 0;
obr_mode.Msi[4] = 1;
obr_mode.Msi[5] = 1;
obr_mode.Type = 1;
obr_mode.Gain = 0;
obr_mode.Buzc = 1;
obr_mode.Ledc = 1;
obr_mode.Bufc = 0;
obr_mode.Endc = 0;
obr_mode.Mode = 0;
switch( incode )
{
case 0:
obr_mode.Code = OBR_ALL;
obr_mode.Cd39[1] = 2;
obr_mode.Cd39[2] = 38;
obr_mode.Cd39[4] = 0;
obr_mode.Cd39[5] = 1;
obr_mode.Nw7[1] = 2;
obr_mode.Nw7[2] = 38;
obr_mode.Itrf[1] = 4;
obr_mode.Itrf[2] = 40;
break;
case 1:
obr_mode.Code = OBR_CD39;
obr_mode.Cd39[1] = 1;
obr_mode.Cd39[2] = 38;
obr_mode.Cd39[4] = 0;
obr_mode.Cd39[5] = 1;
break;
case 2:
obr_mode.Code = OBR_NW_7;
obr_mode.Nw7[1] = 1;
obr_mode.Nw7[2] = 38;
break;
case 3:
obr_mode.Code = OBR_ITF;
obr_mode.Itrf[1] = 2;
obr_mode.Itrf[2] = 40;
break;
default:
return;
}
OBR_modewt( &obr_mode );
}
/******************************************************************************
** Routine name: CR_Check **
** Detail : CR code is existed then clear **
** Parameter : B *msg : pointer to character string **
** : short len : character string length **
** Return value: none **
** Last Date : 1998/07/01 **
** Author : CLCE YangDongQing **
******************************************************************************/
void CR_Check( B *msg, short len )
{
short i;
for( i = 0; i < len; i++ )
{
if( msg[i] == 0x0d || msg[i] == '\0' )
{
msg[i] = '\0';
break;
}
}
for( ; i < len; i++ )
msg[i] = '\0';
}
/******************************************************************************
** Routine name: Wait **
** Detail : specified second wait routine **
** Parameter : tmcnt : timer count **
** Return value: none **
** Author : Fuji Software Inc. **
******************************************************************************/
void Wait( UW tmcnt )
{
ER ercd;
UW p_flg;
ercd = s_settimer( FL_TM1_INT_ID, FL_TM1_INT_RTC0, tmcnt );
wai_flg( &p_flg, FL_TM1_INT_ID, FL_TM1_INT_RTC0, TWF_ANDW | TWF_CLR );
s_timerend( ercd );
}
/*void IntPrint(int x,int y,B *format,int tp)
{
B temp[48];
sprintf(temp,format,tp);
lcd_csr_put(x,y);
cputstr(LCD_ATTR_NORMAL,(B*)temp);
}
*/
int FileCreat(void)
{
B fname[12],fbuff[11];
B fid;
H fmode,fhnd,fret,wkcnt;
UH flen;
ER retcd;
ID fi;
UW ptn;
KEY_INP pkey_inp;
DIR_TBL file_tbl;
fi = FL_FK_INT_ID;
ptn = FL_FK_INT_FNC1;
retcd = key_fnc_mode(FNC_MODE_SET,FNC_1,&fi,&ptn);
pkey_inp.ext = KEY_NON_EXT | KEY_INT_EXT;
pkey_inp.echo = ECHO_OFF;
pkey_inp.font_size = LCD_ANK_STANDARD;
pkey_inp.type = LCD_ATTR_NORMAL;
pkey_inp.column_pos = 3;
pkey_inp.line_pos = 3;
/* write data set */
memset( fname,'\0',12);
memset( fbuff,'\0',11);
strcpy( fname,"stock pmk");
lcd_cls();
/* open */
fmode = O_CREAT | O_WRONLY | O_TRUNC;
fhnd = open(fname, fmode);
if (fhnd == E_LOWERR){
lcd_string( LCD_ANK_LIGHT, LCD_ATTR_NORMAL,(B*)"file open error" , LCD_LF_OFF);
key_read( &pkey_inp );
return(1);
}
/* close */
fret = close(fhnd);
if (fret == E_LOWERR){
lcd_string( LCD_ANK_LIGHT, LCD_ATTR_NORMAL,(B*)"file close error" , LCD_LF_OFF);
key_read( &pkey_inp );
fret = close(fhnd);
return(1);
}
lcd_cls();
/* dat_fdir */
fid = DAT_FILE_TOP;
retcd = dat_fdir(fid,&file_tbl);
if (retcd == E_OK) {}
else{
lcd_csr_put( 0, 1);
lcd_string( LCD_ANK_LIGHT, LCD_ATTR_NORMAL,(B*)"File Creat ERR" , LCD_LF_OFF);
key_read( &pkey_inp );
return(1);
}
fi = FL_FK_INT_ID;
ptn = FL_FK_INT_FNC1;
retcd = key_fnc_mode(FNC_MODE_CLR,FNC_1,&fi,&ptn);
return(1);
}
/******************************************************************************
** Routine name: FNC_Initialize **
** Detail : function key initialize set (return default) **
** Parameter : None **
** Return value: None **
** Author : casio **
******************************************************************************/
void FNC_Init( void )
{
KEYFORM kcode;
kcode.attr = 0x0;
kcode.code = 0x2d;
key_fnc( FNC_SET, FNC_1, &kcode);
kcode.attr = 0x0;
kcode.code = 0x1d;
key_fnc( FNC_SET, FNC_2, &kcode);
kcode.attr = 0x0;
kcode.code = 0x1c;
key_fnc( FNC_SET, FNC_3, &kcode);
kcode.attr = 0x0;
kcode.code = 0x10;
key_fnc( FNC_SET, FNC_4, &kcode);
kcode.attr = 0x0;
kcode.code = 0x20;
key_fnc( FNC_SET, FNC_5, &kcode);
kcode.attr = 0xff;
kcode.code = 0x0;
key_fnc( FNC_SET, FNC_6, &kcode);
kcode.attr = 0xff;
kcode.code = 0x1;
key_fnc( FNC_SET, FNC_7, &kcode);
kcode.attr = 0xff;
kcode.code = 0x02;
key_fnc( FNC_SET, FNC_8, &kcode);
}
void FNC_Update( void )
{
KEYFORM kcode;
kcode.attr = 0x0;
kcode.code = 0x1;
key_fnc( FNC_SET, FNC_6, &kcode);
kcode.attr = 0x0;
kcode.code = 0x2;
key_fnc( FNC_SET, FNC_7, &kcode);
kcode.attr = 0x0;
kcode.code = 0x3;
key_fnc( FNC_SET, FNC_8, &kcode);
}
/******************************************************************************
** Routine name: Wait2 **
** Detail : specified second wait routine 2 (31.25ms) **
** Parameter : tmcnt : timer count **
** Return value: none **
** Author : Fuji Software Inc. **
******************************************************************************/
void Wait2( UW tmcnt )
{
ER ercd;
UW p_flg;
ercd = s_settimer2( FL_TM2_INT_ID, FL_TM2_INT_ITU0, tmcnt );
wai_flg( &p_flg, FL_TM2_INT_ID, FL_TM2_INT_ITU0, TWF_ANDW | TWF_CLR );
s_timerend2( ercd );
}
int getkey2(int y,int x)
{
KEY_INP kinp;
int code;
H csr_x,csr_y,csr_type;
lcd_csr_get(&csr_x,&csr_y,&csr_type);
lcd_csr_set(LCD_CSR_UNDER);
kinp.ext = KEY_OBR_EXT;
kinp.echo = ECHO_ON;
kinp.font_size = LCD_ANK_STANDARD;
kinp.type = LCD_ATTR_NORMAL;
kinp.column_pos = x;
kinp.line_pos = y;
code=key_read(&kinp);
lcd_csr_set(csr_type);
return (code);
}
int getkey(void)
{
KEY_INP kinp;
int code;
kinp.ext = KEY_OBR_EXT;
kinp.echo = ECHO_OFF;
kinp.font_size = LCD_ANK_LIGHT;
kinp.type = LCD_ATTR_NORMAL;
kinp.column_pos =0;
kinp.line_pos = 2;
code=key_read(&kinp);
return (code);
}
char get_ch(void)
{
UW key = 0;
KEY_INP key_chr; /* key_read*/
key_chr.ext = KEY_INT_EXT | KEY_CLR_EXT;
key_chr.echo = ECHO_OFF;
key_chr.font_size = LCD_ANK_STANDARD;
key_chr.type = LCD_ATTR_NORMAL;
key_chr.column_pos = 0;
key_chr.line_pos = 2;
key_clear();
key = key_read(&key_chr);
key_clear();
return((char)key);
}
ER dat_F_Read(B *filename,W pos,B *sdata,H len)
{
int fd,err;
fd=open(filename,O_RDWR);
if(fd==E_LOWERR) return E_PRM;
err=lseek(fd,pos,0);
if(err==E_LOWERR)
{
close(fd);
return(1);
}
err=read(fd,sdata,len);
if(err!=len)
{
close(fd);
return(1);
}
close(fd);
return (0);
}
ER dat_F_Write(B *filename,H mode,W pos,B *sdata,H len)
{
int fd,err;
fd=open(filename,O_RDWR);
if(fd==E_LOWERR) return E_PRM;
if(mode==0)
{
err=lseek(fd,pos,0);
}
else if(mode==1)
{
err==lseek(fd,0L,2);
}
else
{
close(fd);
return E_PRM;
}
if(err==E_LOWERR)
{
close(fd);
return E_PRM;
}
err=write(fd,sdata,len);
if(err==E_LOWERR)
{
close(fd);
return(3); /* other err */
}
close(fd);
return E_OK;
}
void dateset(void)
{
struct day_tabl day_dat;
ER retcd,len;
B buff[5];
KEY_INPS pkey_inps;
retcd = s_dateget(&day_dat);
lcd_csr_put( 3, 1 );
memset(buff,0x00,sizeof(buff));
sprintf(buff,"%4d",day_dat.year);
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)buff , LCD_LF_OFF );
/* set month */
lcd_csr_put( 3, 5 );
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)"/" , LCD_LF_OFF );
lcd_csr_put( 3, 6 );
memset(buff,0x00,sizeof(buff));
sprintf(buff,"%2d",day_dat.month);
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)buff , LCD_LF_OFF );
lcd_csr_put( 3, 5 );
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)"/" , LCD_LF_OFF );
/* set day */
lcd_csr_put( 3, 8 );
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)"/" , LCD_LF_OFF );
lcd_csr_put( 3, 9 );
memset(buff,0x00,sizeof(buff));
sprintf(buff,"%2d",day_dat.day);
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)buff , LCD_LF_OFF );
lcd_csr_put( 3, 8 );
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_NORMAL,(B*)"/" , LCD_LF_OFF );
/* input */
pkey_inps.ext = KEY_NON_EXT;
pkey_inps.echo = ECHO_ON;
pkey_inps.font_size = LCD_ANK_STANDARD;
pkey_inps.type = LCD_ATTR_REVERS;
pkey_inps.clr_type = KEY_NUM_CLR_ON;
/* input year */
memset(buff,0x00,sizeof(buff));
pkey_inps.len = 4;
pkey_inps.column_pos = 1;
pkey_inps.line_pos = 5;
retcd = key_num( &pkey_inps, &buff);
len=strlen(buff);
if (len==0)
{
lcd_csr_put( 5, 1 );
sprintf(buff,"%4d",day_dat.year);
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_REVERS,(B*)buff , LCD_LF_OFF );
goto lab1;
}
day_dat.year = atol(buff);
lab1: /* input month */
memset(buff,0x00,sizeof(buff));
pkey_inps.len = 2;
pkey_inps.column_pos = 6;
pkey_inps.line_pos = 5;
retcd = key_num( &pkey_inps, &buff);
len=strlen(buff);
lcd_csr_put( 5, 5 );
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_REVERS,(B*)"/" , LCD_LF_OFF );
if (len==0)
{
lcd_csr_put(5,6);
sprintf(buff,"%2d",day_dat.month);
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_REVERS,(B*)buff , LCD_LF_OFF );
goto lab2;
}
day_dat.month = atoi(buff);
lab2:
memset(buff,0x00,sizeof(buff));
pkey_inps.len = 2;
pkey_inps.column_pos = 9;
pkey_inps.line_pos = 5;
retcd = key_num( &pkey_inps, &buff);
len=strlen(buff);
lcd_csr_put( 5, 8 );
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_REVERS,(B*)"/" , LCD_LF_OFF );
if (len==0)
{
lcd_csr_put(5,9);
sprintf(buff,"%2d",day_dat.day);
lcd_string( LCD_ANK_STANDARD, LCD_ATTR_REVERS,(B*)buff , LCD_LF_OFF );
goto lab3;
}
day_dat.day = atoi(buff);
lab3:
s_dateset( &day_dat );
key_clear();
while( 1 ){
if(key_check() != E_NG){
break;
}
}
}
void strsub (B *sdata,B *fint,B *fdecimal)
{
ER i,j,point=100;
for(i=0;i<strlen(sdata);i++)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -