You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1145 lines
35 KiB
1145 lines
35 KiB
void sdlist()
|
|
{
|
|
|
|
char name[13];
|
|
char name1[13];
|
|
char name2[13];
|
|
char name3[13];
|
|
char name4[13];
|
|
// char time [8];
|
|
int cardSize;
|
|
int h;
|
|
int nstr=0;
|
|
byte prob=0;
|
|
byte ndir=0;
|
|
// String stringOne, stringTwo;
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setBackColor(VGA_BLUE);
|
|
|
|
myGLCD.fillScr(VGA_BLUE);
|
|
|
|
//cardSize = card.cardSize();
|
|
|
|
|
|
|
|
|
|
kalend();
|
|
|
|
//*************************************************************************
|
|
// myGLCD.drawBitmap (640, 180, 80, 80, aandelen);
|
|
myGLCD.drawRoundRect (640, 180, 680, 220);//Read
|
|
//myGLCD.setFont( Ubuntubold);
|
|
myGLCD.setFont(SmallFont);
|
|
|
|
myGLCD.print("Read" , 646, 180+20-7);//кнопка чтения из карты памяти
|
|
|
|
|
|
// myGLCD.drawBitmap (640, 270, 80, 80, aandelen);
|
|
myGLCD.drawRoundRect (700, 180, 740, 220);//Save
|
|
myGLCD.print("Save" , 706, 180+20-7);//Save
|
|
|
|
// myGLCD.drawRoundRect (700, 180, 740, 220);//Save
|
|
myGLCD.print("Exit" , 646, 300+20-7);//exit
|
|
myGLCD.drawRoundRect ( 640, 300, 680, 340); //undo
|
|
|
|
myGLCD.drawBitmap (700, 300, 40, 40, del);
|
|
myGLCD.drawRoundRect ( 700, 300, 740, 340); //undo
|
|
|
|
myGLCD.drawBitmap (639, 370, 160, 80, cl);
|
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
|
|
|
// myGLCD.setBackColor( 255,255,255);
|
|
// myGLCD.setColor(22,18,70);
|
|
|
|
clc();
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.fillRoundRect (10, 5, 350, 475);
|
|
myGLCD.fillRoundRect (380,5, 630, 141);
|
|
myGLCD.fillRoundRect (380,145, 630, 475);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.drawRoundRect (10, 5, 350, 475);
|
|
myGLCD.drawRoundRect (380,5, 630, 141);
|
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
|
|
|
myGLCD.drawBitmap (340, 5, 30, 30, ad);
|
|
myGLCD.drawRoundRect ( 340, 5, 370, 35); //+
|
|
|
|
myGLCD.drawBitmap (340, 445, 30, 30, mi);
|
|
myGLCD.drawRoundRect ( 340, 445, 370, 475); //-
|
|
//************
|
|
myGLCD.drawBitmap (640, 240, 40, 40, open);
|
|
myGLCD.drawRoundRect ( 640, 240, 680, 280); //open
|
|
|
|
|
|
//*******************************************************
|
|
myGLCD.setFont(BigFont);
|
|
|
|
sd.begin(chipSelect, SPI_HALF_SPEED );
|
|
|
|
list:
|
|
|
|
sd.chdir("/");//установка раб директории
|
|
delay(50);
|
|
//byte q=0;
|
|
byte pos=1;
|
|
byte i=0;
|
|
//byte np[10];//номер папки в листинге
|
|
byte n=0;
|
|
int tab=0;
|
|
int xl=30;
|
|
|
|
//************Печать листинга*************************************
|
|
|
|
myGLCD.setFont(BigFont);
|
|
|
|
|
|
myGLCD.setBackColor(VGA_WHITE);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.fillRoundRect (25, 45, 340, 473); //очистка каталога
|
|
myGLCD.fillRoundRect (382,6, 618, 139);//очистка терминала
|
|
myGLCD.print("DIR: ROOT", 400, 10);
|
|
myGLCD.print(" File name Size", xl-5, 10+tab);
|
|
tab=tab+22;
|
|
|
|
myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(255,114,0);
|
|
myGLCD.print(" ", xl+10, 10+tab);
|
|
myGLCD.print("ROOT", xl+100, 10+tab);
|
|
tab=tab+21;
|
|
|
|
|
|
|
|
|
|
list1:
|
|
byte m=0;//колво файлов в директории
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
// myFile.dirIndex(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
// siz [n]=cardSize;
|
|
m++;
|
|
myFile.close();
|
|
}
|
|
|
|
if (pos < 1)
|
|
{pos=1;
|
|
}
|
|
|
|
if (pos > m)
|
|
{pos=m;
|
|
}
|
|
barlist(100*pos/m,20);//barint m-колво файлов в папке
|
|
|
|
|
|
|
|
if (pos > nstr+20)
|
|
{nstr=nstr+1;
|
|
prob=1;//печать пробелов для удаления остатков файлов при листинге
|
|
}
|
|
|
|
if (pos <= nstr)
|
|
{nstr=nstr-1;
|
|
prob=1;
|
|
}
|
|
|
|
tab=0;
|
|
tab=tab+43;
|
|
myGLCD.setFont(BigFont);
|
|
|
|
|
|
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setBackColor(22,18,70);
|
|
|
|
myGLCD.print("Files - ", 400,115);//колво файлов в папке
|
|
myGLCD.printNumI(m, 528,115);//колво файлов в папке
|
|
|
|
//myGLCD.printNumI(pos, 550, 125);// тех
|
|
//myGLCD.printNumI(nstr, 550, 145);
|
|
|
|
sd.chdir("/");//установка раб директории
|
|
delay (100);
|
|
i=0;//
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
myFile.getFilename(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
// siz [n]=cardSize;
|
|
|
|
if (i>=nstr)// движение курсора
|
|
{
|
|
if( myFile.isDir()==1)
|
|
{
|
|
// np[q]=n;//номер DIR по счету
|
|
// q=q+1;//колво DIR
|
|
if (pos-1==i)//позиция курсора
|
|
{ myGLCD.setColor(22,18,70);
|
|
myGLCD.setBackColor(VGA_RED);
|
|
myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
else
|
|
{myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(VGA_RED);
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
if (pos-1==i) //позиция курсора
|
|
{ myGLCD.setColor(22,18,70);
|
|
myGLCD.setBackColor(VGA_WHITE);
|
|
myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
else
|
|
{myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
|
|
}
|
|
|
|
}
|
|
if ((pos-1==i-1)||(pos-1==i+1))
|
|
{myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
if (prob==1)
|
|
{ myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
|
|
myGLCD.print(name , xl, 10+tab);
|
|
myGLCD.printNumI(cardSize, xl+210, 10+tab);
|
|
// myGLCD.print( " ", xl, 20+tab);
|
|
|
|
tab=tab+21;
|
|
if (tab>450)
|
|
{tab=0;
|
|
myFile.close();
|
|
goto exit;
|
|
}
|
|
|
|
}
|
|
i++;
|
|
myFile.close();
|
|
}
|
|
|
|
exit:
|
|
prob=0;
|
|
//***************************************************************************************************************************
|
|
//myFile.dirName(name);
|
|
|
|
while(1)
|
|
{
|
|
|
|
|
|
sec=t.sec;
|
|
if ((sec==0) || (sec==20) || (sec==40))
|
|
{
|
|
// myGLCD.setBackColor(0,0,255);
|
|
// myGLCD.drawBitmap (769, 339, 30, 30, jar);
|
|
|
|
|
|
delay(800);
|
|
|
|
clc();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//*****************************************************************
|
|
if (myTouch.dataAvailable())
|
|
|
|
{
|
|
myTouch.read();
|
|
int x=myTouch.getX();
|
|
int y=myTouch.getY();
|
|
|
|
myGLCD.setColor(VGA_BLUE);
|
|
myGLCD.setBackColor(255,255,255);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print("x= " , 650, 32);
|
|
myGLCD.printNumI(x , 700, 32);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print("y= " ,650 , 72);
|
|
myGLCD.printNumI(y , 700, 72);
|
|
|
|
if ((x>=640) && (x<=799)) // Upper row
|
|
{
|
|
|
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
|
{
|
|
kalendarset();
|
|
sdlist();
|
|
}
|
|
|
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
|
{waitForIt1(639, 370, 799, 450);
|
|
sd.chdir("/");
|
|
menu();
|
|
}
|
|
|
|
|
|
}
|
|
//*********************
|
|
if ((y>=180) && (y<=220))
|
|
//(640, 180, 680, 220);//Read
|
|
{if((x>640)&&(x<680))
|
|
{waitForIt1(640, 180, 680, 220);
|
|
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,38,92);
|
|
myGLCD.print("READ" , 450, 50);
|
|
delay (500);
|
|
readmasrab();
|
|
myGLCD.print(" OK " , 450, 50);
|
|
delay (500);
|
|
myGLCD.print(" " , 450, 50);
|
|
|
|
goto list;
|
|
}
|
|
//(700, 180, 740, 220);//Save
|
|
if((x>700)&&(x<740))
|
|
{waitForIt1(700, 180, 740, 220);
|
|
// myFile.readDir(tempdom);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,38,92);
|
|
myGLCD.print("WAIT" , 450, 50);
|
|
savemasclok();
|
|
//savedata();
|
|
myGLCD.print(" OK " , 450, 50);
|
|
delay (500);
|
|
myGLCD.print(" " , 450, 50);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//*****************************
|
|
if ((x>=340) && (x<=370)) // Upper row
|
|
{
|
|
if ((y>=5) && (y<=35)) //+
|
|
{waitForIt1( 340, 5, 370, 35);
|
|
pos=pos-1;
|
|
|
|
// nstr=nstr-1;
|
|
//name1 = "/";
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
goto list1;
|
|
}
|
|
if ((y>=445) && (y<=475)) //-
|
|
{waitForIt1(340, 445, 370, 475);
|
|
pos=pos+1;
|
|
|
|
// nstr=nstr+1;
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
goto list1;
|
|
}
|
|
}
|
|
//bar
|
|
if ((x>=345) && (x<=365)) // BAR
|
|
{ int kolt=405*10/m;//h/m
|
|
pos=((y-36)*10+kolt)/kolt;
|
|
if (pos>m){pos=m;}
|
|
nstr=pos-20;
|
|
if (nstr<0){nstr=0;}
|
|
prob=1;
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
goto list1;
|
|
}
|
|
|
|
if ((x>=20) && (x<=320)) // File 45-470 20 file выбор файла тач пан
|
|
{ int kolt=425*10/20;//h/m
|
|
pos=((y-45)*10+kolt)/kolt;
|
|
pos=nstr+pos;
|
|
if (nstr<0){nstr=0;}
|
|
prob=1;
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
goto list1;
|
|
}
|
|
|
|
if ((x>=640) && (x<=680)) // Upper row
|
|
{
|
|
if ((y>=240) && (y<=280)) // 640, 240, 680, 280); //open
|
|
{waitForIt1(640, 240, 680, 280);
|
|
m=1;
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
// myFile.dirIndex(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
if( m==pos)
|
|
{myFile.getFilename(name1);
|
|
if( myFile.isDir()==1)
|
|
{myFile.close();
|
|
ndir=1;
|
|
goto opendir;
|
|
}
|
|
else{
|
|
readfile();}
|
|
}
|
|
m++;
|
|
myFile.close();
|
|
}
|
|
}
|
|
|
|
if ((y>=300) && (y<=340)) //( 640, 300, 680, 340); //undo
|
|
{waitForIt1(640, 300, 680, 340);
|
|
|
|
myGLCD.setColor(22,18,70);
|
|
|
|
myGLCD.fillRoundRect (380,145, 630, 475);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
|
|
|
}
|
|
|
|
}
|
|
//*******************************************************************************
|
|
if((x>700)&&(x<740))
|
|
{if ((y>=300) && (y<=340)) //DELETE
|
|
{waitForIt1(700, 300, 740, 340);
|
|
boolean ret=0;
|
|
m=1;
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
// myFile.dirIndex(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
if( m==pos)
|
|
{myFile.getFilename(name1);
|
|
if( myFile.isDir()==1)
|
|
{myFile.close();
|
|
ndir=1;
|
|
goto opendir;
|
|
}
|
|
}
|
|
m++;
|
|
myFile.close();
|
|
}
|
|
myGLCD.setFont(BigFont);
|
|
myGLCD.setColor(22,18,70);
|
|
//myGLCD.setColor (255,100,0);
|
|
myGLCD.setColor (255,50,50);
|
|
myGLCD.fillRoundRect (12*2,80*2, 179*2-20, 150*2); //WIND
|
|
myGLCD.setColor (255,255,255);
|
|
myGLCD.drawRoundRect (12*2, 80*2, 178*2-20, 150*2);//ramka
|
|
myGLCD.drawRoundRect ((12+1)*2, (80+1)*2, (178-1)*2-20, (150-1)*2);//ramka
|
|
myGLCD.setBackColor (22,18,70);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.fillRoundRect ( 28*2,123*2, (28+50)*2, (123+20)*2); //YES
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.drawRoundRect ( 28*2,123*2, (28+50)*2, (123+20)*2); //YES
|
|
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.fillRoundRect ( 100*2, 123*2, (100+50)*2, (123+20)*2); //NO
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.drawRoundRect ( 100*2, 123*2, (100+50)*2, (123+20)*2); //NO
|
|
|
|
myGLCD.setBackColor (255,255,255);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.print("YES", 41*2, 130*2);
|
|
myGLCD.print("NO", 116*2, 130*2);
|
|
//myGLCD.setBackColor (255,100,0);
|
|
myGLCD.setBackColor (255,50,50);
|
|
myGLCD.setColor (255,255,255);
|
|
myGLCD.print("WARNING DELETE FILE", 28, 88*2);
|
|
// myGLCD.print(" ", 15, 90+3+12+3);
|
|
myGLCD.print(name1, (12+52)*2, (85+3+12+3)*2);
|
|
do
|
|
{delay(100);
|
|
if (myTouch.dataAvailable())
|
|
{
|
|
myTouch.read();
|
|
int x=myTouch.getX();
|
|
int y=myTouch.getY();
|
|
|
|
//*************YES******************
|
|
if ((y>=245) && (y<=283))
|
|
{
|
|
if ((x>=56) && (x<=153))
|
|
{ waitForIt1(56, 246, 156, 286);
|
|
sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
myFile.open(name1, O_RDWR | O_CREAT | O_AT_END);
|
|
myFile.remove();
|
|
ret=1;
|
|
}
|
|
//***********NO****************************** myGLCD.drawRoundRect ( 100*2, 123*2, (100+50)*2, (123+20)*2); //NO
|
|
|
|
if ((x>=220) && (x<=320))
|
|
{ waitForIt1(200, 246, 300, 286);
|
|
ret=1;
|
|
}
|
|
}
|
|
|
|
}
|
|
}while(ret<1);
|
|
myFile.close();
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.fillRoundRect (12,7, 334, 472);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
// myGLCD.drawRoundRect (10, 5, 350, 475);
|
|
nstr=0;
|
|
goto list;
|
|
}
|
|
}
|
|
//******************************************************************************************************************
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
opendir:
|
|
pos=1;
|
|
nstr=0;
|
|
xl=30;
|
|
// открываем папки ********************************************************************************************************************
|
|
|
|
myGLCD.setFont(BigFont);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.fillRoundRect (25, 45, 340, 473); //очистка каталога
|
|
myGLCD.fillRoundRect (382,6, 618, 139);//очистка терминала
|
|
myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(255,114,0);
|
|
|
|
tab=22;
|
|
if (ndir==1)
|
|
{myGLCD.print(" ", xl+10, 10+tab);
|
|
myGLCD.print("ROOT", xl+10, 10+tab);
|
|
myGLCD.print("/", xl+10+64, 10+tab);
|
|
myGLCD.print(name1, xl+10+64+16, 10+tab);
|
|
//terminal
|
|
myGLCD.print("DIR: ROOT", 400, 10);
|
|
// myGLCD.print(" ", 420, 30);
|
|
// myGLCD.print(" ", 440, 50);
|
|
myGLCD.setBackColor(VGA_WHITE);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.print(name1 , 420, 30);
|
|
}
|
|
|
|
if (ndir==2)
|
|
{ myGLCD.print(" ", xl+10, 10+tab);
|
|
myGLCD.print("ROOT", xl+10, 10+tab);
|
|
myGLCD.print("/", xl+10+64, 10+tab);
|
|
myGLCD.print(name1, xl+10+64+16, 10+tab);
|
|
myGLCD.print("/", xl+10+64+16+48, 10+tab);
|
|
myGLCD.print(name2, xl+10+64+16+64, 10+tab);
|
|
//terminal
|
|
myGLCD.print("DIR: ROOT", 400, 10);
|
|
//myGLCD.print(" ", 420, 30);
|
|
myGLCD.print(name1 , 420, 30);
|
|
// myGLCD.print(" ", 440, 50);
|
|
myGLCD.setBackColor(VGA_WHITE);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.print(name2 , 440, 50);
|
|
|
|
}
|
|
|
|
if (ndir==3)
|
|
{ myGLCD.print(" ", xl+10, 10+tab);
|
|
myGLCD.print("ROOT", xl+10, 10+tab);
|
|
myGLCD.print("/", xl+10+64, 10+tab);
|
|
myGLCD.print(name1, xl+10+64+16, 10+tab);
|
|
myGLCD.print("/", xl+10+64+16+48, 10+tab);
|
|
myGLCD.print(name2, xl+10+64+16+64, 10+tab);
|
|
myGLCD.print("/", xl+10+64+16+64+48, 10+tab);
|
|
myGLCD.print(name3, xl+10+64+16+64+48+16, 10+tab);
|
|
//terminal
|
|
myGLCD.print("DIR: ROOT", 400, 10);
|
|
// myGLCD.print(" ", 420, 30);
|
|
myGLCD.print(name1 , 420, 30);
|
|
// myGLCD.print(" ", 440, 50);
|
|
myGLCD.print(name2 , 440, 50);
|
|
myGLCD.setBackColor(VGA_WHITE);
|
|
myGLCD.setColor(22,18,70);
|
|
// myGLCD.print(" ", 460, 70);
|
|
myGLCD.print(name3 , 460, 70);
|
|
|
|
}
|
|
tab=tab+21;
|
|
|
|
myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(255,255,255);
|
|
|
|
|
|
|
|
if (ndir==1)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
}
|
|
if (ndir==2)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
}
|
|
if (ndir==3)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name3);//установка раб директории
|
|
delay (50);
|
|
}
|
|
|
|
m=0;//колво файлов в директории
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
// myFile.dirIndex(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
// siz [n]=cardSize;
|
|
m++;
|
|
myFile.close();
|
|
}
|
|
pos=1;
|
|
nstr=0;
|
|
opendir1:
|
|
if (pos < 1)
|
|
{pos=1;
|
|
}
|
|
|
|
if (pos > m)
|
|
{pos=m;
|
|
}
|
|
barlist(100*pos/m,20);//barint m-колво файлов в папке
|
|
|
|
|
|
|
|
if (pos > nstr+20)
|
|
{nstr=nstr+1;
|
|
prob=1;//печать пробелов для удаления остатков файлов при листинге
|
|
}
|
|
|
|
if (pos <= nstr)
|
|
{nstr=nstr-1;
|
|
if (nstr<0){nstr=0;}
|
|
prob=1;
|
|
}
|
|
|
|
tab=0;
|
|
tab=tab+43;
|
|
myGLCD.setFont(BigFont);
|
|
|
|
|
|
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setBackColor(22,18,70);
|
|
|
|
myGLCD.print("Files - ", 400, 115);//колво файлов в папке
|
|
myGLCD.printNumI(m, 528, 115);//колво файлов в папке
|
|
|
|
//myGLCD.printNumI(pos, 550, 125);// тех
|
|
//myGLCD.printNumI(nstr, 550, 145);
|
|
//myGLCD.printNumI(ndir, 550, 100);
|
|
|
|
if (ndir==1)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
}
|
|
if (ndir==2)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
}
|
|
if (ndir==3)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name3);//установка раб директории
|
|
delay (50);
|
|
}
|
|
|
|
i=0;//
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
myFile.getFilename(name);
|
|
|
|
cardSize=myFile.fileSize();
|
|
// siz [n]=cardSize;
|
|
|
|
if (i>=nstr)// движение курсора
|
|
{
|
|
if( myFile.isDir()==1)
|
|
{
|
|
// np[q]=n;//номер DIR по счету
|
|
// q=q+1;//колво DIR
|
|
if (pos-1==i)//позиция курсора
|
|
{ myGLCD.setColor(22,18,70);
|
|
myGLCD.setBackColor(VGA_RED);
|
|
myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
else
|
|
{myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(VGA_RED);
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
if (pos-1==i) //позиция курсора
|
|
{ myGLCD.setColor(22,18,70);
|
|
myGLCD.setBackColor(VGA_WHITE);
|
|
myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
else
|
|
{myGLCD.setBackColor(22,18,70);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
|
|
}
|
|
|
|
}
|
|
if ((pos-1==i-1)||(pos-1==i+1))
|
|
{myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
if (prob==1)
|
|
{ myGLCD.print( " ", xl, 10+tab);
|
|
}
|
|
|
|
myGLCD.print(name , xl, 10+tab);
|
|
|
|
myGLCD.printNumI(cardSize, xl+210, 10+tab);
|
|
// myGLCD.print( " ", xl, 20+tab);
|
|
|
|
tab=tab+21;
|
|
if (tab>450)
|
|
{tab=0;
|
|
myFile.close();
|
|
goto exit1;
|
|
}
|
|
|
|
}
|
|
i++;
|
|
myFile.close();
|
|
}
|
|
|
|
exit1:
|
|
prob=0;
|
|
|
|
|
|
|
|
|
|
while(1)
|
|
{
|
|
|
|
|
|
sec=t.sec;
|
|
if ((sec==0) || (sec==20) || (sec==40))
|
|
{
|
|
// myGLCD.setBackColor(0,0,255);
|
|
// myGLCD.drawBitmap (769, 339, 30, 30, jar);
|
|
|
|
|
|
delay(800);
|
|
|
|
clc();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//*****************************************************************
|
|
if (myTouch.dataAvailable())
|
|
|
|
{
|
|
myTouch.read();
|
|
int x=myTouch.getX();
|
|
int y=myTouch.getY();
|
|
|
|
myGLCD.setColor(VGA_BLUE);
|
|
myGLCD.setBackColor(255,255,255);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print("x= " , 650, 32);
|
|
myGLCD.printNumI(x , 700, 32);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print("y= " ,650 , 72);
|
|
myGLCD.printNumI(y , 700, 72);
|
|
|
|
//*********************
|
|
if ((y>=180) && (y<=220))
|
|
//(640, 180, 680, 220);//Read
|
|
{if((x>640)&&(x<680))
|
|
{waitForIt1(640, 180, 680, 220);
|
|
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,38,92);
|
|
myGLCD.print("READ" , 450, 50);
|
|
delay (500);
|
|
readmasrab();
|
|
myGLCD.print(" OK " , 450, 50);
|
|
delay (500);
|
|
myGLCD.print(" " , 450, 50);
|
|
|
|
goto list;
|
|
}
|
|
//(700, 180, 740, 220);//Save
|
|
if((x>700)&&(x<740))
|
|
{waitForIt1(700, 180, 740, 220);
|
|
// myFile.readDir(tempdom);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,38,92);
|
|
myGLCD.print("WAIT" , 450, 50);
|
|
savemasclok();
|
|
//savedata();
|
|
myGLCD.print(" OK " , 450, 50);
|
|
delay (500);
|
|
myGLCD.print(" " , 450, 50);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//*****************************
|
|
|
|
if ((x>=640) && (x<=799)) // Upper row
|
|
{
|
|
|
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
|
{
|
|
kalendarset();
|
|
sdlist();
|
|
}
|
|
|
|
if ((y>=370) && (y<=450)) //Clok
|
|
{waitForIt1(639, 370, 799, 450);
|
|
sd.chdir("/");
|
|
menu();
|
|
}
|
|
|
|
|
|
|
|
}
|
|
//**************
|
|
|
|
|
|
|
|
//************************************
|
|
|
|
if ((x>=340) && (x<=370)) // Upper row
|
|
{
|
|
if ((y>=5) && (y<=35)) //+
|
|
{waitForIt1( 340, 5, 370, 35);
|
|
pos=pos-1;
|
|
|
|
// nstr=nstr-1;
|
|
//name1 = "/";
|
|
// sd.chdir(name1);//установка раб директории
|
|
// delay(100);
|
|
goto opendir1;
|
|
}
|
|
if ((y>=445) && (y<=475)) //-
|
|
{waitForIt1(340, 445, 370, 475);
|
|
pos=pos+1;
|
|
|
|
// nstr=nstr+1;
|
|
// sd.chdir(name1);//установка раб директории
|
|
// delay(100);
|
|
goto opendir1;
|
|
}
|
|
}
|
|
//bar
|
|
if ((x>=345) && (x<=365)) // BAR
|
|
{ int kolt=405*10/m;//h/m
|
|
pos=((y-36)*10+kolt)/kolt;
|
|
if (pos>m){pos=m;}
|
|
nstr=pos-20;
|
|
if (nstr<0){nstr=0;}
|
|
prob=1;
|
|
|
|
// sd.chdir(name1);//установка раб директории
|
|
// delay(100);
|
|
goto opendir1;
|
|
}
|
|
|
|
if ((x>=20) && (x<=320)) // File 45-470 20 file
|
|
{ int kolt=425*10/20;//h/m
|
|
pos=((y-45)*10+kolt)/kolt;
|
|
pos=nstr+pos;
|
|
if (nstr<0){nstr=0;}
|
|
prob=1;
|
|
//sd.chdir(name1);//установка раб директории
|
|
// delay(100);
|
|
goto opendir1;
|
|
}
|
|
//************************************
|
|
//*******************************************************************************
|
|
if((x>700)&&(x<740))
|
|
{if ((y>=300) && (y<=340)) //DELETE
|
|
{waitForIt1(700, 300, 740, 340);
|
|
boolean ret=0;
|
|
m=1;
|
|
if (ndir==1)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (100);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (100);
|
|
}
|
|
if (ndir==2)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
}
|
|
if (ndir==3)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name3);//установка раб директории
|
|
delay (50);
|
|
}
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
// myFile.dirIndex(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
if( m==pos)
|
|
{//ndir=ndir+1;
|
|
//if (ndir==3){myFile.getFilename(name3);}
|
|
// if (ndir==2) {myFile.getFilename(name2);}
|
|
// if (ndir==1){myFile.getFilename(name1);}
|
|
if( myFile.isDir()==1)
|
|
{myFile.close();
|
|
|
|
goto opendir;
|
|
}
|
|
else{
|
|
if (ndir==3){myFile.getFilename(name4);}
|
|
if (ndir==2) {myFile.getFilename(name4);}
|
|
if (ndir==1){myFile.getFilename(name4);}
|
|
}
|
|
}
|
|
m++;
|
|
myFile.close();
|
|
}
|
|
|
|
myGLCD.setFont(BigFont);
|
|
myGLCD.setColor(22,18,70);
|
|
//myGLCD.setColor (255,100,0);
|
|
myGLCD.setColor (255,50,50);
|
|
myGLCD.fillRoundRect (12*2,80*2, 179*2-20, 150*2); //WIND
|
|
myGLCD.setColor (255,255,255);
|
|
myGLCD.drawRoundRect (12*2, 80*2, 178*2-20, 150*2);//ramka
|
|
myGLCD.drawRoundRect ((12+1)*2, (80+1)*2, (178-1)*2-20, (150-1)*2);//ramka
|
|
myGLCD.setBackColor (22,18,70);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.fillRoundRect ( 28*2,123*2, (28+50)*2, (123+20)*2); //YES
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.drawRoundRect ( 28*2,123*2, (28+50)*2, (123+20)*2); //YES
|
|
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.fillRoundRect ( 100*2, 123*2, (100+50)*2, (123+20)*2); //NO
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.drawRoundRect ( 100*2, 123*2, (100+50)*2, (123+20)*2); //NO
|
|
|
|
myGLCD.setBackColor (255,255,255);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.print("YES", 41*2, 130*2);
|
|
myGLCD.print("NO", 116*2, 130*2);
|
|
//myGLCD.setBackColor (255,100,0);
|
|
myGLCD.setBackColor (255,50,50);
|
|
myGLCD.setColor (255,255,255);
|
|
myGLCD.print("WARNING DELETE FILE", 28, 88*2);
|
|
// myGLCD.print(" ", 15, 90+3+12+3);
|
|
myGLCD.print(name4, (12+52)*2, (85+3+12+3)*2);
|
|
do
|
|
{delay(100);
|
|
if (myTouch.dataAvailable())
|
|
{
|
|
myTouch.read();
|
|
int x=myTouch.getX();
|
|
int y=myTouch.getY();
|
|
|
|
//*************YES******************
|
|
if ((y>=245) && (y<=283))
|
|
{
|
|
if ((x>=56) && (x<=153))
|
|
{ waitForIt1(56, 246, 156, 286);
|
|
//sd.chdir("/");//установка раб директории
|
|
delay(100);
|
|
myFile.open(name4, O_RDWR | O_CREAT | O_AT_END);
|
|
myFile.remove();
|
|
ret=1;
|
|
}
|
|
//***********NO****************************** myGLCD.drawRoundRect ( 100*2, 123*2, (100+50)*2, (123+20)*2); //NO
|
|
|
|
if ((x>=220) && (x<=320))
|
|
{ waitForIt1(200, 246, 300, 286);
|
|
ret=1;
|
|
}
|
|
}
|
|
|
|
}
|
|
}while(ret<1);
|
|
myFile.close();
|
|
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.fillRoundRect (12,7, 334, 472);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
// myGLCD.drawRoundRect (10, 5, 350, 475);
|
|
// nstr=0;
|
|
goto opendir;
|
|
}
|
|
}
|
|
//******************************************************************************************************************
|
|
if ((x>=640) && (x<=680)) // open
|
|
{
|
|
if ((y>=240) && (y<=280)) // 640, 240, 680, 280); //open
|
|
{waitForIt1(640, 240, 680, 280);
|
|
m=1;
|
|
if (ndir==1)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (100);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (100);
|
|
}
|
|
if (ndir==2)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
}
|
|
if (ndir==3)
|
|
{ sd.chdir("/");//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name1);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name2);//установка раб директории
|
|
delay (50);
|
|
sd.chdir(name3);//установка раб директории
|
|
delay (50);
|
|
}
|
|
while ( myFile.openNext(sd.vwd(), O_READ)) // open next file in root. The volume working directory, vwd, is root
|
|
{
|
|
// myFile.dirIndex(name);
|
|
// myStrings[n]=name;
|
|
cardSize=myFile.fileSize();
|
|
if( m==pos)
|
|
{ndir=ndir+1;
|
|
if (ndir==3){myFile.getFilename(name3);}
|
|
if (ndir==2) {myFile.getFilename(name2);}
|
|
if (ndir==1){myFile.getFilename(name1);}
|
|
if( myFile.isDir()==1)
|
|
{myFile.close();
|
|
|
|
goto opendir;
|
|
}
|
|
else{
|
|
readfile();}
|
|
}
|
|
m++;
|
|
myFile.close();
|
|
}
|
|
}
|
|
//****************************************************
|
|
if ((y>=300) && (y<=340)) //( 640, 300, 680, 340); //undo
|
|
{waitForIt1(640, 300, 680, 340);
|
|
myGLCD.setColor(22,18,70);
|
|
myGLCD.fillRoundRect (380,145, 630, 475);
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
|
ndir=ndir-1;
|
|
if (ndir==0) {goto list;}
|
|
goto opendir;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//***********************************BAR********************
|
|
|
|
void barlist(int posbar,int hbar)//(int x,int y,int pos,int l,int h)//l-длинна шкалы pos-позиция метки положения h-высота
|
|
{//barlist(posbar,30); int pos=(kol fail/50); pos=(ypos+y)*10*m/(h*10)
|
|
int y=36;
|
|
int x=350;
|
|
int l=10;
|
|
int h=405;
|
|
//int hbar=30;
|
|
myGLCD.setBackColor(0,0,255);
|
|
myGLCD.setColor(100,100,255);
|
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//рисуем серый пр-к
|
|
myGLCD.setColor(255, 255, 255);
|
|
myGLCD.drawRoundRect(x, y, l+x, h+y);//с белой обводкой
|
|
|
|
myGLCD.fillRoundRect(x, y+10-hbar/2+(posbar*(h-20)/100), l+x, y+10+hbar/2+(posbar*(h-20)/100));//уровень
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//********************************************************************************************************************************
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|