zdenekpetrzd

RW čtení dat

Dec 26th, 2017
435
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 18.43 KB | None | 0 0
  1. enum state {NONE, H, HR, HM, HT, HO, V, VI, VS, VM, S, SB, SZ, SR, D, DA, DB, DC, DE, DP, Z, ZV};
  2. enum state aktualni_stav = NONE;
  3. char c = 0;
  4. //══════════════════ Hlavní ukazatelé ═════════════════════════//
  5. int Rychlomer;
  6. int UkazatelARR;
  7. int VmetrSS;
  8. int VmetrST;
  9. int AmetrBuzeni;
  10. int AmetrMS1;
  11. int AmetrMS2;
  12. int PomernyTah;
  13. int TlakPotrubi;
  14. int TlakVzduchojem;
  15. int TlakValce;
  16. int TlakPrevodnik;
  17. int Opakovac;
  18. int OpakovacModra;
  19. //══════════════════ Vedlejší ukazatelé ════════════════════════//
  20. int IndTopeni;
  21. int IndHVss;
  22. int IndHVst;
  23. int IndNapeti;
  24. int Vysilacka;
  25. int AmetrBaterie;
  26. int VmetrBaterie;
  27. //════════════════════ Kontrolky ═══════════════════════════//
  28. int KontrolkaPJ;
  29. int KontrolkaPorucha;
  30. int KontrolkaZaver;
  31. int KontrolkaPrutok;
  32. int KontrolkaVZzelena;
  33. int KontrolkaVZcervena;
  34. //═════════════════ Diagnostika provozní ═══════════════════════//
  35. int DiagMazaniKompresor1;
  36. int DiagNadproudUnipulsu;
  37. int DiagPomocnyKompresor;
  38. int DiagRegulace1;
  39. int DiagCerpadlo2;
  40. int DiagCerpadlo1;
  41. int DiagPrvkyMenicu;
  42. int DiagBuchholzovoRele;
  43. int DiagOlejTransformatoru;
  44. int DiagSkrinOchran;
  45. int DiagMazaniKompresor2;
  46. int DiagVypnutiEDB;
  47. int DiagTopeniJimek;
  48. int DiagRegulace2;
  49. int DiagNabijeni;
  50. int DiagKompresory;
  51. int DiagCentralniZdroj;
  52. int DiagSkluz;
  53. int DiagVentilator2;
  54. int DiagVentilator1;
  55. //═════════════════ Diagnostika skříňka ═══════════════════════//
  56. int DiagK117_K138;
  57. int DiagA102_N;
  58. int DiagS125_S126;
  59. int DiagS502_H280;
  60. int DiagQ06_H280;
  61. int DiagK117;
  62. int DiagS407;
  63. int DiagK141;
  64. int DiagK140;
  65. int DiagK116;
  66. int DiagW;
  67. int DiagG;
  68. int DiagK36A_S0;
  69. int DiagK36L_S1;
  70. int DiagP;
  71. int DiagZ;
  72. int DiagQ13A;
  73. int DiagQ14A;
  74. int DiagQ13B;
  75. int DiagQ14B;
  76. int DiagQ13L_D1;
  77. int DiagQ14L_D1;
  78. int DiagQ13L_R1;
  79. int DiagQ14L_R1;
  80. int DiagQ11B_Q11C;
  81. int DiagQ12B_Q12C;
  82. int DiagQ11L_Q13L_B;
  83. int DiagQ12L_Q14L_B;
  84. int Diag1_2_XA;
  85. int Diag3_4_XB;
  86. int DiagK101_J0;
  87. int DiagQ11A_J;
  88. int DiagQ12A_J;
  89. int DiagQ11L_Q13L_J1;
  90. int DiagQ12L_Q14L_J1;
  91. int DiagK40A_E0;
  92. int DiagK40L_E1;
  93. int DiagK106;
  94. int DiagNR;
  95. int DiagDR;
  96. //════════════════════ Zvuky ════════════════════════//
  97. int ZvukVZSignalizace;
  98. int ZvukVZStart;
  99. //════════════════════════════════════════════════//
  100. void setup() {
  101.   Serial.setTimeout(2);
  102.   Serial.begin(115200);
  103.   Serial.flush();
  104.   pinMode(A0,OUTPUT);
  105. }
  106. //════════════════════════════════════════════════//
  107. void prectiSerial() {
  108.   if(Serial.available() > 0) {
  109.     c = Serial.read();
  110.    
  111.       switch(aktualni_stav) {
  112.         case H:
  113.           if(c == 'r') aktualni_stav = HR;
  114.           else if(c == 'm') aktualni_stav = HM;
  115.           else if(c == 't') aktualni_stav = HT;
  116.           else if(c == 'o') aktualni_stav = HO;
  117.           else aktualni_stav = NONE;
  118.           break;
  119.         /////////////////////////////////////////////////
  120.         case HR:
  121.           if(c == 'm')
  122.           {
  123.             Rychlomer = Serial.parseInt();
  124.             aktualni_stav = NONE;
  125.           }
  126.           else if(c == 'a')
  127.           {
  128.             UkazatelARR = Serial.parseInt();
  129.             aktualni_stav = NONE;
  130.           }
  131.           else aktualni_stav = NONE;
  132.           break;
  133.         /////////////////////////////////////////////////
  134.         case HM:
  135.           if(c == 'a')
  136.           {
  137.             VmetrSS = Serial.parseInt();
  138.             aktualni_stav = NONE;
  139.           }
  140.           else if(c == 'b')
  141.           {
  142.             VmetrST = Serial.parseInt();
  143.             aktualni_stav = NONE;
  144.           }
  145.           else if(c == 'c')
  146.           {
  147.             AmetrBuzeni = Serial.parseInt();
  148.             aktualni_stav = NONE;
  149.           }
  150.           else if(c == 'd')
  151.           {
  152.             AmetrMS1 = Serial.parseInt();
  153.             aktualni_stav = NONE;
  154.           }
  155.           else if(c == 'e')
  156.           {
  157.             AmetrMS2 = Serial.parseInt();
  158.             aktualni_stav = NONE;
  159.           }
  160.           else if(c == 'f')
  161.           {
  162.             PomernyTah = Serial.parseInt();
  163.             aktualni_stav = NONE;
  164.           }
  165.           else aktualni_stav = NONE;
  166.           break;
  167.         /////////////////////////////////////////////////
  168.         case HT:
  169.           if(c == 'p')
  170.           {
  171.             TlakPotrubi = Serial.parseInt();
  172.             aktualni_stav = NONE;
  173.           }
  174.           else if(c == 'v')
  175.           {
  176.             TlakVzduchojem = Serial.parseInt();
  177.             aktualni_stav = NONE;
  178.           }
  179.           else if(c == 'a')
  180.           {
  181.             TlakValce = Serial.parseInt();
  182.             aktualni_stav = NONE;
  183.           }
  184.           else if(c == 'r')
  185.           {
  186.             TlakPrevodnik = Serial.parseInt();
  187.             aktualni_stav = NONE;
  188.           }
  189.           else aktualni_stav = NONE;
  190.           break;
  191.         /////////////////////////////////////////////////
  192.         case HO:
  193.           if(c == 'p')
  194.           {
  195.             Opakovac = Serial.parseInt();
  196.             aktualni_stav = NONE;
  197.           }
  198.           else if(c == 'm')
  199.           {
  200.             OpakovacModra = Serial.parseInt();
  201.             aktualni_stav = NONE;
  202.           }
  203.           else aktualni_stav = NONE;
  204.           break;    
  205.         /////////////////////////////////////////////////
  206.         case V:
  207.           if(c == 'i') aktualni_stav = VI;
  208.           else if(c == 's') aktualni_stav = VS;
  209.           else if(c == 'm') aktualni_stav = VM;
  210.           else aktualni_stav = NONE;
  211.           break;
  212.         /////////////////////////////////////////////////  
  213.         case VI:
  214.           if(c == 't')
  215.           {
  216.             IndTopeni = Serial.parseInt();
  217.             aktualni_stav = NONE;
  218.           }
  219.           else if(c == 's')
  220.           {
  221.             IndHVss = Serial.parseInt();
  222.             aktualni_stav = NONE;
  223.           }
  224.           else if(c == 'r')
  225.           {
  226.             IndHVst = Serial.parseInt();
  227.             aktualni_stav = NONE;
  228.           }
  229.           else if(c == 'n')
  230.           {
  231.             IndNapeti = Serial.parseInt();
  232.             aktualni_stav = NONE;
  233.           }
  234.           else aktualni_stav = NONE;
  235.           break;
  236.         /////////////////////////////////////////////////
  237.         case VS:
  238.           if(c == 'l')
  239.           {
  240.             Vysilacka = Serial.parseInt();
  241.             aktualni_stav = NONE;
  242.           }
  243.           else aktualni_stav = NONE;
  244.           break;
  245.         /////////////////////////////////////////////////
  246.         case VM:
  247.           if(c == 'a')
  248.           {
  249.             AmetrBaterie = Serial.parseInt();
  250.             aktualni_stav = NONE;
  251.           }
  252.           else if(c == 'b')
  253.           {
  254.             VmetrBaterie = Serial.parseInt();
  255.             aktualni_stav = NONE;
  256.           }
  257.           else aktualni_stav = NONE;
  258.           break;
  259.         /////////////////////////////////////////////////
  260.         case S:
  261.           if(c == 'p') aktualni_stav = SR;
  262.           else if(c == 'b') aktualni_stav = SB;
  263.           else if(c == 'z') aktualni_stav = SZ;
  264.           else aktualni_stav = NONE;
  265.           break;
  266.         /////////////////////////////////////////////////
  267.         case SR:
  268.           if(c == 'j')
  269.           {
  270.             KontrolkaPJ = Serial.parseInt();
  271.             aktualni_stav = NONE;
  272.           }
  273.           else if(c == 'r')
  274.           {
  275.             KontrolkaPorucha = Serial.parseInt();
  276.             aktualni_stav = NONE;
  277.           }
  278.           else aktualni_stav = NONE;
  279.           break;
  280.         /////////////////////////////////////////////////  
  281.         case SB:
  282.           if(c == 'v')
  283.           {
  284.             KontrolkaZaver = Serial.parseInt();
  285.             aktualni_stav = NONE;
  286.           }
  287.           else if(c == 't')
  288.           {
  289.             KontrolkaPrutok = Serial.parseInt();
  290.             aktualni_stav = NONE;
  291.           }
  292.           else aktualni_stav = NONE;
  293.           break;
  294.         /////////////////////////////////////////////////
  295.         case SZ:
  296.           if(c == 'z')
  297.           {
  298.             KontrolkaVZzelena = Serial.parseInt();
  299.             aktualni_stav = NONE;
  300.           }
  301.           else if(c == 'c')
  302.           {
  303.             KontrolkaVZcervena = Serial.parseInt();
  304.             aktualni_stav = NONE;
  305.           }
  306.           else aktualni_stav = NONE;
  307.           break;
  308.         /////////////////////////////////////////////////
  309.         case D:
  310.           if(c == 'a') aktualni_stav = DA;
  311.           else if(c == 'b') aktualni_stav = DB;
  312.           else if(c == 'c') aktualni_stav = DC;
  313.           else if(c == 'e') aktualni_stav = DE;
  314.           else if(c == 'p') aktualni_stav = DP;
  315.           else aktualni_stav = NONE;
  316.           break;
  317.         /////////////////////////////////////////////////  
  318.         case DP:
  319.           if(c == 'a')
  320.           {
  321.             DiagMazaniKompresor1 = Serial.parseInt();
  322.             aktualni_stav = NONE;
  323.           }
  324.           else if(c == 'b')
  325.           {
  326.             DiagNadproudUnipulsu = Serial.parseInt();
  327.             aktualni_stav = NONE;
  328.           }
  329.           else if(c == 'c')
  330.           {
  331.             DiagPomocnyKompresor = Serial.parseInt();
  332.             aktualni_stav = NONE;
  333.           }
  334.           else if(c == 'd')
  335.           {
  336.             DiagRegulace1 = Serial.parseInt();
  337.             aktualni_stav = NONE;
  338.           }
  339.           else if(c == 'e')
  340.           {
  341.             DiagCerpadlo2 = Serial.parseInt();
  342.             aktualni_stav = NONE;
  343.           }
  344.           else if(c == 'f')
  345.           {
  346.             DiagCerpadlo1 = Serial.parseInt();
  347.             aktualni_stav = NONE;
  348.           }
  349.           else if(c == 'g')
  350.           {
  351.             DiagPrvkyMenicu = Serial.parseInt();
  352.             aktualni_stav = NONE;
  353.           }
  354.           else if(c == 'h')
  355.           {
  356.             DiagBuchholzovoRele = Serial.parseInt();
  357.             aktualni_stav = NONE;
  358.           }
  359.           else if(c == 'i')
  360.           {
  361.             DiagOlejTransformatoru = Serial.parseInt();
  362.             aktualni_stav = NONE;
  363.           }
  364.           else if(c == 'j')
  365.           {
  366.             DiagSkrinOchran = Serial.parseInt();
  367.             aktualni_stav = NONE;
  368.           }
  369.           else if(c == 'k')
  370.           {
  371.             DiagMazaniKompresor2 = Serial.parseInt();
  372.             aktualni_stav = NONE;
  373.           }
  374.           else if(c == 'l')
  375.           {
  376.             DiagVypnutiEDB = Serial.parseInt();
  377.             aktualni_stav = NONE;
  378.           }
  379.           else if(c == 'm')
  380.           {
  381.             DiagTopeniJimek = Serial.parseInt();
  382.             aktualni_stav = NONE;
  383.           }
  384.           else if(c == 'n')
  385.           {
  386.             DiagRegulace2 = Serial.parseInt();
  387.             aktualni_stav = NONE;
  388.           }
  389.           else if(c == 'o')
  390.           {
  391.             DiagNabijeni = Serial.parseInt();
  392.             aktualni_stav = NONE;
  393.           }
  394.           else if(c == 'p')
  395.           {
  396.             DiagKompresory = Serial.parseInt();
  397.             aktualni_stav = NONE;
  398.           }
  399.           else if(c == 'q')
  400.           {
  401.             DiagCentralniZdroj = Serial.parseInt();
  402.             aktualni_stav = NONE;
  403.           }
  404.           else if(c == 'r')
  405.           {
  406.             DiagSkluz = Serial.parseInt();
  407.             aktualni_stav = NONE;
  408.           }
  409.           else if(c == 's')
  410.           {
  411.             DiagVentilator2 = Serial.parseInt();
  412.             aktualni_stav = NONE;
  413.           }
  414.           else if(c == 't')
  415.           {
  416.             DiagVentilator1 = Serial.parseInt();
  417.             aktualni_stav = NONE;
  418.           }
  419.           else aktualni_stav = NONE;
  420.           break;
  421.         /////////////////////////////////////////////////  
  422.         case DA:
  423.           if(c == 'a')
  424.           {
  425.             DiagK117_K138 = Serial.parseInt();
  426.             aktualni_stav = NONE;
  427.           }
  428.           else if(c == 'b')
  429.           {
  430.             DiagA102_N = Serial.parseInt();
  431.             aktualni_stav = NONE;
  432.           }
  433.           else if(c == 'c')
  434.           {
  435.             DiagS125_S126 = Serial.parseInt();
  436.             aktualni_stav = NONE;
  437.           }
  438.           else if(c == 'e')
  439.           {
  440.             DiagS502_H280 = Serial.parseInt();
  441.             aktualni_stav = NONE;
  442.           }
  443.           else if(c == 'f')
  444.           {
  445.             DiagQ06_H280 = Serial.parseInt();
  446.             aktualni_stav = NONE;
  447.           }
  448.           else if(c == 'g')
  449.           {
  450.             DiagK117 = Serial.parseInt();
  451.             aktualni_stav = NONE;
  452.           }
  453.           else if(c == 'h')
  454.           {
  455.             DiagS407 = Serial.parseInt();
  456.             aktualni_stav = NONE;
  457.           }
  458.           else if(c == 'i')
  459.           {
  460.             DiagK141 = Serial.parseInt();
  461.             aktualni_stav = NONE;
  462.           }
  463.           else if(c == 'j')
  464.           {
  465.             DiagK140 = Serial.parseInt();
  466.             aktualni_stav = NONE;
  467.           }
  468.           else if(c == 'k')
  469.           {
  470.             DiagK116 = Serial.parseInt();
  471.             aktualni_stav = NONE;
  472.           }
  473.           else aktualni_stav = NONE;
  474.           break;
  475.         /////////////////////////////////////////////////
  476.         case DB:
  477.           if(c == 'a')
  478.           {
  479.             DiagW = Serial.parseInt();
  480.             aktualni_stav = NONE;
  481.           }
  482.           else if(c == 'b')
  483.           {
  484.             DiagG = Serial.parseInt();
  485.             aktualni_stav = NONE;
  486.           }
  487.           else if(c == 'c')
  488.           {
  489.             DiagK36A_S0 = Serial.parseInt();
  490.             aktualni_stav = NONE;
  491.           }
  492.           else if(c == 'e')
  493.           {
  494.             DiagK36L_S1 = Serial.parseInt();
  495.             aktualni_stav = NONE;
  496.           }
  497.           else if(c == 'f')
  498.           {
  499.             DiagP = Serial.parseInt();
  500.             aktualni_stav = NONE;
  501.           }
  502.           else if(c == 'g')
  503.           {
  504.             DiagZ = Serial.parseInt();
  505.             aktualni_stav = NONE;
  506.           }
  507.           else if(c == 'h')
  508.           {
  509.             DiagQ13A = Serial.parseInt();
  510.             aktualni_stav = NONE;
  511.           }
  512.           else if(c == 'i')
  513.           {
  514.             DiagQ14A = Serial.parseInt();
  515.             aktualni_stav = NONE;
  516.           }
  517.           else if(c == 'j')
  518.           {
  519.             DiagQ13B = Serial.parseInt();
  520.             aktualni_stav = NONE;
  521.           }
  522.           else if(c == 'k')
  523.           {
  524.             DiagQ14B = Serial.parseInt();
  525.             aktualni_stav = NONE;
  526.           }
  527.           else aktualni_stav = NONE;
  528.           break;
  529.         /////////////////////////////////////////////////
  530.         case DC:
  531.           if(c == 'a')
  532.           {
  533.             DiagQ13L_D1 = Serial.parseInt();
  534.             aktualni_stav = NONE;
  535.           }
  536.           else if(c == 'b')
  537.           {
  538.             DiagQ14L_D1 = Serial.parseInt();
  539.             aktualni_stav = NONE;
  540.           }
  541.           else if(c == 'c')
  542.           {
  543.             DiagQ13L_R1 = Serial.parseInt();
  544.             aktualni_stav = NONE;
  545.           }
  546.           else if(c == 'e')
  547.           {
  548.             DiagQ14L_R1 = Serial.parseInt();
  549.             aktualni_stav = NONE;
  550.           }
  551.           else if(c == 'f')
  552.           {
  553.             DiagQ11B_Q11C = Serial.parseInt();
  554.             aktualni_stav = NONE;
  555.           }
  556.           else if(c == 'g')
  557.           {
  558.             DiagQ12B_Q12C = Serial.parseInt();
  559.             aktualni_stav = NONE;
  560.           }
  561.           else if(c == 'h')
  562.           {
  563.             DiagQ11L_Q13L_B = Serial.parseInt();
  564.             aktualni_stav = NONE;
  565.           }
  566.           else if(c == 'i')
  567.           {
  568.             DiagQ12L_Q14L_B = Serial.parseInt();
  569.             aktualni_stav = NONE;
  570.           }
  571.           else if(c == 'j')
  572.           {
  573.             Diag1_2_XA = Serial.parseInt();
  574.             aktualni_stav = NONE;
  575.           }
  576.           else if(c == 'k')
  577.           {
  578.             Diag3_4_XB = Serial.parseInt();
  579.             aktualni_stav = NONE;
  580.           }
  581.           else aktualni_stav = NONE;
  582.           break;
  583.         /////////////////////////////////////////////////
  584.         case DE:
  585.           if(c == 'a')
  586.           {
  587.             DiagK101_J0 = Serial.parseInt();
  588.             aktualni_stav = NONE;
  589.           }
  590.           else if(c == 'b')
  591.           {
  592.             DiagQ11A_J = Serial.parseInt();
  593.             aktualni_stav = NONE;
  594.           }
  595.           else if(c == 'c')
  596.           {
  597.             DiagQ12A_J = Serial.parseInt();
  598.             aktualni_stav = NONE;
  599.           }
  600.           else if(c == 'e')
  601.           {
  602.             DiagQ11L_Q13L_J1 = Serial.parseInt();
  603.             aktualni_stav = NONE;
  604.           }
  605.           else if(c == 'f')
  606.           {
  607.             DiagQ12L_Q14L_J1 = Serial.parseInt();
  608.             aktualni_stav = NONE;
  609.           }
  610.           else if(c == 'g')
  611.           {
  612.             DiagK40A_E0 = Serial.parseInt();
  613.             aktualni_stav = NONE;
  614.           }
  615.           else if(c == 'h')
  616.           {
  617.             DiagK40L_E1 = Serial.parseInt();
  618.             aktualni_stav = NONE;
  619.           }
  620.           else if(c == 'i')
  621.           {
  622.             DiagK106 = Serial.parseInt();
  623.             aktualni_stav = NONE;
  624.           }
  625.           else if(c == 'j')
  626.           {
  627.             DiagNR = Serial.parseInt();
  628.             aktualni_stav = NONE;
  629.           }
  630.           else if(c == 'k')
  631.           {
  632.             DiagDR = Serial.parseInt();
  633.             aktualni_stav = NONE;
  634.           }
  635.           else aktualni_stav = NONE;
  636.           break;
  637.         /////////////////////////////////////////////////
  638.         default:
  639.             if(c == 'h') aktualni_stav = H;
  640.             else if(c == 'v') aktualni_stav = V;
  641.             else if(c == 's') aktualni_stav = S;
  642.             else if(c == 'd') aktualni_stav = D;
  643.             else if(c == 'z') aktualni_stav = S;
  644.             else aktualni_stav = NONE;
  645.             break;
  646.         /////////////////////////////////////////////////
  647.       }
  648.   }
  649. }
  650.  
  651. void loop() {
  652.   prectiSerial();
  653. }══════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment