⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dt900lib.c

📁 CASIO 手持终端盘点系统源代码——C语言
💻 C
📖 第 1 页 / 共 3 页
字号:
        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 + -