NewMenu
parent
029488b1e2
commit
19cbe5e6e2
|
@ -5,3 +5,4 @@
|
||||||
|
|
||||||
void keysHandler(void);
|
void keysHandler(void);
|
||||||
void keysHandlerCallibration(void);
|
void keysHandlerCallibration(void);
|
||||||
|
|
||||||
|
|
|
@ -56,13 +56,7 @@ typedef enum
|
||||||
|
|
||||||
typedef enum //перечисление для основного меню
|
typedef enum //перечисление для основного меню
|
||||||
{
|
{
|
||||||
KPR0 ,
|
KPR ,
|
||||||
KPR1 ,
|
|
||||||
KPR2 ,
|
|
||||||
KPR3 ,
|
|
||||||
KPR4 ,
|
|
||||||
KPR5 ,
|
|
||||||
KPRSAVING,
|
|
||||||
UNITSELECT,
|
UNITSELECT,
|
||||||
OUT ,
|
OUT ,
|
||||||
FVCH ,
|
FVCH ,
|
||||||
|
@ -70,7 +64,16 @@ typedef enum //
|
||||||
GROUND,
|
GROUND,
|
||||||
}mainMenuState;
|
}mainMenuState;
|
||||||
|
|
||||||
|
typedef enum //ïåðå÷èñëåíèå äëÿ îñíîâíîãî ìåíþ
|
||||||
|
{
|
||||||
|
KPR0 ,
|
||||||
|
KPR1 ,
|
||||||
|
KPR2 ,
|
||||||
|
KPR3 ,
|
||||||
|
KPR4 ,
|
||||||
|
KPR5 ,
|
||||||
|
KPRSAVING
|
||||||
|
}kprEditState;
|
||||||
|
|
||||||
typedef enum //перечисление для сервисного меню
|
typedef enum //перечисление для сервисного меню
|
||||||
{
|
{
|
||||||
|
@ -83,7 +86,8 @@ typedef enum //
|
||||||
}callibrationMenuState;
|
}callibrationMenuState;
|
||||||
|
|
||||||
|
|
||||||
typedef enum{Accel = 0,
|
typedef enum{
|
||||||
|
Accel = 0,
|
||||||
Velocity,
|
Velocity,
|
||||||
Pascal,
|
Pascal,
|
||||||
k_Pascal,
|
k_Pascal,
|
||||||
|
|
|
@ -93,6 +93,8 @@ typedef struct
|
||||||
float SENS; // 32,33,34,35 7502 //дублирование (коэфициэнт преобразования)
|
float SENS; // 32,33,34,35 7502 //дублирование (коэфициэнт преобразования)
|
||||||
float ACCEL; // 32,33,34,35 7503 //Legacy a141
|
float ACCEL; // 32,33,34,35 7503 //Legacy a141
|
||||||
|
|
||||||
|
uint16_t MENUPOINTER;
|
||||||
|
|
||||||
} UserData_TypeDef; // ********LENGTH = ** bytes***********
|
} UserData_TypeDef; // ********LENGTH = ** bytes***********
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ volatile bool rewrite = false;
|
||||||
memcpy((void *) ¤tData, (void *) USERPAGEPAR, lenpar);
|
memcpy((void *) ¤tData, (void *) USERPAGEPAR, lenpar);
|
||||||
|
|
||||||
//pardata.OWN = 0xffff;//todo //ñêîðððåêòèðîâàòü áèòûå çíà÷åíèÿ
|
//pardata.OWN = 0xffff;//todo //ñêîðððåêòèðîâàòü áèòûå çíà÷åíèÿ
|
||||||
if(currentData.OWN == 0xffff) //если первая запись и везде пусто
|
if(currentData.OWN == 0xffff||currentData.MENUPOINTER == 0xffff) //åñëè ïåðâàÿ çàïèñü è âåçäå ïóñòî
|
||||||
{
|
{
|
||||||
currentData.OWN = 1; //ñòàâèì ïàðàìåòðû ïî óìîë÷àíèþ
|
currentData.OWN = 1; //ñòàâèì ïàðàìåòðû ïî óìîë÷àíèþ
|
||||||
currentData.BAUD = 5;
|
currentData.BAUD = 5;
|
||||||
|
@ -143,6 +143,8 @@ volatile bool rewrite = false;
|
||||||
currentData.IK4 = 0;
|
currentData.IK4 = 0;
|
||||||
currentData.IK5 = 0;
|
currentData.IK5 = 0;
|
||||||
currentData.IPZ =0;
|
currentData.IPZ =0;
|
||||||
|
currentData.MENUPOINTER=0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
currentData.KCOND = 1.0f;
|
currentData.KCOND = 1.0f;
|
||||||
|
|
|
@ -6,6 +6,10 @@
|
||||||
|
|
||||||
extern UserData_TypeDef currentData;
|
extern UserData_TypeDef currentData;
|
||||||
extern bool menuItemIsEditable;
|
extern bool menuItemIsEditable;
|
||||||
|
|
||||||
|
extern bool kprEditable;
|
||||||
|
extern int kprPointer;
|
||||||
|
|
||||||
extern int menuPointer;
|
extern int menuPointer;
|
||||||
extern uint16_t dvd;
|
extern uint16_t dvd;
|
||||||
extern int ignoreOff_flag;
|
extern int ignoreOff_flag;
|
||||||
|
@ -22,41 +26,36 @@ void keysHandler(void){
|
||||||
KEY_STATE = 0;
|
KEY_STATE = 0;
|
||||||
|
|
||||||
|
|
||||||
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_RESET) ignoreOff_flag=0; //êàê òîëüêî êíîïêó âêëþ÷åíèÿ îòïóñòèëè, ïåðåñòà¸ì å¸ èãíîðèðîâàòü
|
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_RESET)ignoreOff_flag=0; //êàê òîëüêî êíîïêó âêëþ÷åíèÿ îòïóñòèëè, ïåðåñòà¸ì å¸ èãíîðèðîâàòü
|
||||||
|
|
||||||
if((HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET)&&(ignoreOff_flag==0)){
|
|
||||||
|
if((HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET)&&(ignoreOff_flag==0)){ // åñëè êíîïêà íàæàòà âòîðîé ðàç òî âûêëþ÷àåìñÿ
|
||||||
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_SET);
|
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_SET);
|
||||||
} //
|
} //
|
||||||
|
|
||||||
if(key==OK_BTN_Pin){ //Ďî íŕćŕňčţ ÎĘ
|
if(key==OK_BTN_Pin){ //Ďî íŕćŕňčţ ÎĘ
|
||||||
|
|
||||||
|
if(menuPointer==KPR&&kprEditable==0){ //ââàëèâàåìñÿ â ðåäàêòèðîâàíèå KPR
|
||||||
|
kprEditable=1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(menuPointer==KPR&&kprEditable==1){ //ïåðåõîäèì ê ñëóäùóþùåé öèôðå KPR
|
||||||
|
kprPointer++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(menuItemIsEditable==0){
|
if(menuItemIsEditable==0){
|
||||||
menuItemIsEditable=1;
|
menuItemIsEditable=1;
|
||||||
return; //ââŕëčâŕĺěń˙ â đĺäŕęňčđîâŕíčĺ
|
return; //ââŕëčâŕĺěń˙ â đĺäŕęňčđîâŕíčĺ
|
||||||
}else{menuItemIsEditable=0;
|
}else{menuItemIsEditable=0;
|
||||||
|
wrPar();
|
||||||
return;} // âűâŕëčâŕĺěń˙ čç íĺăî
|
return;} // âűâŕëčâŕĺěń˙ čç íĺăî
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(!menuItemIsEditable){
|
|
||||||
|
|
||||||
if(key==UP_BTN_Pin){ //Ïî íàæàòèþ ÎÊ
|
|
||||||
if(menuPointer==KPR0){menuPointer=GROUND;} //todo ñäåëàé ñîõðàíåíèå //Åñëè êðàéíèé ïóíêò ìåíþ òî âîçâðàùàåìñÿ
|
|
||||||
else menuPointer--; //èíà÷å ñëåäóþùèé ïóíêò
|
|
||||||
}
|
|
||||||
|
|
||||||
if(key==DN_BTN_Pin){ //Ïî íàæàòèþ ÎÊ
|
|
||||||
if(menuPointer==GROUND){menuPointer=KPR0;} //todo ñäåëàé ñîõðàíåíèå //Åñëè êðàéíèé ïóíêò ìåíþ òî âîçâðàùàåìñÿ
|
|
||||||
else menuPointer++; //èíà÷å ñëåäóþùèé ïóíêò
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(kprEditable){
|
||||||
if(menuItemIsEditable){
|
switch (kprPointer) {
|
||||||
|
|
||||||
switch (menuPointer){
|
|
||||||
|
|
||||||
case KPR0:
|
case KPR0:
|
||||||
if(key==UP_BTN_Pin) {
|
if(key==UP_BTN_Pin) {
|
||||||
if((currentData.IK0<9)&&(currentData.IK0>=0)) currentData.IK0++;
|
if((currentData.IK0<9)&&(currentData.IK0>=0)) currentData.IK0++;
|
||||||
|
@ -112,8 +111,6 @@ if(menuItemIsEditable){
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case KPR4:
|
case KPR4:
|
||||||
if((key==UP_BTN_Pin)) {
|
if((key==UP_BTN_Pin)) {
|
||||||
if((currentData.IK4<9)&&(currentData.IK4>=0)) currentData.IK4++;
|
if((currentData.IK4<9)&&(currentData.IK4>=0)) currentData.IK4++;
|
||||||
|
@ -140,11 +137,8 @@ if(menuItemIsEditable){
|
||||||
else if ((currentData.IK5<=9)&&(currentData.IK5>0)) currentData.IK5--;
|
else if ((currentData.IK5<=9)&&(currentData.IK5>0)) currentData.IK5--;
|
||||||
else if(currentData.IK5='~') currentData.IK5=9;
|
else if(currentData.IK5='~') currentData.IK5=9;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
case KPRSAVING:
|
|
||||||
kpr_temp[0]=currentData.IK0;
|
kpr_temp[0]=currentData.IK0;
|
||||||
kpr_temp[1]=currentData.IK1;
|
kpr_temp[1]=currentData.IK1;
|
||||||
kpr_temp[2]=currentData.IK2;
|
kpr_temp[2]=currentData.IK2;
|
||||||
|
@ -159,19 +153,46 @@ if(menuItemIsEditable){
|
||||||
currentData.IK3=kpr_temp[3];
|
currentData.IK3=kpr_temp[3];
|
||||||
currentData.IK4=kpr_temp[4];
|
currentData.IK4=kpr_temp[4];
|
||||||
currentData.IK5=kpr_temp[5];
|
currentData.IK5=kpr_temp[5];
|
||||||
menuPointer=KPR0; // ÏÅÐÅÑÊÎ×ÈÒ ÑÀÌ
|
kprPointer=KPR0; // ÏÅÐÅÑÊÎ×ÈÒ ÑÀÌ
|
||||||
//ďčřĺě ÷ňî çíŕ÷ĺíč˙ íĺ âĺđíű
|
//ďčřĺě ÷ňî çíŕ÷ĺíč˙ íĺ âĺđíű
|
||||||
//đčńóĺě íóëč
|
//đčńóĺě íóëč
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{sh_applysetting(¤tData);
|
{sh_applysetting(¤tData);
|
||||||
menuPointer++;}
|
wrPar();
|
||||||
|
kprEditable=0;
|
||||||
|
kprPointer=0;}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
return; //åñëè ïîïàëè â ýòîò èô íå íóæíî îòðàáàòûâàòü äàëüíåéøèå êíîïêè
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(!menuItemIsEditable){
|
||||||
|
|
||||||
|
if(key==UP_BTN_Pin){ //Ïî íàæàòèþ ÎÊ
|
||||||
|
if(menuPointer==KPR){menuPointer=GROUND;} //todo ñäåëàé ñîõðàíåíèå //Åñëè êðàéíèé ïóíêò ìåíþ òî âîçâðàùàåìñÿ
|
||||||
|
else menuPointer--; //èíà÷å ñëåäóþùèé ïóíêò
|
||||||
|
}
|
||||||
|
|
||||||
|
if(key==DN_BTN_Pin){ //Ïî íàæàòèþ ÎÊ
|
||||||
|
if(menuPointer==GROUND){menuPointer=KPR;} //todo ñäåëàé ñîõðàíåíèå //Åñëè êðàéíèé ïóíêò ìåíþ òî âîçâðàùàåìñÿ
|
||||||
|
else menuPointer++; //èíà÷å ñëåäóþùèé ïóíêò
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(menuItemIsEditable){
|
||||||
|
|
||||||
|
switch (menuPointer){
|
||||||
case UNITSELECT:
|
case UNITSELECT:
|
||||||
if((key==UP_BTN_Pin)&&(currentData.UNIT<mV)) {currentData.UNIT++; sh_applysetting(¤tData);}
|
if((key==UP_BTN_Pin)&&(currentData.UNIT<mV)){currentData.UNIT++; sh_applysetting(¤tData);}
|
||||||
|
if((key==UP_BTN_Pin)&&(currentData.UNIT==mV)) {currentData.UNIT=Accel; sh_applysetting(¤tData);}
|
||||||
|
|
||||||
if((key==DN_BTN_Pin)&&(currentData.UNIT>Accel)) {currentData.UNIT--; sh_applysetting(¤tData);}
|
if((key==DN_BTN_Pin)&&(currentData.UNIT>Accel)) {currentData.UNIT--; sh_applysetting(¤tData);}
|
||||||
|
if((key==DN_BTN_Pin)&&(currentData.UNIT==Accel)) {currentData.UNIT=mV; sh_applysetting(¤tData);}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OUT:
|
case OUT:
|
||||||
|
@ -193,6 +214,7 @@ if(menuItemIsEditable){
|
||||||
if((key==UP_BTN_Pin)) {currentData.IPZ=1; sh_applysetting(¤tData);}
|
if((key==UP_BTN_Pin)) {currentData.IPZ=1; sh_applysetting(¤tData);}
|
||||||
if((key==DN_BTN_Pin)) {currentData.IPZ=0; sh_applysetting(¤tData);}
|
if((key==DN_BTN_Pin)) {currentData.IPZ=0; sh_applysetting(¤tData);}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
case SAVING:
|
case SAVING:
|
||||||
wrPar();
|
wrPar();
|
||||||
|
@ -214,9 +236,11 @@ void keysHandlerCallibration(void){
|
||||||
KEY_STATE = 0;
|
KEY_STATE = 0;
|
||||||
|
|
||||||
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_RESET) ignoreOff_flag=0; //ęŕę ňîëüęî ęíîďęó âęëţ÷ĺíč˙ îňďóńňčëč, ďĺđĺńňŕ¸ě ĺ¸ čăíîđčđîâŕňü
|
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_RESET) ignoreOff_flag=0; //ęŕę ňîëüęî ęíîďęó âęëţ÷ĺíč˙ îňďóńňčëč, ďĺđĺńňŕ¸ě ĺ¸ čăíîđčđîâŕňü
|
||||||
if((HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET)&&(ignoreOff_flag==0))
|
|
||||||
{ wrCor();
|
if((HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET)&&(ignoreOff_flag==0)){
|
||||||
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_SET);} //
|
wrCor();
|
||||||
|
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_SET);
|
||||||
|
} //
|
||||||
|
|
||||||
if(key==OK_BTN_Pin){ //Ďî íŕćŕňčţ ÎĘ
|
if(key==OK_BTN_Pin){ //Ďî íŕćŕňčţ ÎĘ
|
||||||
//if(menuPointer==GROUND){menuPointer=WORK;} //todo ńäĺëŕé ńîőđŕíĺíčĺ //Ĺńëč ęđŕéíčé ďóíęň ěĺíţ ňî âîçâđŕůŕĺěń˙ ę đŕáîňĺ
|
//if(menuPointer==GROUND){menuPointer=WORK;} //todo ńäĺëŕé ńîőđŕíĺíčĺ //Ĺńëč ęđŕéíčé ďóíęň ěĺíţ ňî âîçâđŕůŕĺěń˙ ę đŕáîňĺ
|
||||||
|
|
|
@ -83,8 +83,6 @@ void check_reload(void); // todo
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HAL_Init();
|
HAL_Init();
|
||||||
SystemClock_Config();
|
SystemClock_Config();
|
||||||
MX_FLASH_Init();
|
MX_FLASH_Init();
|
||||||
|
@ -102,8 +100,8 @@ int main(void)
|
||||||
|
|
||||||
|
|
||||||
/////Äåëåì ñòàðò ýêðàíó
|
/////Äåëåì ñòàðò ýêðàíó
|
||||||
ssd1306_Init();
|
|
||||||
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_RESET); //ôèêñèðóåì ïèòàíèå ïðèáîðà
|
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin , GPIO_PIN_RESET); //ôèêñèðóåì ïèòàíèå ïðèáîðà
|
||||||
|
ssd1306_Init();
|
||||||
if(HAL_GPIO_ReadPin(OK_BTN_GPIO_Port, OK_BTN_Pin) == GPIO_PIN_RESET){workMode=CALLIBRATION;} // ïðè óäåðæèâàíèè êíîïêè ïåðåêëþ÷àåìñÿ â çàâîäñêîé ðåæèì ðàáîòû
|
if(HAL_GPIO_ReadPin(OK_BTN_GPIO_Port, OK_BTN_Pin) == GPIO_PIN_RESET){workMode=CALLIBRATION;} // ïðè óäåðæèâàíèè êíîïêè ïåðåêëþ÷àåìñÿ â çàâîäñêîé ðåæèì ðàáîòû
|
||||||
DrawLogo();
|
DrawLogo();
|
||||||
ssd1306_Fill(Black);
|
ssd1306_Fill(Black);
|
||||||
|
@ -112,6 +110,7 @@ int main(void)
|
||||||
|
|
||||||
|
|
||||||
if(workMode==NORMAL){screenDraw(); // todo: Óáðàòü êîñòûëü!!! Ñ÷èòàåì â ýêðàíå çíà÷åíèå íà DAC.
|
if(workMode==NORMAL){screenDraw(); // todo: Óáðàòü êîñòûëü!!! Ñ÷èòàåì â ýêðàíå çíà÷åíèå íà DAC.
|
||||||
|
menuPointer=currentData.MENUPOINTER; //÷èòàåì òåêóùèé ïóíêò èç ïàìÿòè
|
||||||
sh_applysetting(¤tData); }// ïðèìåíÿåì íàñòðîéêè èç ñòóêòóðû ñ ÖÀÏ íà âñþ
|
sh_applysetting(¤tData); }// ïðèìåíÿåì íàñòðîéêè èç ñòóêòóðû ñ ÖÀÏ íà âñþ
|
||||||
|
|
||||||
while (workMode==NORMAL){
|
while (workMode==NORMAL){
|
||||||
|
@ -126,6 +125,7 @@ int main(void)
|
||||||
|
|
||||||
check_reload();
|
check_reload();
|
||||||
keysHandler();
|
keysHandler();
|
||||||
|
currentData.MENUPOINTER=menuPointer;
|
||||||
|
|
||||||
if(RefreshScreen){
|
if(RefreshScreen){
|
||||||
screenDraw();
|
screenDraw();
|
||||||
|
|
|
@ -265,10 +265,15 @@ void PulseDrawSome(int16_t some, uint8_t x, uint8_t y, uint8_t mode){ //
|
||||||
//static int pulseTime;
|
//static int pulseTime;
|
||||||
//static bool isHiden;
|
//static bool isHiden;
|
||||||
|
|
||||||
if(!pulseTime) pulseTime=HAL_GetTick()+200; //<2F><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if(!pulseTime) pulseTime=HAL_GetTick()+10; //ňű ó čěĺí˙ ďĺđâűé
|
||||||
if(pulseTime<HAL_GetTick()){ // если текущее время больше чем пульс тайм или некоректно, например тики переполнились
|
if(pulseTime<HAL_GetTick()){ // если текущее время больше чем пульс тайм или некоректно, например тики переполнились
|
||||||
|
|
||||||
|
|
||||||
|
if(isHiden){pulseTime=HAL_GetTick()+900;}
|
||||||
|
else
|
||||||
|
pulseTime=HAL_GetTick()+10;// č ń÷čňŕĺě âđĺě˙ ńëĺäóţůĺăî ďóëüńŕ
|
||||||
isHiden=!isHiden; // меняем состояние
|
isHiden=!isHiden; // меняем состояние
|
||||||
pulseTime=HAL_GetTick()+200;// <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isHiden) DrawSome(some, x, y, mode); // если не скрыт то рисуем
|
if (!isHiden) DrawSome(some, x, y, mode); // если не скрыт то рисуем
|
||||||
|
@ -280,10 +285,15 @@ if(!pulseTime) pulseTime=HAL_GetTick()+200; //
|
||||||
void PulseDrawStr(char *str, uint8_t x, uint8_t y, uint8_t mode){ //Моргаем надписью
|
void PulseDrawStr(char *str, uint8_t x, uint8_t y, uint8_t mode){ //Моргаем надписью
|
||||||
|
|
||||||
|
|
||||||
if(!pulseTime)pulseTime=HAL_GetTick()+200; //<2F><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
if(!pulseTime)pulseTime=HAL_GetTick()+10; //ňű ó čěĺí˙ ďĺđâűé
|
||||||
if(pulseTime<HAL_GetTick()){ // если текущее время больше чем пульс тайм или некоректно, например тики переполнились
|
if(pulseTime<HAL_GetTick()){ // если текущее время больше чем пульс тайм или некоректно, например тики переполнились
|
||||||
|
|
||||||
|
|
||||||
|
if(isHiden){pulseTime=HAL_GetTick()+900;}
|
||||||
|
else
|
||||||
|
pulseTime=HAL_GetTick()+10;// č ń÷čňŕĺě âđĺě˙ ńëĺäóţůĺăî ďóëüńŕ
|
||||||
|
|
||||||
isHiden=!isHiden; // меняем состояние
|
isHiden=!isHiden; // меняем состояние
|
||||||
pulseTime=HAL_GetTick()+200;// <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isHiden)
|
if (!isHiden)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#include "struct.h"
|
#include "struct.h"
|
||||||
#include "my.h"
|
#include "my.h"
|
||||||
|
|
||||||
extern int menuPointer;
|
|
||||||
|
|
||||||
extern int reload_flag;
|
extern int reload_flag;
|
||||||
extern char* kPrToDispl;
|
extern char* kPrToDispl;
|
||||||
|
@ -10,7 +10,10 @@ extern UserData_TypeDef currentData;
|
||||||
extern float kNormToDAC;
|
extern float kNormToDAC;
|
||||||
extern uint16_t correctedKu[13];
|
extern uint16_t correctedKu[13];
|
||||||
|
|
||||||
|
extern int menuPointer;
|
||||||
bool menuItemIsEditable=0;
|
bool menuItemIsEditable=0;
|
||||||
|
bool kprEditable=0;
|
||||||
|
int kprPointer=0;
|
||||||
|
|
||||||
extern uint8_t iobuf[256];
|
extern uint8_t iobuf[256];
|
||||||
|
|
||||||
|
@ -232,43 +235,113 @@ void screenDraw(void)
|
||||||
FontSet(Segoe_UI_Rus_10);
|
FontSet(Segoe_UI_Rus_10);
|
||||||
OLED_DrawStr(STRING_DATCHIK, 1, 10, TEXT);
|
OLED_DrawStr(STRING_DATCHIK, 1, 10, TEXT);
|
||||||
|
|
||||||
if(menuPointer==KPR0){
|
//ïðèâåò!!!! ÿ âåëîñèïåä è êîñòûëè ÷òî áû ðàññòàâèòü öèôðû ÊÏÐ áåç ïðîáåëîâ
|
||||||
if(!menuItemIsEditable)DrawSome(currentData.IK0, 30, 10, CURSOR);
|
int ik0posX, ik1posX, ik2posX, ik3posX, ik4posX, ik5posX;
|
||||||
if(menuItemIsEditable)PulseDrawSome(currentData.IK0, 30, 10, CURSOR);
|
ik0posX=30;
|
||||||
|
|
||||||
|
if (currentData.IK0==0){ik1posX=ik0posX+7;}
|
||||||
|
else if (currentData.IK0=='~'){ik1posX=ik0posX+2;}
|
||||||
|
else{ik1posX=ik0posX+6;}
|
||||||
|
|
||||||
|
if (currentData.IK1==0){ik2posX=ik1posX+7;}
|
||||||
|
else if (currentData.IK1=='~'){ik2posX=ik1posX+2;}
|
||||||
|
else{ik2posX=ik1posX+6;}
|
||||||
|
|
||||||
|
if (currentData.IK2==0){ik3posX=ik2posX+7;}
|
||||||
|
else if (currentData.IK2=='~'){ik3posX=ik2posX+2;}
|
||||||
|
else{ik3posX=ik2posX+6;}
|
||||||
|
|
||||||
|
if (currentData.IK3==0){ik4posX=ik3posX+7;}
|
||||||
|
else if (currentData.IK3=='~'){ik4posX=ik3posX+2;}
|
||||||
|
else{ik4posX=ik3posX+6;}
|
||||||
|
|
||||||
|
if (currentData.IK4==0){ik5posX=ik4posX+7;}
|
||||||
|
else if (currentData.IK4=='~'){ik5posX=ik4posX+2;}
|
||||||
|
else{ik5posX=ik4posX+6;}
|
||||||
|
|
||||||
|
if(menuPointer==KPR){
|
||||||
|
if(!kprEditable){
|
||||||
|
DrawSome(currentData.IK0, ik0posX, 10, CURSOR);
|
||||||
|
DrawSome(currentData.IK1, ik1posX, 10, CURSOR);
|
||||||
|
DrawSome(currentData.IK2, ik2posX, 10, CURSOR);
|
||||||
|
DrawSome(currentData.IK3, ik3posX, 10, CURSOR);
|
||||||
|
DrawSome(currentData.IK4, ik4posX, 10, CURSOR);
|
||||||
|
DrawSome(currentData.IK5, ik5posX, 10, CURSOR);
|
||||||
}
|
}
|
||||||
else DrawSome(currentData.IK0, 30, 10, TEXT);
|
|
||||||
|
|
||||||
|
if(kprEditable){
|
||||||
|
switch (kprPointer){
|
||||||
|
case KPR0:
|
||||||
|
PulseDrawSome(currentData.IK0, ik0posX, 10, CURSOR);
|
||||||
|
PulseDrawSome(currentData.IK1, ik1posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK2, ik2posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK3, ik3posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK4, ik4posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK5, ik5posX, 10,TEXT);
|
||||||
|
break;
|
||||||
|
|
||||||
if(menuPointer==KPR1) {
|
case KPR1:
|
||||||
if(!menuItemIsEditable)DrawSome(currentData.IK1, 37, 10, CURSOR);
|
PulseDrawSome(currentData.IK0, ik0posX, 10, TEXT);
|
||||||
if(menuItemIsEditable)PulseDrawSome(currentData.IK1, 37, 10, CURSOR);
|
PulseDrawSome(currentData.IK1, ik1posX, 10, CURSOR);
|
||||||
|
PulseDrawSome(currentData.IK2, ik2posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK3, ik3posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK4, ik4posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK5, ik5posX, 10,TEXT);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KPR2:
|
||||||
|
PulseDrawSome(currentData.IK0, ik0posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK1, ik1posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK2, ik2posX, 10, CURSOR);
|
||||||
|
PulseDrawSome(currentData.IK3, ik3posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK4, ik4posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK5, ik5posX, 10,TEXT);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KPR3:
|
||||||
|
PulseDrawSome(currentData.IK0, ik0posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK1, ik1posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK2, ik2posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK3, ik3posX, 10, CURSOR);
|
||||||
|
PulseDrawSome(currentData.IK4, ik4posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK5, ik5posX, 10,TEXT);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KPR4:
|
||||||
|
PulseDrawSome(currentData.IK0, ik0posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK1, ik1posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK2, ik2posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK3, ik3posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK4, ik4posX, 10, CURSOR);
|
||||||
|
PulseDrawSome(currentData.IK5, ik5posX, 10,TEXT);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KPR5:
|
||||||
|
PulseDrawSome(currentData.IK0, ik0posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK1, ik1posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK2, ik2posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK3, ik3posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK4, ik4posX, 10, TEXT);
|
||||||
|
PulseDrawSome(currentData.IK5, ik5posX, 10,CURSOR);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else DrawSome(currentData.IK1, 37, 10, TEXT);
|
|
||||||
|
|
||||||
|
|
||||||
if(menuPointer==KPR2){
|
|
||||||
if(!menuItemIsEditable)DrawSome(currentData.IK2, 44, 10, CURSOR);
|
|
||||||
if(menuItemIsEditable)PulseDrawSome(currentData.IK2, 44, 10, CURSOR);
|
|
||||||
}
|
}
|
||||||
else DrawSome(currentData.IK2, 44, 10, TEXT);
|
|
||||||
|
|
||||||
if(menuPointer==KPR3){
|
|
||||||
if(!menuItemIsEditable)DrawSome(currentData.IK3, 51, 10, CURSOR);
|
|
||||||
if(menuItemIsEditable)PulseDrawSome(currentData.IK3, 51, 10, CURSOR);
|
|
||||||
}
|
}
|
||||||
else DrawSome(currentData.IK3, 51, 10, TEXT);
|
|
||||||
|
|
||||||
if(menuPointer==KPR4) {
|
|
||||||
if(!menuItemIsEditable)DrawSome(currentData.IK4, 58, 10, CURSOR);
|
|
||||||
if(menuItemIsEditable)PulseDrawSome(currentData.IK4, 58, 10, CURSOR);
|
|
||||||
}
|
|
||||||
else DrawSome(currentData.IK4, 58, 10, TEXT);
|
|
||||||
|
|
||||||
if(menuPointer==KPR5) {
|
else {
|
||||||
if(!menuItemIsEditable)DrawSome(currentData.IK5, 65, 10,CURSOR);
|
DrawSome(currentData.IK0, ik0posX, 10, TEXT);
|
||||||
if(menuItemIsEditable)PulseDrawSome(currentData.IK5, 65, 10, CURSOR);
|
DrawSome(currentData.IK1, ik1posX, 10, TEXT);
|
||||||
|
DrawSome(currentData.IK2, ik2posX, 10, TEXT);
|
||||||
|
DrawSome(currentData.IK3, ik3posX, 10, TEXT);
|
||||||
|
DrawSome(currentData.IK4, ik4posX, 10, TEXT);
|
||||||
|
DrawSome(currentData.IK5, ik5posX, 10,TEXT);
|
||||||
}
|
}
|
||||||
else DrawSome(currentData.IK5, 65, 10, TEXT);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(menuPointer==UNITSELECT){
|
if(menuPointer==UNITSELECT){
|
||||||
|
|
|
@ -217,8 +217,8 @@ char str[10];
|
||||||
OLED_DrawStr(speed, 54, 52, White);
|
OLED_DrawStr(speed, 54, 52, White);
|
||||||
|
|
||||||
if(currentData.INFB ==0) OLED_DrawStr("<TP RX", 92, 52, White);
|
if(currentData.INFB ==0) OLED_DrawStr("<TP RX", 92, 52, White);
|
||||||
if(currentData.INFB ==1) OLED_DrawStr("JLL", 92, 52, White);
|
if(currentData.INFB ==1) OLED_DrawStr("XTN", 92, 52, White);
|
||||||
if(currentData.INFB ==2) OLED_DrawStr("TDTY", 92, 52, White);
|
if(currentData.INFB ==2) OLED_DrawStr("YTXTN", 92, 52, White);
|
||||||
|
|
||||||
|
|
||||||
//ssd1306_WriteString((char *) SERIAL, Font_6x8, White);
|
//ssd1306_WriteString((char *) SERIAL, Font_6x8, White);
|
||||||
|
|
Loading…
Reference in New Issue