Clock_cuckoo

Author: Roll
Miscellaneous
It plays sound alerts
0 Views
0 Downloads
0 Favorites
Clock_cuckoo
//+------------------------------------------------------------------+
//|                                                 Clock_cuckoo.mq4 |
//|                                                             Roll |
//+------------------------------------------------------------------+
#property copyright "Roll"
#property link      "http://www.mql4.com/ru/users/Roll"
#property show_inputs
//Source:ClockTest-Ñòðåëî÷íûå ÷àñû äëÿ ÌÒ4(Àâòîð:TheXpert)Âñå,÷òî íàäî,óñòàíîâèòü øðèôò.http://codebase.mql4.com/ru/7671
extern string device="/============öèôåðáëàò======/";
extern int    ClockSize=160;//ðàçìåð öèôåðáëàòà
extern color  Clockcolor=DeepSkyBlue;//öâåò öèôåðáëàòà
extern string My_place="Ìåñòíîå";//íàçâàíèå ìîåãî ìåñòîðàñïîëîæåíèÿ
extern bool   ShowClockBroker=false;//ïîêàçàòü âðåìÿ áðîêåðà
extern bool   ShowClockLocal=true;//ïîêàçàòü ìåñòíîå(ëîêàëüíîå) âðåìÿ
extern string alarm="/=============timer===========/";
extern int    mode=0;/*ðåæèìû òàéìåðà(ïî ìåñòíîìó âðåìåíè)(Mode of the timer):    
 1."êóðàíòû"-ïðè mode==0;
 2."áóäèëüíèê","Alarm"-ïðè mode==1,ñðàáàòûâàíèå(ðàç â ñóòêè) ïî ïðÿìûì ïîêàçàíèÿì âíåøíèõ ïåðåìåííûõ hour,minut,second;
 3."ðàçîâûé òàéìåð","Timer"-ïðè mode==2,ñðàáàòûâàíèå ïî ñóììå òåêóùåãî ìåñòíîãî âðåìåíè(äåíü ãîäà,÷àñ,ìèíóòà,ñåêóíäà)
    è ñóììû ïîêàçàíèé âíåøíèõ ïåðåìåííûõ(hour,minut,second);
 4."ïåðèîäû","Period"-ïðè mode==3,àíàëîãèÿ-ïåðèîäû ãðàôèêîâ(êðàòíûå èíòåðâàëû),
  íà÷àëî îòñ÷åòà-"0"äëÿ êàæäîãî ïåðèîäà îòäåëüíî(ñåêóíäû,ìèíóòû,÷àñû).
   Çíà÷åíèå ëþáîé âíåøíåé ïåðåìåííîé hour,minut,second íå áîëåå ñòàðøåãî ïåðèîäà,
  èíà÷å - ñîêðàùåíèå äî îñòàòêà ñ ïåðåíîñîì â ñòàðøèé ïåðèîä:
  íàïðèìåð,ïðè çíà÷åíèè âíåøíåé ïåðåìåííîé second=70 áóäåò ïðîèçâåäåí ïåðåðàñ÷åò ïåðèîäà 
  äî second=10 è minut=1,è ñèãíàëû áóäóò ïîäàâàòüñÿ ñ ïåðèîäîì=10 ñåêóíä - â 10,20,30,40,50,60 
  ñåêóíä è êàæäóþ ìèíóòó(ïåðèîä-1 ìèíóòà).
  Ò.å.,âîçìîæíà îäíîâðåìåííàÿ ðàáîòà òàéìåðà ïî íåñêîëüêèì âàðèàíòàì ïåðèîäîâ(ñåêóíäû,ìèíóòû,÷àñû),
   íàïðèìåð,:ïî ìèíóòàì è ñåêóíäàì; ïî ÷àñàì è ñåêóíäàì è ò.ä.
 5."öèêëè÷íûé òàéìåð","Cycle"-ïðè mode==4,íà÷àëî îòñ÷åòà-âðåìÿ ñòàðòà ñêðèïòà,
    ïåðèîä öèêëà -ñóììà ïîêàçàíèé âíåøíèõ ïåðåìåííûõ hour,minut,second.
Ïðèì.:äëÿ îòêëþ÷åíèÿ ðåæèìîâ òàéìåðà - çíà÷åíèå âí.ïåðåìåííîé mode ä.áûòü áîëüøå 4(íàïðèìåð,mode==5) 
*/
extern int    hour=0;
extern int    minut=0;
extern int    second=0;
extern string Sound_1="long_cuckoo_clock.wav";//äëèííûé ñèãíàë
extern string Sound_2="cuckoo_clock.wav";//êîðîòêèé ñèãíàë
int a[4],DD,HH,MM,CC,CC_per,MM_per,HH_per,i;string text_e;
int init(){if(mode==1)Alarm();if(mode==2||mode==4)Timer();return(0);}
int deinit(){Comment("");ObjectDelete("Òàéìåð");ObjectDelete("Text_Label");ObjectDelete("1 clock");ObjectDelete("2 hour");
ObjectDelete("3 minute");ObjectDelete("4 second");ObjectDelete("5 zona");ObjectDelete("0 clock mover");return(0);}
int start()
{int sec,sec_1,min,min_1,hours,hours_1,z;string A,B,S,R;
 Per(); B=" :   "+hour+" H,  "+minut+" Minute,  "+second+" Seconds";
 if(mode==1)R="Alarm"+B;if(mode==2)R="Timer"+B;if(mode==3)R="Periods"+B;if(mode==4)R="Cycle"+B;
 if(mode==1||mode==2||mode==4)S="Start  -  "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS);
 if(mode==3)S="Start = 0 (íà÷àëî îòñ÷åòà) + êðàòíûé ïåðèîä";A="Ðåæèì òàéìåðà  -  "+R+"\n"+S;
while(!IsStopped())
{datetime localTime=TimeLocal(),brokerTime=TimeCurrent();
 if(ShowClockBroker)ClockTest(brokerTime,"  Áðîêåð");if(ShowClockLocal)ClockTest(localTime,"  "+My_place);
 if(mode==0){if(TimeMinute(TimeLocal())==59&&TimeSeconds(TimeLocal())==59)Cuckoo(TimeHour(TimeLocal())+1);
   if(TimeMinute(TimeLocal())==29&&TimeSeconds(TimeLocal())==59)PlaySound(Sound_2);}
 if((mode==1)&&a[1]==TimeHour(TimeLocal())&&a[2]==TimeMinute(TimeLocal())&&
 a[3]==TimeSeconds(TimeLocal())){Level();Sleep(900);PlaySound(Sound_1);z++;}
 if((mode==2)&&a[0]==TimeDayOfYear(TimeLocal())&&a[1]==TimeHour(TimeLocal())&&a[2]==TimeMinute(TimeLocal())&&
    a[3]==TimeSeconds(TimeLocal())){Level();Sleep(900);PlaySound(Sound_1);z++;}
 if(mode==3)//ïîäà÷à ñèãíàëà ÷åðåç êðàòíûé èíòåðâàë âðåìåíè(ïåðèîäè÷åñêè).Íà÷àëî îòñ÷åòà-"0"äëÿ êàæäîãî ïåðèîäà îòäåëüíî(ñåêóíäû,ìèíóòû,÷àñû),è íå áîëåå ñòàðøåãî ïåðèîäà.
 {if(second>0&&second<=60)sec_1=MathFloor(60/second);//áîé second ñåêóíä
  for(i=1;i<sec_1+1;i++){sec=i*second;if(TimeSeconds(TimeLocal())==sec-1)
   {Sleep(900);ObjectDelete("Text_Label");T_Label("Periods");PlaySound(Sound_1);z++;}}
  if(minut>0&&minut<=60)min_1=MathFloor(60/minut);//áîé minut ìèíóò
  for(i=1;i<min_1+1;i++)
  {min=i*minut;if(TimeMinute(TimeLocal())==min-1&&TimeSeconds(TimeLocal())==58)
   {Sleep(900);ObjectDelete("Text_Label");T_Label("Periods");PlaySound(Sound_1);z++;}}
  if(hour>0&&hour<=24)hours_1=MathFloor(24/hour);//áîé hour ÷àñîâ
  for(i=1;i<hours_1+1;i++){hours=i*hour;if(TimeHour(TimeLocal())==hours-1&&TimeMinute(TimeLocal())==59&&
   TimeSeconds(TimeLocal())==58){Sleep(900);ObjectDelete("Text_Label");T_Label("Periods");
   Cuckoo(hours);z++;}}} 
 if(mode==4)//ïîäà÷à ñèãíàëà ÷åðåç èíòåðâàë âðåìåíè(ïåðèîäè÷åñêè),íà÷àëî îòñ÷åòà-âðåìÿ ñòàðòà ñêðèïòà
 {if(a[0]==TimeDayOfYear(TimeLocal())&&a[1]==TimeHour(TimeLocal())&&a[2]==TimeMinute(TimeLocal())&&
  a[3]==TimeSeconds(TimeLocal())){ObjectDelete("Text_Label");T_Label("Cycle");PlaySound(Sound_1);Timer();z++;
  }}if(a[2]*60+30<a[2]*60+TimeSeconds(TimeLocal())){ObjectDelete("Text_Label");ObjectDelete("Òàéìåð");}
  WindowRedraw();Sleep(80);if(mode>0&&mode<5)Comment(A,"\n ",z);}return(0);}
//+------------------------------------------------------------------+
void Per(){CC_per=MathFloor(second/60);second=second%60;
 minut=minut+CC_per;MM_per=MathFloor(minut/60);minut=minut%60;hour=(hour+MM_per)%24;}
void Alarm(){Per();a[1]=hour;a[2]=minut;a[3]=second;}
void Timer(){CC=TimeSeconds(TimeLocal())+second;CC_per=MathFloor(CC/60);CC=CC%60;
 MM=TimeMinute(TimeLocal())+minut+CC_per;MM_per=MathFloor(MM/60);MM=MM%60;
 HH=TimeHour(TimeLocal())+hour+MM_per;HH_per=MathFloor(HH/24);HH=HH%24;
 DD=TimeDayOfYear(TimeLocal())+HH_per;a[0]=DD;a[1]=HH;a[2]=MM;a[3]=CC;}
void Cuckoo(int raz){if(raz>12)raz=raz-12;for(i=1;i<=raz;i++){PlaySound(Sound_2);Sleep(1300);}} 
void Level(){string  text_x="Alarm    "+TimeToStr(TimeLocal(),TIME_SECONDS)+"!";
 ObjectCreate("Òàéìåð",OBJ_LABEL,0,0,0,0);ObjectSet("Òàéìåð",OBJPROP_CORNER,0);
 ObjectSet("Òàéìåð",OBJPROP_XDISTANCE,70);ObjectSet("Òàéìåð",OBJPROP_YDISTANCE,110);
 ObjectSetText("Òàéìåð",text_x,30,"Comic Sans MS",Clockcolor);}
void T_Label(string text_e)
{string  text_x=text_e+" - "+TimeToStr(TimeLocal(),TIME_SECONDS);ObjectCreate("Text_Label",OBJ_LABEL,0,0,0);   
 ObjectSetText("Text_Label",text_x,30,"Times New Roman",Clockcolor);ObjectSet("Text_Label",OBJPROP_CORNER,2);   
 ObjectSet("Text_Label",OBJPROP_XDISTANCE,5);ObjectSet("Text_Label",OBJPROP_YDISTANCE,5);}
//---ClockTest - http://codebase.mql4.com/ru/7671-(Àâòîð:TheXpert)---+ 
void ClockTest(datetime rez,string name)
{if(ObjectFind("0 clock mover")==-1)
 {ObjectCreate("0 clock mover",OBJ_LABEL,0,0,0);ObjectSetText("0 clock mover","*",20);
  ObjectSet("0 clock mover",OBJPROP_XDISTANCE,20);ObjectSet("0 clock mover",OBJPROP_YDISTANCE,40);
  ObjectSet("0 clock mover",OBJPROP_COLOR,White);}
  int x=ObjectGet("0 clock mover",OBJPROP_XDISTANCE);int y=ObjectGet("0 clock mover",OBJPROP_YDISTANCE);
  ObjectCreate("1 clock",OBJ_LABEL,0,0,0);ObjectCreate("2 hour",OBJ_LABEL,0,0,0);
  ObjectCreate("3 minute",OBJ_LABEL,0,0,0);ObjectCreate("4 second",OBJ_LABEL,0,0,0);
  ObjectCreate("5 zona",OBJ_LABEL,0,0,0);
  datetime local=rez;
  ObjectSetText("1 clock",CharToStr(32),ClockSize,"ClockBuilder by TheXpert");
  ObjectSet("1 clock",OBJPROP_XDISTANCE,x);ObjectSet("1 clock",OBJPROP_YDISTANCE,y);
  ObjectSet("1 clock",OBJPROP_COLOR,Clockcolor);
  int hours=TimeHour(local);
  if(hours<12)ObjectSetText("2 hour",CharToStr(105+hours*5+TimeMinute(local)/12),ClockSize,"ClockBuilder by TheXpert");
  if(hours>=12)ObjectSetText("2 hour",CharToStr(105+(hours-12)*5+TimeMinute(local)/12),ClockSize,"ClockBuilder by TheXpert");
  ObjectSet("2 hour",OBJPROP_XDISTANCE,x);ObjectSet("2 hour",OBJPROP_YDISTANCE,y);
  ObjectSet("2 hour",OBJPROP_COLOR,Clockcolor);
  int minutes=TimeMinute(local);
  ObjectSetText("3 minute",CharToStr(45+minutes),ClockSize,"ClockBuilder by TheXpert");
  ObjectSet("3 minute",OBJPROP_XDISTANCE,x);ObjectSet("3 minute",OBJPROP_YDISTANCE,y);
  ObjectSet("3 minute",OBJPROP_COLOR,Clockcolor);
  int seconds=TimeSeconds(local);
  ObjectSetText("4 second",CharToStr(105+seconds),ClockSize,"ClockBuilder by TheXpert");
  ObjectSet("4 second",OBJPROP_XDISTANCE,x);ObjectSet("4 second",OBJPROP_YDISTANCE,y);
  ObjectSet("4 second",OBJPROP_COLOR,Red);
  ObjectSetText("5 zona",name,ClockSize/11,"Arial Black");
  ObjectSet("5 zona",OBJPROP_XDISTANCE,x+50);ObjectSet("5 zona",OBJPROP_YDISTANCE,y+125);
  ObjectSet("5 zona",OBJPROP_COLOR,Clockcolor);}
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---