📄 main.c
字号:
cls();
closefile(f_ret);
display_cen(5,"请安装好打印纸");
display_cen(6,"按任意键,重新操作");
inkey(0);
return;
}
trans.ticket_no = kpph + 1;
if ( trans.ticket_no > 9999999 || trans.ticket_no < 0){
trans.ticket_no = 1;
}
kpph = trans.ticket_no;
trans.void_flag = 0;
trans.half_flag = 1;
len=writefile(f_ret, LEN_Sale_Ticket, (char*)&trans);
if ( len != LEN_Sale_Ticket ){
cls();
closefile(f_ret);
display_cen ( 4 , "流水文件系统出错" ) ;
display_cen ( 5 , "不能正常工作");
display_cen ( 6 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
feed_printer(8);
Void_Print(0);
}
}
closefile(f_ret);
}
void
Void_Print( int flag )
{
char buffer[100];
char buffer1[100];
cls();
display( 5, " 正在打印%07ld号车票",kpph);
display_cen( 7, "请等待");
init_printer( 640 );
clear_printer();
sprintf( buffer, "%16.16s%8.8s-%07ld", " ", drive.car_no ,trans.ticket_no);
fill_ticket_dot(8, 0, buffer, DOT32);
sprintf( buffer, "%-8.8s----%-8.8s %5.5s次", Busman1.busman_name, trans.end_station,trans.bus_bc);
fill_ticket_dot(12, 0, buffer, DOT40);
print_amount(trans.bus_fare, buffer1);
if ( trans.half_flag == 0 )
sprintf( buffer, " 全 价:%12.12s",buffer1);
else
sprintf( buffer, " 半 价:%12.12s",buffer1);
fill_ticket_dot(22, 10, buffer, DOT32);
sprintf( buffer, "日期: %4.4s年%2.2s月%2.2s日 %2.2s时%2.2s分", trans.date_time,\
trans.date_time+4, trans.date_time+6, trans.date_time+9, trans.date_time+11);
fill_ticket_dot(33,1, buffer, DOT32);
sprintf( buffer, "当日当次有效 售票员: %4.4s", trans.busman);
fill_ticket_dot(38,1,buffer ,DOT32);
set_printer();
init_printer( 0 );
feed_printer(30);
return;
}
void
Void_Up_Sale_Ticket_Data()
{
char f_ret, buffer[20], jcjsd[8], in_st[6],rq[10];
int i, len,jcbj,str_len, failtime,input;
int readlen;
long spy,bc;
/////////////////////////////////////////////////////////////////////检查
f_ret=openfile("F_STLS");
if (check_openfile( f_ret ) == US_FAIL ){
cls();
closefile(f_ret);
display_cen ( 4 , "流水文件系统出错" ) ;
display_cen ( 5 , "不能正常工作");
display_cen ( 6 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
memset( jcjsd, 0, sizeof( jcjsd ));
jcbj=0;
seekfile(f_ret,0,SEEK_SET);
do{
memset( (char *)&trans_rec, 0, LEN_Sale_Ticket);
readfile (f_ret, LEN_Sale_Ticket, (char *)&trans_rec);
if( trans_rec.settle_flag == 0 && trans_rec.void_flag == 0){
jcbj=99;
strcpy( jcjsd, trans_rec.bus_no );
break;
}
}while( eoffile( f_ret ) != 1);
closefile(f_ret);
/////////////////////////////////////////////////////////////////////////////////检查
str_len=0;
if ( jcbj == 99 ){
cls();
memset( in_st, 0, sizeof( in_st ));
display(8,"按99强制上传数据其它键返回:");
display(6,"没结算的车号: %s", jcjsd);
input = getstrn( 8, 28, 0, 0, 2, in_st);
if( in_st[0] == (char )0xff && input == 1)
return;
}
str_len = atoi( in_st );
if (str_len != 99 && jcbj==99 )
return;
config.goup_flag = 0;
config.goup_count = 0;
display_inv(1,"交款上传售票数据");
init_rs232(3);
f_ret=openfile("F_STLS");
seekfile(f_ret,(long)(config.goup_count*LEN_Sale_Ticket), SEEK_SET);
clearall();
display_cen ( 5 , "数据上传中" ) ;
while( eoffile( f_ret ) != 1){
display ( 7 , " 正在上传第1笔交易 " ) ;
memset( pub_buff1, 0,sizeof(pub_buff1));
for(i=0;i<3;i++){
memset( (char *)&trans_rec, 0, LEN_Sale_Ticket);
len=readfile(f_ret, LEN_Sale_Ticket ,(char*)&trans_rec);
if ( len != LEN_Sale_Ticket ){
cls();
closefile(f_ret);
display_cen ( 4 , "流水文件系统出错" ) ;
display_cen ( 5 , "不能正常上传数据");
display_cen ( 6 , "按任意键返回重新上传" ) ;
systemsound ( 400 ) ;
enable_poweroff ();
power_off();
inkey(0);
}
memset( pub_buff2, 0,sizeof(pub_buff2));
memset( rq, 0,sizeof(rq));
get_date(rq);
spy=atol(trans_rec.busman);
bc=atol(trans_rec.bus_bc);
sprintf ( pub_buff2, "%04ld%05ld%9.9s%1.1s%05ld",spy,bc,rq,sbh,trans_rec.jsdh);
strcat( pub_buff1, pub_buff2);
memset( pub_buff2, 0,sizeof(pub_buff2));
sprintf ( pub_buff2, "%7.7s%8.8s", trans_rec.bus_no, trans_rec.end_station);
strcat( pub_buff1, pub_buff2);
memset( pub_buff2, 0,sizeof(pub_buff2));
sprintf ( pub_buff2, "%1d%1d%1d%1d",trans_rec.void_flag,trans_rec.half_flag, trans_rec.settle_flag, trans_rec.jk_flag);
strcat( pub_buff1, pub_buff2);
memset( pub_buff2, 0,sizeof(pub_buff2));
sprintf ( pub_buff2, "%1.1s%07ld%05ld%03d", sbh,trans_rec.ticket_no, trans_rec.bus_fare, trans_rec.stat_fare);
strcat( pub_buff1, pub_buff2);
if( eoffile(f_ret) == 1)
break;
}
len = strlen( pub_buff1);
memset( pub_buff2, 0,sizeof(pub_buff2));
pub_buff2 [ 0 ] = 0x02 ;
pub_buff2 [ 1 ] = ( len / 100 ) + ( len / 100 ) / 10 * 6 ;
pub_buff2 [ 2 ] = ( len % 100 ) + ( len % 100 ) / 10 * 6 ;
memcpy ( pub_buff2+3, pub_buff1, len);
pub_buff2 [ 1 + 2 + len ] = 3 ;
sendrs232 ( 1 + 2 + len + 1 , pub_buff2 ) ;
failtime = 0 ;
do {
if ( ++ failtime > 30 ) {
cls();
config.goup_flag = 1;
display_cen ( 5 , "数据上传超时" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
break;
}
readrs232 ( buffer, 2 ,1 ) ;
} while ( buffer [ 0 ] != 0x02 ) ;
readlen = readrs232 ( buffer, 6 ,13 ) ;
if ( readlen != 13 || buffer [ readlen-1 ] != 0x03 ){
config.goup_flag = 1;
cls();
display_cen ( 5 , "数据校验失败" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
break;
}
if( memcmp(buffer,"OKOKOKOKOKOK",12)!=0){
config.goup_flag = 1;
cls();
display_cen ( 5 , "主机数据接收失败" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
break;
}
config.goup_count = config.goup_count + len /59;
};
closefile(f_ret); //关闭文件
if( config.goup_flag != 1 ){
config.goup_count = 0;
config.goup_flag = 0;
deletefile("F_STLS");
cls();
display_cen ( 5 , "数据上传结束" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
}
}
void
Void_Download( char *filename )
{
int download_num, readlen, len, failtime, f_ret, i;
char down_flag;
char buffer[30], buffer1[30],ls[8];
long ls1;
deletefile( filename );
f_ret=openfile( filename );
if ( check_openfile( f_ret ) == US_FAIL)
return;
down_flag = 0;
download_num = 1;
seekfile(f_ret,0,SEEK_SET);
while(1){
memset( buffer1, 0,sizeof(buffer1));
memset( buffer, 0,sizeof(buffer));
buffer [ 0 ] = 0x02 ;
sprintf(buffer+1,"%04d%6.6sqingqiuxiazaidi", download_num, filename);
buffer [ 26 ] = 3 ;
sendrs232 ( 27 , buffer ) ;
failtime = 0 ;
display_cen ( 5 , "等待接收数据" ) ;
do {
if ( ++ failtime > 10 ) {
closefile(f_ret); //关闭文件
cls();
display_cen ( 5 , "数据下传超时" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
return;
}
readrs232 ( buffer, 2 ,1 ) ;
} while ( buffer [ 0 ] != 0x02 ) ;
readrs232 ( buffer, 6 ,4 ) ;
buffer[4] = 0;
readlen = atoi(buffer);
memset( pub_buff1, 0,sizeof(pub_buff1));
len = readrs232 ( pub_buff1 , 12 , readlen + 1 ) ;
if ( len != readlen+1){
closefile(f_ret); //关闭文件
cls();
display_cen ( 5 , "数据校验失败1" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
return;
}
pub_buff1[readlen]=0;
if( memcmp(pub_buff1,"ENDENDENDEND",12) == 0){
closefile(f_ret); //关闭文件
cls();
display_cen ( 5 , "数据下传结束1" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
return;
}
if ( memcmp( filename, "F_DRIV", 6) == 0){
if ( readlen != 26 ){
down_flag = 1;
}else{
memset( ls, 0,sizeof(ls));
memset( (char *)&drive, 0, LEN_Drive);
memcpy( ls, pub_buff1, 7 );
ls1=atol(ls);
sprintf( drive.bus_no, "%07ld", ls1);
memcpy( drive.driver_name, pub_buff1+7, 8 );
memcpy( drive.car_no, pub_buff1+15, 8 );
memcpy( drive.car_home, pub_buff1+23, 3 );
len=writefile(f_ret, LEN_Drive, (char*)&drive);
if ( len != LEN_Drive ){
cls();
display_cen ( 5 , "下传文件出错3" ) ;
display_cen ( 7 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
download_num ++;
}
}
if ( memcmp( filename, "F_MANS", 6) == 0){
if ( readlen != 18 ){
down_flag = 1;
}else{
memset( (char *)&Busman, 0, LEN_Busman );
memcpy( Busman.busman, pub_buff1, 4 );
memcpy( Busman.busman_name, pub_buff1+4, 8 );
memcpy( Busman.password, pub_buff1+12, 6 );
len=writefile(f_ret, LEN_Busman, (char*)&Busman);
if ( len != LEN_Busman ){
cls();
display_cen ( 5 , "下传文件出错1" ) ;
display_cen ( 7 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
download_num ++;
}
}
if ( memcmp( filename, "F_STAT", 6) == 0){
if ( (readlen -13 )% 16 != 0){
down_flag = 1;
}else{
memset( (char *)&stat_line, 0, LEN_Station);
memset( (char *)&bus_fare, 0, LEN_Station*LINE_ST_MAX);
memcpy( buffer, pub_buff1, 3 );
buffer[3]=0;
stat_line.line_no = atoi( buffer );
memcpy( buffer, pub_buff1+11, 2 );
buffer[2]=0;
stat_line.station_num = atoi( buffer );
memcpy( stat_line.line_name, pub_buff1+3, 8 );
for( i = 0; i< stat_line.station_num; i++){
memcpy( bus_fare[i].station_name, pub_buff1+13+i* 16, 8 );
memcpy( buffer, pub_buff1+13+i* 16+8, 5 );
buffer[5]=0;
bus_fare[i].bus_fare = atol( buffer );
memcpy( buffer, pub_buff1+13+i* 16+13, 3 );
buffer[3]=0;
bus_fare[i].stat_fare = atol( buffer );
}
len=writefile(f_ret, LEN_Station, (char*)&stat_line);
if ( len != LEN_Station ){
cls();
display_cen ( 5 , "下传文件出错2" ) ;
display_cen ( 7 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
len=writefile(f_ret, LEN_Bus_Fare * stat_line.station_num, (char*)&bus_fare);
if ( len != LEN_Bus_Fare * stat_line.station_num ){
cls();
display_cen ( 5 , "下传文件出错3" ) ;
display_cen ( 7 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
}
download_num ++;
}
if ( down_flag == 1){
closefile(f_ret); //关闭文件
cls();
display_cen ( 5 , "数据校验失败2" ) ;
display_cen ( 7 , "按任意键返回" ) ;
inkey ( 0 ) ;
return;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -