📄 setup.bak
字号:
#include <stdio.h>
#include <string.h>
#include <dos.h>
#include <conio.h>
#include <math.h>
#include <dir.h>
#include "definitions.h"
#include "kernel.h"
#include "utilities.h"
#include "setup.h"
#include "help.h"
void setup(struct hard_setup *hard_config, struct soft_setup *soft_config)
{
int ch, curnt=0, i, change=FALSE;
char temp1[20]={1}, temp2[20]={2};
static char item[10][35]={"Port Settings","Bit Settings","Unit, Label, Jog, and F/R Settings",
"Calibration Settings","Home and Limit Switch Settings","Change Password",
"Load Default Settings","Save As","Save", "Exit Without Saving"};
static BYTE screen[2000], buffer[1000];
static struct hard_setup hardware;
static struct soft_setup software;
struct find_t ffblk;
hardware=*hard_config; software=*soft_config;
load_setup(&hardware, &software, software.file);
gettext(21,1,60,25,screen);
textcolor(BLUE);
if(strcmp(software.password,"none")!=0)
{box(28,8,53,16, RED,BLACK,WHITE,WHITE);
gotoxy(4,4); cprintf("Cfg: %s",software.file);
gotoxy(4,6); cprintf("Password:");
window(40,13,48,13);
textbackground(BLACK);
clrscr(); gotoxy(1,1);
_setcursortype(_NORMALCURSOR);
if(NULL==(i=get_string(software.password, PASSWORD)) ||
i==ESC || strcmp(software.password,(*soft_config).password)!=0)
{_setcursortype(_NOCURSOR);
if(i==ESC) {window(1,1,80,25); puttext(21,1,60,25,screen); return;}
puttext(21,1,60,25,screen);
box(28,9,52,15, RED,BLACK,WHITE,WHITE);
gotoxy(5,4); cprintf("Invalid Password");
sleep(2);
puttext(21,1,60,25,screen);
return;
}
}
_setcursortype(_NOCURSOR);
while(1)
{window(21,1,60,25);
textbackground(LIGHTGRAY);
clrscr();
box(21,3,60,16, LIGHTGRAY,BLACK,WHITE,BLUE);
window(21,1,60,25);
gotoxy(15,1); cprintf("<Esc> To Exit");
gotoxy(4,3); cprintf("Cfg: %s",software.file);
for(i=0;i<10;i++) {gotoxy(4,i+5); cprintf("%s",item[i]);}
while (1)
{gotoxy(4,curnt+5); textbackground(BROWN);
cprintf("%s",item[curnt]); ch=getch();
gotoxy(4,curnt+5); textbackground(LIGHTGRAY);
cprintf("%s",item[curnt]);
if (ch == 13 || ch == 32) {if(strcmp(software.file,"<DEFAULT>")==0 && curnt==8) curnt=7; break;}
if (ch == 27) {curnt=9; break;}
if (ch > 0) continue;
ch = getch();
switch (ch)
{case 72 : --curnt; break; //up arrow
case 80 : ++curnt; break; //down arrow
case 59 : help(curnt+2); break; //f1
}
if (curnt < 0) curnt=9;
if (curnt > 9) curnt=0;
}
START:
switch(curnt)
{case 0:
if(pins(&hardware)) change=TRUE;
break;
case 1:
if(bits(&hardware, &software)) change=TRUE;
break;
case 2:
if(label(&hardware, &software)) change=TRUE;
break;
case 3:
if(calibration(&hardware, &software)) change=TRUE;
break;
case 4:
if(home(&hardware, &software)) change=TRUE;
break;
case 5:
box(25,16,55,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,4); cprintf("New Password:");
gotoxy(4,6); cprintf("Confirm:");
_setcursortype(_NORMALCURSOR);
while(strcmp(temp1, temp2)!=0)
{window(43,21,51,21);
textbackground(BLACK);
clrscr();
window(43,19,51,19);
textbackground(BLACK);
clrscr();
gotoxy(1,1);
while(NULL==(i=get_string(temp1, PASSWORD)));
if(i==ESC) break;
window(43,21,51,21);
gotoxy(1,1);
while(NULL==(i=get_string(temp2, PASSWORD)));
if(i==ESC) break;
}
_setcursortype(_NOCURSOR);
if(i==ESC) break;
sprintf(software.password,"%s",temp1);
change=TRUE;
break;
case 6:
box(22,19,59,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,3); cprintf(" Load Default Settings");
gotoxy(4,4); cprintf("<Enter> To Accept <Esc> To Abort");
while(1)
{ch=getch();
if(ch==27 || ch==13 || ch==32) break;
}
if(ch==27) break;
sprintf(temp1,"%s",software.password);
sprintf(temp2,"%s",software.file);
load_setup(&hardware, &software, "<DEFAULT>");
sprintf(software.password,"%s",temp1);
sprintf(software.file,"%s",temp2);
change=TRUE;
break;
case 7:
box(27,18,52,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,4); cprintf("Save As:");
window(39,21,47,21);
textbackground(BLACK);
clrscr();
gotoxy(1,1);
_setcursortype(_NORMALCURSOR);
while(NULL==(i=get_string(temp1, NULL)));
_setcursortype(_NOCURSOR);
if(i==ESC) break;
i=0;
sprintf(temp2,"%s.CFG",temp1);
if(chdir("CONFIG")!=0) {mkdir("CONFIG"); chdir("CONFIG");}
if(_dos_findfirst(temp2,_A_NORMAL,&ffblk)==NULL)
{gettext(22,19,59,24,buffer);
box(22,19,59,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,3); cprintf(" Replace File: %s?", temp2);
gotoxy(4,4); cprintf("<Enter> To Accept <Esc> To Abort");
while(1) {i=getch(); if(i==27 || i==13 || i==32) break;}
puttext(22,19,59,24,buffer);
}
chdir("..");
if(i==27) break;
_setcursortype(_NOCURSOR);
sprintf(software.file,"%s",temp2);
case 8:
if(curnt==8)
{box(22,19,59,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,3); cprintf(" Save File To: %s",software.file);
gotoxy(4,4); cprintf("<Enter> To Accept <Esc> To Abort");
while(1)
{ch=getch();
if(ch==27 || ch==13 || ch==32) break;}
if(ch==27) break;
}
*hard_config=hardware;
*soft_config=software;
save_setup(hard_config, soft_config, (*soft_config).file);
change=FALSE;
break;
case 9:
if(change==TRUE)
{box(22,19,59,24, RED,BLACK,WHITE,WHITE);
gotoxy(4,3); cprintf(" Save Changes To: %s",software.file);
gotoxy(4,4); cprintf("<Enter> To Accept <Esc> To Abort");
while(1)
{ch=getch();
if(ch==27 || ch==13 || ch==32) break;}
if(ch==13 || ch==32)
{if(strcmp(software.file,"<DEFAULT>")==0) curnt=7;
else curnt=8;
goto START;}
}
puttext(21,1,60,25,screen);
return;
}
}
}
int pins(struct hard_setup *hardware)
{
int ch, i, curnt=0, curnt2, tab=0, temp, val, change=FALSE;
int x[4][8]={{4},{4,4,4,4,4,4,4,4},{24,24,24,24,24},{24,24,24,24}};
int y[4][8]={{12},{16,17,18,19,20,21,22,23},{12,13,14,15,16},{20,21,22,23}};
static char item[4][8][30];
static char item2[4][8][15];
static struct hard_setup temp_config;
window(21,1,60,25);
textbackground(LIGHTGRAY);
clrscr();
for(i=0;i<8;i++) sprintf(item2[1][i],"Pin %2d",i+2);
sprintf(item2[0][0],"Port 0x378");
sprintf(item2[0][1],"Port 0x278");
sprintf(item2[0][2],"Port 0x3BC");
sprintf(item2[3][0],"Pin 1");
sprintf(item2[3][1],"Pin 14");
sprintf(item2[3][2],"Pin 16");
sprintf(item2[3][3],"Pin 17");
for(i=0;i<4;i++) sprintf(item2[2][i],"Pin %2d",i+10);
sprintf(item2[2][4],"Pin 15");
box(21,2,60,9, LIGHTGRAY,BLACK,WHITE,BLUE);
gotoxy(4,3); cprintf(" 13-----------------------------1");
gotoxy(4,4); cprintf(" \\ /");
gotoxy(4,5); cprintf(" \\ /");
gotoxy(4,6); cprintf(" 25-------------------------14");
textcolor(YELLOW);
gotoxy(9,4); cprintf("o o o o o o o o o o o o o");
textcolor(BLACK);
gotoxy(10,5); cprintf("o o o o o o o o");
textcolor(YELLOW);
cprintf(" o o o o");
textcolor(BLUE);
gotoxy(3,8); cprintf("Looking at Port on Back of Computer");
window(21,1,60,25);
gotoxy(1,1); cprintf(" <Tab> To Change group <Esc> To Exit");
while (1)
{sprintf(item[1][0],"<X> Step Pin %d",data_pin((*hardware).x_sbit));
sprintf(item[1][1],"<X> Dir Pin %d",data_pin((*hardware).x_dbit));
sprintf(item[1][2],"<Y> Step Pin %d",data_pin((*hardware).y_sbit));
sprintf(item[1][3],"<Y> Dir Pin %d",data_pin((*hardware).y_dbit));
sprintf(item[1][4],"<Z> Step Pin %d",data_pin((*hardware).z_sbit));
sprintf(item[1][5],"<Z> Dir Pin %d",data_pin((*hardware).z_dbit));
sprintf(item[1][6],"<Aux>St. Pin %d",data_pin((*hardware).a_sbit));
sprintf(item[1][7],"<Aux>Dir Pin %d",data_pin((*hardware).a_dbit));
if((*hardware).port==0x378) sprintf(item[0][0],"Port 0X378");
if((*hardware).port==0x278) sprintf(item[0][0],"Port 0X278");
if((*hardware).port==0x3bc) sprintf(item[0][0],"Port 0X3BC");
sprintf(item[3][0],"<1st IO>Pin %2d",control_pin((*hardware).io1_bit));
sprintf(item[3][1],"<2nd IO>Pin %2d",control_pin((*hardware).io2_bit));
sprintf(item[3][2],"<3rd IO>Pin %2d",control_pin((*hardware).io3_bit));
sprintf(item[3][3],"<4th IO>Pin %2d",control_pin((*hardware).io4_bit));
sprintf(item[2][0],"<X>Lim Pin %2d",status_pin((*hardware).x_lbit));
sprintf(item[2][1],"<Y>Lim Pin %2d",status_pin((*hardware).y_lbit));
sprintf(item[2][2],"<Z>Lim Pin %2d",status_pin((*hardware).z_lbit));
sprintf(item[2][3],"<Aux>LimPin %2d",status_pin((*hardware).a_lbit));
sprintf(item[2][4],"<ES/Hld>Pin %2d",status_pin((*hardware).e_bit));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -