Dobrý den,
tady je kód, kterým řeším / chtěl bych řešit přepínání tarifu. Napadá Vás nějaký problém?
Děkuji.
Pavel
var i;
var j;
#define NTP_STATUS sys[38]
#define DEN sys[5]
#define MESIC sys[6]
#define ROK sys[7]
#define DEN_PORADI sys[11] //0-6 pocet dni od nedele
#define HODINA sys[8]
#define MINUTA sys[9]
#define HDO_TARIF sys[459]
#define ODPOCITAVAC_SEKUND sys[64]
init
{
//HDO_TARIF = 0
j=2;
echo('---init--; hdo_tarif: ',HDO_TARIF,' j: ',j,' den_poradi: ',DEN_PORADI,' hodina: ',HODINA,' minuta: ',MINUTA);
}
main
{
//echo('---MAIN--; hdo_tarif: ',HDO_TARIF,' j: ',j,' den_poradi: ',DEN_PORADI,' hodina: ',HODINA,' minuta: ',MINUTA);
//pracovni tyden
i = 1;
label cyklus:
if (DEN_PORADI == i && (HODINA ==0 && MINUTA == 0 && HDO_TARIF != 0) && ) {HDO_TARIF = 0;};
if (DEN_PORADI == i && (HODINA == 2 && MINUTA == 15) && HDO_TARIF != 1) {HDO_TARIF = 1;i = 7;};
if (DEN_PORADI == i && (HODINA ==7 && MINUTA == 32) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == i && (HODINA ==13 && MINUTA == 10) && HDO_TARIF != 1) {HDO_TARIF = 1;i = 7;};
if (DEN_PORADI == i && (HODINA ==15 && MINUTA == 57) && HDO_TARIF != 0) {HDO_TARIF = 0;};
i+=1;
if (i<6) goto cyklus;
//sobota
if (DEN_PORADI == 6 && (HODINA ==0 && MINUTA == 0) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == 6 && (HODINA == 4 && MINUTA == 5) && HDO_TARIF != 1) {HDO_TARIF = 1;};
if (DEN_PORADI == 6 && (HODINA == 7 && MINUTA == 57) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == 6 && (HODINA == 14 && MINUTA == 45) && HDO_TARIF != 1) {HDO_TARIF = 1;};
if (DEN_PORADI == 6 && (HODINA == 16 && MINUTA == 47) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == 6 && (HODINA == 21 && MINUTA == 40) && HDO_TARIF != 1) {HDO_TARIF = 1;};
if (DEN_PORADI == 6 && (HODINA == 23 && MINUTA == 52) && HDO_TARIF != 0) {HDO_TARIF = 0;};
//nedele
if (DEN_PORADI == 0 && (HODINA ==0 && MINUTA == 0) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == 0 && (HODINA == 4 && MINUTA == 5) && HDO_TARIF != 1) {HDO_TARIF = 1;};
if (DEN_PORADI == 0 && (HODINA == 7 && MINUTA == 57) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == 0 && (HODINA == 14 && MINUTA == 45) && HDO_TARIF != 1) {HDO_TARIF = 1;};
if (DEN_PORADI == 0 && (HODINA == 16 && MINUTA == 47) && HDO_TARIF != 0) {HDO_TARIF = 0;};
if (DEN_PORADI == 0 && (HODINA == 21 && MINUTA == 40) && HDO_TARIF != 1) {HDO_TARIF = 1;};
if (DEN_PORADI == 0 && (HODINA == 23 && MINUTA == 51) && HDO_TARIF != 0) {HDO_TARIF = 0;};
//pockam 1 vterinu (interni odpocitavac sys[64])
ODPOCITAVAC_SEKUND = 1;
cekej_dale:
if (ODPOCITAVAC_SEKUND != 0) goto cekej_dale;
//kontrolni vypis kdy by melo dojit ke zmene tarifu
if (j!=HDO_TARIF) {
echo('---MAIN--; hdo_tarif: ',HDO_TARIF,' den_poradi: ',DEN_PORADI,' hodina: ',HODINA,' minuta: ',MINUTA);
j=HDO_TARIF;
};
//konec - main bude spusteno automaticky znovu
}