├── .gitignore ├── LICENSE ├── README.md ├── arduino_plclib.doxygen ├── doc └── html │ ├── annotated.html │ ├── arrowdown.png │ ├── arrowright.png │ ├── bc_s.png │ ├── bdwn.png │ ├── class_c_t_d-members.html │ ├── class_c_t_d.html │ ├── class_c_t_u-members.html │ ├── class_c_t_u.html │ ├── class_c_t_u_d-members.html │ ├── class_c_t_u_d.html │ ├── class_f___t_r_i_g-members.html │ ├── class_f___t_r_i_g.html │ ├── class_r___t_r_i_g-members.html │ ├── class_r___t_r_i_g.html │ ├── class_r_s-members.html │ ├── class_r_s.html │ ├── class_s_e_m_a-members.html │ ├── class_s_e_m_a.html │ ├── class_s_r-members.html │ ├── class_s_r.html │ ├── class_t_o_f-members.html │ ├── class_t_o_f.html │ ├── class_t_o_n-members.html │ ├── class_t_o_n.html │ ├── class_t_p-members.html │ ├── class_t_p.html │ ├── classes.html │ ├── closed.png │ ├── doc.png │ ├── doxygen.css │ ├── doxygen.png │ ├── dynsections.js │ ├── files.html │ ├── folderclosed.png │ ├── folderopen.png │ ├── ftv2blank.png │ ├── ftv2doc.png │ ├── ftv2folderclosed.png │ ├── ftv2folderopen.png │ ├── ftv2lastnode.png │ ├── ftv2link.png │ ├── ftv2mlastnode.png │ ├── ftv2mnode.png │ ├── ftv2node.png │ ├── ftv2plastnode.png │ ├── ftv2pnode.png │ ├── ftv2splitbar.png │ ├── ftv2vertline.png │ ├── functions.html │ ├── functions_func.html │ ├── functions_vars.html │ ├── index.html │ ├── jquery.js │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── plclib_8h_source.html │ ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── classes_2.html │ ├── classes_2.js │ ├── classes_3.html │ ├── classes_3.js │ ├── classes_4.html │ ├── classes_4.js │ ├── close.png │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── mag_sel.png │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ ├── searchdata.js │ ├── variables_0.html │ ├── variables_0.js │ ├── variables_1.html │ ├── variables_1.js │ ├── variables_2.html │ ├── variables_2.js │ ├── variables_3.html │ ├── variables_3.js │ ├── variables_4.html │ ├── variables_4.js │ ├── variables_5.html │ ├── variables_5.js │ ├── variables_6.html │ ├── variables_6.js │ ├── variables_7.html │ └── variables_7.js │ ├── splitbar.png │ ├── stdlib_8h_source.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ └── tabs.css ├── examples ├── counter │ ├── ctd │ │ └── ctd.ino │ ├── ctu │ │ └── ctu.ino │ └── ctud │ │ └── ctud.ino ├── edge_detection │ └── edge_detection.ino ├── latches │ ├── rs_latch │ │ └── rs_latch.ino │ ├── semaphore │ │ └── semaphore.ino │ └── sr_latch │ │ └── sr_latch.ino └── timer │ ├── tof │ └── tof.ino │ ├── ton │ └── ton.ino │ └── tp │ └── tp.ino ├── keywords.txt ├── plclib.cpp └── plclib.h /.gitignore: -------------------------------------------------------------------------------- 1 | latex/ 2 | .DS_Store 3 | *.sublime-* -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Stefan Lehmann 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /doc/html/annotated.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Class List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 |
68 | 69 |
73 |  All Classes Functions Variables
74 | 75 | 76 |
77 | 80 |
81 | 82 |
83 |
84 |
Class List
85 |
86 |
87 |
Here are the classes, structs, unions and interfaces with brief descriptions:
88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
 CCTDDownward counter
 CCTUUpward counter
 CCTUDUp- and Downward counter
 CF_TRIGDetect a falling edge
 CR_TRIGDetect a rising edge
 CRSBistable function block with dominating reset
 CSEMASoftware semaphore (interruptable)
 CSRBistable function block with dominating set
 CTOFRealise a Switch-Off delay
 CTONRealise a Switch-On delay
 CTPRealise an impulse of a defined length
101 |
102 |
103 | 104 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /doc/html/arrowdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/arrowdown.png -------------------------------------------------------------------------------- /doc/html/arrowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/arrowright.png -------------------------------------------------------------------------------- /doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/bc_s.png -------------------------------------------------------------------------------- /doc/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/bdwn.png -------------------------------------------------------------------------------- /doc/html/class_c_t_d-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
CTD Member List
85 |
86 |
87 | 88 |

This is the complete list of members for CTD, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 |
CDCTD
CTD(uint pv=0)CTD
CVCTD
LOADCTD
process()CTD
process(boolean cd, boolean load)CTD
PVCTD
QCTD
99 | 100 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /doc/html/class_c_t_u-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
CTU Member List
85 |
86 |
87 | 88 |

This is the complete list of members for CTU, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 |
CTU(uint pv=0)CTU
CUCTU
CVCTU
process()CTU
process(boolean cu, boolean reset)CTU
PVCTU
QCTU
RESETCTU
99 | 100 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /doc/html/class_c_t_u_d-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
CTUD Member List
85 |
86 |
87 | 88 |

This is the complete list of members for CTUD, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 |
CDCTUD
CTUD(uint pv=0)CTUD
CUCTUD
CVCTUD
LOADCTUD
process()CTUD
process(boolean cu, boolean cd, boolean reset, boolean load)CTUD
PVCTUD
QDCTUD
QUCTUD
RESETCTUD
102 | 103 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /doc/html/class_f___t_r_i_g-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
F_TRIG Member List
85 |
86 |
87 | 88 |

This is the complete list of members for F_TRIG, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 |
CLKF_TRIG
F_TRIG()F_TRIG
process()F_TRIG
process(boolean clk)F_TRIG
QF_TRIG
96 | 97 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /doc/html/class_r___t_r_i_g-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
R_TRIG Member List
85 |
86 |
87 | 88 |

This is the complete list of members for R_TRIG, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 |
CLKR_TRIG
process()R_TRIG
process(boolean clk)R_TRIG
QR_TRIG
R_TRIG()R_TRIG
96 | 97 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /doc/html/class_r___t_r_i_g.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: R_TRIG Class Reference 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 | Public Member Functions | 85 | Public Attributes | 86 | List of all members
87 |
88 |
R_TRIG Class Reference
89 |
90 |
91 | 92 |

Detect a rising edge. 93 | More...

94 | 95 |

#include <plclib.h>

96 | 97 | 99 | 101 | 102 | 103 | 105 | 106 | 107 | 108 | 109 | 110 |

98 | Public Member Functions

100 |  R_TRIG ()
 Constructor.
 
104 | boolean process ()
 Call cyclic for data processing.
 
boolean process (boolean clk)
 Call cyclic for data processing. More...
 
111 | 113 | 115 | 116 | 117 | 119 | 120 | 121 |

112 | Public Attributes

114 | boolean CLK
 Input variable.
 
118 | boolean Q
 Output variable.
 
122 |

Detailed Description

123 |

Detect a rising edge.

124 |

Code sample:

#include "plc_standardlib.h"
125 | #define X0 2
126 | 
127 | R_TRIG trig;
128 | void setup() {
129 |     pinMode(X0, INPUT_PULLUP);
130 |     Serial.begin(9600);
131 | }
132 | void loop() {
133 |     boolean x0 = !digitalRead(X0);
134 |     trig.process(x0);
135 |     if (trig.Q) {
136 |         Serial.println("This was a rising edge.");
137 |     }
138 | }

Member Function Documentation

139 | 140 |
141 |
142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |
boolean R_TRIG::process (boolean clk)
151 |
152 | 153 |

Call cyclic for data processing.

154 |
Parameters
155 | 156 | 157 |
invalue for input variable
158 |
159 |
160 | 161 |
162 |
163 |
The documentation for this class was generated from the following files: 167 |
168 | 169 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /doc/html/class_r_s-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
RS Member List
85 |
86 |
87 | 88 |

This is the complete list of members for RS, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
process() (defined in RS)RS
process(boolean set, boolean reset1) (defined in RS)RS
Q1 (defined in RS)RS
RESET1 (defined in RS)RS
RS() (defined in RS)RS
SET (defined in RS)RS
97 | 98 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/class_r_s.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: RS Class Reference 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 | Public Member Functions | 85 | Public Attributes | 86 | List of all members
87 |
88 |
RS Class Reference
89 |
90 |
91 | 92 |

Bistable function block with dominating reset. 93 | More...

94 | 95 |

#include <plclib.h>

96 | 97 | 99 | 101 | 102 | 104 | 105 |

98 | Public Member Functions

100 | boolean process ()
 
103 | boolean process (boolean set, boolean reset1)
 
106 | 108 | 110 | 111 | 113 | 114 | 116 | 117 |

107 | Public Attributes

109 | boolean SET
 
112 | boolean RESET1
 
115 | boolean Q1
 
118 |

Detailed Description

119 |

Bistable function block with dominating reset.

120 |

Code sample:

#include "plc_standardlib.h"
121 | 
122 | RS rs_latch;
123 | R_TRIG rtrig;
124 | F_TRIG ftrig;
125 | 
126 | void setup() {
127 |     pinMode(0, INPUT_PULLUP);
128 |     pinMode(1, INPUT_PULLUP);
129 |     Serial.begin(9600);
130 | }
131 | 
132 | void loop() {
133 |     boolean x0 = !digitalRead(0); //set switch
134 |     boolean x1 = !digitalRead(1); //reset switch
135 | 
136 |     rs_latch.process(x0, x1);
137 |     rtrig.process(rs_latch.Q1);
138 |     ftrig.process(rs_latch.Q1);
139 | 
140 |     if (rtrig.Q) {
141 |         Serial.println("On");
142 |     }
143 |     if (ftrig.Q) {
144 |         Serial.println("Off");
145 |     }
146 | }

The documentation for this class was generated from the following files: 150 |
151 | 152 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /doc/html/class_s_e_m_a-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
SEMA Member List
85 |
86 |
87 | 88 |

This is the complete list of members for SEMA, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
BUSYSEMA
CLAIMSEMA
process()SEMA
process(boolean claim, boolean release)SEMA
RELEASESEMA
SEMA() (defined in SEMA)SEMA
97 | 98 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/class_s_r-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
SR Member List
85 |
86 |
87 | 88 |

This is the complete list of members for SR, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
process() (defined in SR)SR
process(boolean set1, boolean reset) (defined in SR)SR
Q1 (defined in SR)SR
RESET (defined in SR)SR
SET1 (defined in SR)SR
SR() (defined in SR)SR
97 | 98 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /doc/html/class_s_r.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: SR Class Reference 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 | Public Member Functions | 85 | Public Attributes | 86 | List of all members
87 |
88 |
SR Class Reference
89 |
90 |
91 | 92 |

Bistable function block with dominating set. 93 | More...

94 | 95 |

#include <plclib.h>

96 | 97 | 99 | 101 | 102 | 104 | 105 |

98 | Public Member Functions

100 | boolean process ()
 
103 | boolean process (boolean set1, boolean reset)
 
106 | 108 | 110 | 111 | 113 | 114 | 116 | 117 |

107 | Public Attributes

109 | boolean SET1
 
112 | boolean RESET
 
115 | boolean Q1
 
118 |

Detailed Description

119 |

Bistable function block with dominating set.

120 |

Code sample:

#include "plc_standardlib.h"
121 | 
122 | SR sr_latch;
123 | R_TRIG rtrig;
124 | F_TRIG ftrig;
125 | 
126 | void setup() {
127 |     pinMode(0, INPUT_PULLUP);
128 |     pinMode(1, INPUT_PULLUP);
129 |     Serial.begin(9600);
130 | }
131 | 
132 | void loop() {
133 |     boolean x0 = !digitalRead(0); //set switch
134 |     boolean x1 = !digitalRead(1); //reset switch
135 | 
136 |     sr_latch.process(x0, x1);
137 |     rtrig.process(sr_latch.Q1);
138 |     ftrig.process(sr_latch.Q1);
139 | 
140 |     if (rtrig.Q) {
141 |         Serial.println("On");
142 |     }
143 |     if (ftrig.Q) {
144 |         Serial.println("Off");
145 |     }
146 | }

The documentation for this class was generated from the following files: 150 |
151 | 152 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /doc/html/class_t_o_f-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
TOF Member List
85 |
86 |
87 | 88 |

This is the complete list of members for TOF, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 |
ETTOF
INTOF
process()TOF
process(boolean in)TOF
PTTOF
QTOF
TOF(ulong pt=0)TOF
98 | 99 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /doc/html/class_t_o_n-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
TON Member List
85 |
86 |
87 | 88 |

This is the complete list of members for TON, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 |
ETTON
INTON
process()TON
process(boolean in)TON
PTTON
QTON
TON(ulong pt=0)TON
98 | 99 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /doc/html/class_t_p-members.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Member List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 68 |
72 |  All Classes Functions Variables
73 | 74 | 75 |
76 | 79 |
80 | 81 |
82 |
83 |
84 |
TP Member List
85 |
86 |
87 | 88 |

This is the complete list of members for TP, including all inherited members.

89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 |
ETTP
INTP
process()TP
process(boolean in)TP
PTTP
QTP
TP()TP
TP(ulong pt)TP
99 | 100 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /doc/html/classes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Class Index 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 |
68 | 69 |
73 |  All Classes Functions Variables
74 | 75 | 76 |
77 | 80 |
81 | 82 |
83 |
84 |
Class Index
85 |
86 |
87 |
C | F | R | S | T
88 | 89 | 93 | 95 | 96 | 98 | 99 | 100 | 101 |
  C  
90 |
  F  
91 |
RS   
  T  
92 |
  S  
94 |
CTD   F_TRIG   TOF   
CTU   
  R  
97 |
SEMA   TON   
CTUD   SR   TP   
R_TRIG   
102 |
C | F | R | S | T
103 |
104 | 105 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/closed.png -------------------------------------------------------------------------------- /doc/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/doc.png -------------------------------------------------------------------------------- /doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/doxygen.png -------------------------------------------------------------------------------- /doc/html/dynsections.js: -------------------------------------------------------------------------------- 1 | function toggleVisibility(linkObj) 2 | { 3 | var base = $(linkObj).attr('id'); 4 | var summary = $('#'+base+'-summary'); 5 | var content = $('#'+base+'-content'); 6 | var trigger = $('#'+base+'-trigger'); 7 | var src=$(trigger).attr('src'); 8 | if (content.is(':visible')===true) { 9 | content.hide(); 10 | summary.show(); 11 | $(linkObj).addClass('closed').removeClass('opened'); 12 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 13 | } else { 14 | content.show(); 15 | summary.hide(); 16 | $(linkObj).removeClass('closed').addClass('opened'); 17 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 18 | } 19 | return false; 20 | } 21 | 22 | function updateStripes() 23 | { 24 | $('table.directory tr'). 25 | removeClass('even').filter(':visible:even').addClass('even'); 26 | } 27 | 28 | function toggleLevel(level) 29 | { 30 | $('table.directory tr').each(function() { 31 | var l = this.id.split('_').length-1; 32 | var i = $('#img'+this.id.substring(3)); 33 | var a = $('#arr'+this.id.substring(3)); 34 | if (l 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: File List 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 65 |
66 | 67 |
71 |  All Classes Functions Variables
72 | 73 | 74 |
75 | 78 |
79 | 80 |
81 |
82 |
File List
83 |
84 |
85 |
Here is a list of all documented files with brief descriptions:
86 | 87 | 88 |
 plclib.h
89 |
90 |
91 | 92 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /doc/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/folderclosed.png -------------------------------------------------------------------------------- /doc/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/folderopen.png -------------------------------------------------------------------------------- /doc/html/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2blank.png -------------------------------------------------------------------------------- /doc/html/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2doc.png -------------------------------------------------------------------------------- /doc/html/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2folderclosed.png -------------------------------------------------------------------------------- /doc/html/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2folderopen.png -------------------------------------------------------------------------------- /doc/html/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2lastnode.png -------------------------------------------------------------------------------- /doc/html/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2link.png -------------------------------------------------------------------------------- /doc/html/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2mlastnode.png -------------------------------------------------------------------------------- /doc/html/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2mnode.png -------------------------------------------------------------------------------- /doc/html/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2node.png -------------------------------------------------------------------------------- /doc/html/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2plastnode.png -------------------------------------------------------------------------------- /doc/html/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2pnode.png -------------------------------------------------------------------------------- /doc/html/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2splitbar.png -------------------------------------------------------------------------------- /doc/html/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/ftv2vertline.png -------------------------------------------------------------------------------- /doc/html/functions_func.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Class Members - Functions 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 74 |
75 | 76 |
80 |  All Classes Functions Variables
81 | 82 | 83 |
84 | 87 |
88 | 89 |
90 |   127 |
128 | 129 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /doc/html/functions_vars.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | arduino_stdlib: Class Members - Variables 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 28 | 29 | 30 |
25 |
arduino_stdlib 26 |
27 |
31 |
32 | 33 | 34 | 37 | 60 | 67 | 74 | 86 |
87 | 88 |
92 |  All Classes Functions Variables
93 | 94 | 95 |
96 | 99 |
100 | 101 |
102 |   103 | 104 |

- b -

109 | 110 | 111 |

- c -

133 | 134 | 135 |

- e -

142 | 143 | 144 |

- i -

151 | 152 | 153 |

- l -

159 | 160 | 161 |

- p -

173 | 174 | 175 |

- q -

192 | 193 | 194 |

- r -

203 |
204 | 205 | 210 | 211 | 212 | -------------------------------------------------------------------------------- /doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/nav_f.png -------------------------------------------------------------------------------- /doc/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/nav_g.png -------------------------------------------------------------------------------- /doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/nav_h.png -------------------------------------------------------------------------------- /doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/open.png -------------------------------------------------------------------------------- /doc/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['busy',['BUSY',['../class_s_e_m_a.html#af4df5a7c16c99bfc19f4902046ba26f9',1,'SEMA']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cd',['CD',['../class_c_t_d.html#ade15745623f39829116fb8525297b382',1,'CTD::CD()'],['../class_c_t_u_d.html#a06b58e6714c8f3e6643d9b96834717be',1,'CTUD::CD()']]], 4 | ['claim',['CLAIM',['../class_s_e_m_a.html#a6d50fd4f36d3de131968fc4199e97a68',1,'SEMA']]], 5 | ['clk',['CLK',['../class_r___t_r_i_g.html#a354888f6dbad759f1abbf3fdd0a0bc73',1,'R_TRIG::CLK()'],['../class_f___t_r_i_g.html#abe250229fb5f6c3734eb5a6a232e2aa8',1,'F_TRIG::CLK()']]], 6 | ['ctd',['CTD',['../class_c_t_d.html',1,'CTD'],['../class_c_t_d.html#a70c920a1986050822484cadc287bb7ae',1,'CTD::CTD()']]], 7 | ['ctu',['CTU',['../class_c_t_u.html',1,'CTU'],['../class_c_t_u.html#a73aec9744f48a24011a19d249f4e51de',1,'CTU::CTU()']]], 8 | ['ctud',['CTUD',['../class_c_t_u_d.html',1,'CTUD'],['../class_c_t_u_d.html#a96e38119c51cd43a1c75f74cb7bbe2dc',1,'CTUD::CTUD()']]], 9 | ['cu',['CU',['../class_c_t_u.html#a1ca77d1736c5bc70534af4a98b482f3f',1,'CTU::CU()'],['../class_c_t_u_d.html#a164b62be6fa561c8886a75823908659b',1,'CTUD::CU()']]], 10 | ['cv',['CV',['../class_c_t_u.html#a0e8d9331cc4f9a8100f45bfa2e2634fb',1,'CTU::CV()'],['../class_c_t_d.html#ad9f84c5a683bc2701747f1e8351bb8b0',1,'CTD::CV()'],['../class_c_t_u_d.html#ad28300cf0f2a08ad2c9ee6fff0a4204a',1,'CTUD::CV()']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /doc/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['et',['ET',['../class_t_p.html#a007a9fb0971da76fefd43810c5cc0ef8',1,'TP::ET()'],['../class_t_o_n.html#adf64c0fcf5018f4c20e49966003185ba',1,'TON::ET()'],['../class_t_o_f.html#ace0c91cc206c62a2f774e267a4210aa1',1,'TOF::ET()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5ftrig',['F_TRIG',['../class_f___t_r_i_g.html',1,'F_TRIG'],['../class_f___t_r_i_g.html#ab9d75d228a8576d4a5866587626b0c9d',1,'F_TRIG::F_TRIG()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['in',['IN',['../class_t_p.html#abf05931643d0205dd375b3c92d69bacb',1,'TP::IN()'],['../class_t_o_n.html#a094db3c6705233bbc0e7c510282d3351',1,'TON::IN()'],['../class_t_o_f.html#a93883cdb7b40a16266790edaaf5c7365',1,'TOF::IN()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['load',['LOAD',['../class_c_t_d.html#aaa629d0b3683a926213c38f589c14f4e',1,'CTD::LOAD()'],['../class_c_t_u_d.html#addf53940fd98cd954c5c249f3c1a353b',1,'CTUD::LOAD()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['process',['process',['../class_t_p.html#a9d092fb1cdb4c35df7a54058b9e300ba',1,'TP::process()'],['../class_t_p.html#a14c35aacabbced25a8f529476f420f54',1,'TP::process(boolean in)'],['../class_t_o_n.html#ac38e012a415e93cada3d54e80b123245',1,'TON::process()'],['../class_t_o_n.html#a00e2a9cd0d5576cb7fb9f74d1d07b545',1,'TON::process(boolean in)'],['../class_t_o_f.html#aaa214571b4daf4b953de11027bb76f02',1,'TOF::process()'],['../class_t_o_f.html#a4948e872fe2550eda0bac625d16a2536',1,'TOF::process(boolean in)'],['../class_r___t_r_i_g.html#af0d63ce4f3a41989ff127e0d52f038e3',1,'R_TRIG::process()'],['../class_r___t_r_i_g.html#af2a831b21b80656cd4e25585d940805e',1,'R_TRIG::process(boolean clk)'],['../class_f___t_r_i_g.html#a50728be6f5641d091c75c2bd5a865750',1,'F_TRIG::process()'],['../class_f___t_r_i_g.html#ae90a3b6c8501582d1795761943d19f7f',1,'F_TRIG::process(boolean clk)'],['../class_s_e_m_a.html#acf691410eccec2dafad4f12f9a5e4302',1,'SEMA::process()'],['../class_s_e_m_a.html#a8e8c20a2231d22ee4b31aae82fdb2fae',1,'SEMA::process(boolean claim, boolean release)'],['../class_c_t_u.html#a6453b660e7f6db9831eabbebf7814cfd',1,'CTU::process()'],['../class_c_t_u.html#ab590ec124b49bd6e6420ccb50bb8f1a7',1,'CTU::process(boolean cu, boolean reset)'],['../class_c_t_d.html#ad270814442d956e0690a24394a29d705',1,'CTD::process()'],['../class_c_t_d.html#a306e2f0f4f9b68c4e5555c7c0dfb999a',1,'CTD::process(boolean cd, boolean load)'],['../class_c_t_u_d.html#af4151c12cf8d3a9cd596c07c37356054',1,'CTUD::process()'],['../class_c_t_u_d.html#ad322d3845ddeaa33c048bd60811bd4b5',1,'CTUD::process(boolean cu, boolean cd, boolean reset, boolean load)']]], 4 | ['pt',['PT',['../class_t_p.html#a12b46375a72572c699f3f2396e43a64b',1,'TP::PT()'],['../class_t_o_n.html#a7fa59ffa01c081cc6c1f6f0379d616d0',1,'TON::PT()'],['../class_t_o_f.html#a17d9d8b4fe947a7c2ea90d1df23d78d9',1,'TOF::PT()']]], 5 | ['pv',['PV',['../class_c_t_u.html#a12e9aef6591b14b8c96773fadf39ef59',1,'CTU::PV()'],['../class_c_t_d.html#ae48de1c4b48bf3ffda653c0fc2a0e164',1,'CTD::PV()'],['../class_c_t_u_d.html#aff5f44a7ce5e427e887bca3613a32286',1,'CTUD::PV()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['q',['Q',['../class_t_p.html#ac5074a17ff9502b17238059e09b1816f',1,'TP::Q()'],['../class_t_o_n.html#ae3f41411363357b969628e2cc23d7036',1,'TON::Q()'],['../class_t_o_f.html#a3935bf275e875177ccaa9f92d14eb705',1,'TOF::Q()'],['../class_r___t_r_i_g.html#a85d127c773b82a98f2ac1d0b33824240',1,'R_TRIG::Q()'],['../class_f___t_r_i_g.html#a56548c121c78806a44344a5d928e3a46',1,'F_TRIG::Q()'],['../class_c_t_u.html#a36cd73bb93f1d4c6b59de043729eb911',1,'CTU::Q()'],['../class_c_t_d.html#a590244f1247336358ac65d7fbd96d73c',1,'CTD::Q()']]], 4 | ['qd',['QD',['../class_c_t_u_d.html#a129e260ead540c330ebc10835d65cc61',1,'CTUD']]], 5 | ['qu',['QU',['../class_c_t_u_d.html#ada55c366ad747efc6af3f57be46e6878',1,'CTUD']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['r_5ftrig',['R_TRIG',['../class_r___t_r_i_g.html',1,'R_TRIG'],['../class_r___t_r_i_g.html#af37e2db08790615bac8ba59f67951bb9',1,'R_TRIG::R_TRIG()']]], 4 | ['release',['RELEASE',['../class_s_e_m_a.html#a2660b1bd98ee2aac42e34d10179d6a4f',1,'SEMA']]], 5 | ['reset',['RESET',['../class_c_t_u.html#a704b3a346e50150df241022a63067242',1,'CTU::RESET()'],['../class_c_t_u_d.html#ab88288e28bb006295738b6f3ecce9527',1,'CTUD::RESET()']]], 6 | ['rs',['RS',['../class_r_s.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sema',['SEMA',['../class_s_e_m_a.html',1,'']]], 4 | ['sr',['SR',['../class_s_r.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tof',['TOF',['../class_t_o_f.html',1,'TOF'],['../class_t_o_f.html#a2c7e1d7e4f237e3aeb174650e853d680',1,'TOF::TOF()']]], 4 | ['ton',['TON',['../class_t_o_n.html',1,'TON'],['../class_t_o_n.html#a7f2cc077398ea97c462fd3b42af8317e',1,'TON::TON()']]], 5 | ['tp',['TP',['../class_t_p.html',1,'TP'],['../class_t_p.html#a08928fbde718d113a43dcca52f41a2dd',1,'TP::TP()'],['../class_t_p.html#a1c8080e7403ab14602b49da2f62da702',1,'TP::TP(ulong pt)']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ctd',['CTD',['../class_c_t_d.html',1,'']]], 4 | ['ctu',['CTU',['../class_c_t_u.html',1,'']]], 5 | ['ctud',['CTUD',['../class_c_t_u_d.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/classes_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5ftrig',['F_TRIG',['../class_f___t_r_i_g.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['r_5ftrig',['R_TRIG',['../class_r___t_r_i_g.html',1,'']]], 4 | ['rs',['RS',['../class_r_s.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sema',['SEMA',['../class_s_e_m_a.html',1,'']]], 4 | ['sr',['SR',['../class_s_r.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tof',['TOF',['../class_t_o_f.html',1,'']]], 4 | ['ton',['TON',['../class_t_o_n.html',1,'']]], 5 | ['tp',['TP',['../class_t_p.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/search/close.png -------------------------------------------------------------------------------- /doc/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ctd',['CTD',['../class_c_t_d.html#a70c920a1986050822484cadc287bb7ae',1,'CTD']]], 4 | ['ctu',['CTU',['../class_c_t_u.html#a73aec9744f48a24011a19d249f4e51de',1,'CTU']]], 5 | ['ctud',['CTUD',['../class_c_t_u_d.html#a96e38119c51cd43a1c75f74cb7bbe2dc',1,'CTUD']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/functions_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['f_5ftrig',['F_TRIG',['../class_f___t_r_i_g.html#ab9d75d228a8576d4a5866587626b0c9d',1,'F_TRIG']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/functions_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['process',['process',['../class_t_p.html#a9d092fb1cdb4c35df7a54058b9e300ba',1,'TP::process()'],['../class_t_p.html#a14c35aacabbced25a8f529476f420f54',1,'TP::process(boolean in)'],['../class_t_o_n.html#ac38e012a415e93cada3d54e80b123245',1,'TON::process()'],['../class_t_o_n.html#a00e2a9cd0d5576cb7fb9f74d1d07b545',1,'TON::process(boolean in)'],['../class_t_o_f.html#aaa214571b4daf4b953de11027bb76f02',1,'TOF::process()'],['../class_t_o_f.html#a4948e872fe2550eda0bac625d16a2536',1,'TOF::process(boolean in)'],['../class_r___t_r_i_g.html#af0d63ce4f3a41989ff127e0d52f038e3',1,'R_TRIG::process()'],['../class_r___t_r_i_g.html#af2a831b21b80656cd4e25585d940805e',1,'R_TRIG::process(boolean clk)'],['../class_f___t_r_i_g.html#a50728be6f5641d091c75c2bd5a865750',1,'F_TRIG::process()'],['../class_f___t_r_i_g.html#ae90a3b6c8501582d1795761943d19f7f',1,'F_TRIG::process(boolean clk)'],['../class_s_e_m_a.html#acf691410eccec2dafad4f12f9a5e4302',1,'SEMA::process()'],['../class_s_e_m_a.html#a8e8c20a2231d22ee4b31aae82fdb2fae',1,'SEMA::process(boolean claim, boolean release)'],['../class_c_t_u.html#a6453b660e7f6db9831eabbebf7814cfd',1,'CTU::process()'],['../class_c_t_u.html#ab590ec124b49bd6e6420ccb50bb8f1a7',1,'CTU::process(boolean cu, boolean reset)'],['../class_c_t_d.html#ad270814442d956e0690a24394a29d705',1,'CTD::process()'],['../class_c_t_d.html#a306e2f0f4f9b68c4e5555c7c0dfb999a',1,'CTD::process(boolean cd, boolean load)'],['../class_c_t_u_d.html#af4151c12cf8d3a9cd596c07c37356054',1,'CTUD::process()'],['../class_c_t_u_d.html#ad322d3845ddeaa33c048bd60811bd4b5',1,'CTUD::process(boolean cu, boolean cd, boolean reset, boolean load)']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['r_5ftrig',['R_TRIG',['../class_r___t_r_i_g.html#af37e2db08790615bac8ba59f67951bb9',1,'R_TRIG']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tof',['TOF',['../class_t_o_f.html#a2c7e1d7e4f237e3aeb174650e853d680',1,'TOF']]], 4 | ['ton',['TON',['../class_t_o_n.html#a7f2cc077398ea97c462fd3b42af8317e',1,'TON']]], 5 | ['tp',['TP',['../class_t_p.html#a08928fbde718d113a43dcca52f41a2dd',1,'TP::TP()'],['../class_t_p.html#a1c8080e7403ab14602b49da2f62da702',1,'TP::TP(ulong pt)']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/search/mag_sel.png -------------------------------------------------------------------------------- /doc/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/html/search/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #FSearchBox { 4 | float: left; 5 | } 6 | 7 | #MSearchBox { 8 | white-space : nowrap; 9 | position: absolute; 10 | float: none; 11 | display: inline; 12 | margin-top: 8px; 13 | right: 0px; 14 | width: 170px; 15 | z-index: 102; 16 | background-color: white; 17 | } 18 | 19 | #MSearchBox .left 20 | { 21 | display:block; 22 | position:absolute; 23 | left:10px; 24 | width:20px; 25 | height:19px; 26 | background:url('search_l.png') no-repeat; 27 | background-position:right; 28 | } 29 | 30 | #MSearchSelect { 31 | display:block; 32 | position:absolute; 33 | width:20px; 34 | height:19px; 35 | } 36 | 37 | .left #MSearchSelect { 38 | left:4px; 39 | } 40 | 41 | .right #MSearchSelect { 42 | right:5px; 43 | } 44 | 45 | #MSearchField { 46 | display:block; 47 | position:absolute; 48 | height:19px; 49 | background:url('search_m.png') repeat-x; 50 | border:none; 51 | width:111px; 52 | margin-left:20px; 53 | padding-left:4px; 54 | color: #909090; 55 | outline: none; 56 | font: 9pt Arial, Verdana, sans-serif; 57 | } 58 | 59 | #FSearchBox #MSearchField { 60 | margin-left:15px; 61 | } 62 | 63 | #MSearchBox .right { 64 | display:block; 65 | position:absolute; 66 | right:10px; 67 | top:0px; 68 | width:20px; 69 | height:19px; 70 | background:url('search_r.png') no-repeat; 71 | background-position:left; 72 | } 73 | 74 | #MSearchClose { 75 | display: none; 76 | position: absolute; 77 | top: 4px; 78 | background : none; 79 | border: none; 80 | margin: 0px 4px 0px 0px; 81 | padding: 0px 0px; 82 | outline: none; 83 | } 84 | 85 | .left #MSearchClose { 86 | left: 6px; 87 | } 88 | 89 | .right #MSearchClose { 90 | right: 2px; 91 | } 92 | 93 | .MSearchBoxActive #MSearchField { 94 | color: #000000; 95 | } 96 | 97 | /*---------------- Search filter selection */ 98 | 99 | #MSearchSelectWindow { 100 | display: none; 101 | position: absolute; 102 | left: 0; top: 0; 103 | border: 1px solid #90A5CE; 104 | background-color: #F9FAFC; 105 | z-index: 1; 106 | padding-top: 4px; 107 | padding-bottom: 4px; 108 | -moz-border-radius: 4px; 109 | -webkit-border-top-left-radius: 4px; 110 | -webkit-border-top-right-radius: 4px; 111 | -webkit-border-bottom-left-radius: 4px; 112 | -webkit-border-bottom-right-radius: 4px; 113 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); 114 | } 115 | 116 | .SelectItem { 117 | font: 8pt Arial, Verdana, sans-serif; 118 | padding-left: 2px; 119 | padding-right: 12px; 120 | border: 0px; 121 | } 122 | 123 | span.SelectionMark { 124 | margin-right: 4px; 125 | font-family: monospace; 126 | outline-style: none; 127 | text-decoration: none; 128 | } 129 | 130 | a.SelectItem { 131 | display: block; 132 | outline-style: none; 133 | color: #000000; 134 | text-decoration: none; 135 | padding-left: 6px; 136 | padding-right: 12px; 137 | } 138 | 139 | a.SelectItem:focus, 140 | a.SelectItem:active { 141 | color: #000000; 142 | outline-style: none; 143 | text-decoration: none; 144 | } 145 | 146 | a.SelectItem:hover { 147 | color: #FFFFFF; 148 | background-color: #3D578C; 149 | outline-style: none; 150 | text-decoration: none; 151 | cursor: pointer; 152 | display: block; 153 | } 154 | 155 | /*---------------- Search results window */ 156 | 157 | iframe#MSearchResults { 158 | width: 60ex; 159 | height: 15em; 160 | } 161 | 162 | #MSearchResultsWindow { 163 | display: none; 164 | position: absolute; 165 | left: 0; top: 0; 166 | border: 1px solid #000; 167 | background-color: #EEF1F7; 168 | } 169 | 170 | /* ----------------------------------- */ 171 | 172 | 173 | #SRIndex { 174 | clear:both; 175 | padding-bottom: 15px; 176 | } 177 | 178 | .SREntry { 179 | font-size: 10pt; 180 | padding-left: 1ex; 181 | } 182 | 183 | .SRPage .SREntry { 184 | font-size: 8pt; 185 | padding: 1px 5px; 186 | } 187 | 188 | body.SRPage { 189 | margin: 5px 2px; 190 | } 191 | 192 | .SRChildren { 193 | padding-left: 3ex; padding-bottom: .5em 194 | } 195 | 196 | .SRPage .SRChildren { 197 | display: none; 198 | } 199 | 200 | .SRSymbol { 201 | font-weight: bold; 202 | color: #425E97; 203 | font-family: Arial, Verdana, sans-serif; 204 | text-decoration: none; 205 | outline: none; 206 | } 207 | 208 | a.SRScope { 209 | display: block; 210 | color: #425E97; 211 | font-family: Arial, Verdana, sans-serif; 212 | text-decoration: none; 213 | outline: none; 214 | } 215 | 216 | a.SRSymbol:focus, a.SRSymbol:active, 217 | a.SRScope:focus, a.SRScope:active { 218 | text-decoration: underline; 219 | } 220 | 221 | span.SRScope { 222 | padding-left: 4px; 223 | } 224 | 225 | .SRPage .SRStatus { 226 | padding: 2px 5px; 227 | font-size: 8pt; 228 | font-style: italic; 229 | } 230 | 231 | .SRResult { 232 | display: none; 233 | } 234 | 235 | DIV.searchresults { 236 | margin-left: 10px; 237 | margin-right: 10px; 238 | } 239 | 240 | /*---------------- External search page results */ 241 | 242 | .searchresult { 243 | background-color: #F0F3F8; 244 | } 245 | 246 | .pages b { 247 | color: white; 248 | padding: 5px 5px 3px 5px; 249 | background-image: url("../tab_a.png"); 250 | background-repeat: repeat-x; 251 | text-shadow: 0 1px 1px #000000; 252 | } 253 | 254 | .pages { 255 | line-height: 17px; 256 | margin-left: 4px; 257 | text-decoration: none; 258 | } 259 | 260 | .hl { 261 | font-weight: bold; 262 | } 263 | 264 | #searchresults { 265 | margin-bottom: 20px; 266 | } 267 | 268 | .searchpages { 269 | margin-top: 10px; 270 | } 271 | 272 | -------------------------------------------------------------------------------- /doc/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/search/search_l.png -------------------------------------------------------------------------------- /doc/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/search/search_m.png -------------------------------------------------------------------------------- /doc/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/search/search_r.png -------------------------------------------------------------------------------- /doc/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "bcefilpqrst", 4 | 1: "cfrst", 5 | 2: "cfprt", 6 | 3: "bceilpqr" 7 | }; 8 | 9 | var indexSectionNames = 10 | { 11 | 0: "all", 12 | 1: "classes", 13 | 2: "functions", 14 | 3: "variables" 15 | }; 16 | 17 | var indexSectionLabels = 18 | { 19 | 0: "All", 20 | 1: "Classes", 21 | 2: "Functions", 22 | 3: "Variables" 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /doc/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['busy',['BUSY',['../class_s_e_m_a.html#af4df5a7c16c99bfc19f4902046ba26f9',1,'SEMA']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cd',['CD',['../class_c_t_d.html#ade15745623f39829116fb8525297b382',1,'CTD::CD()'],['../class_c_t_u_d.html#a06b58e6714c8f3e6643d9b96834717be',1,'CTUD::CD()']]], 4 | ['claim',['CLAIM',['../class_s_e_m_a.html#a6d50fd4f36d3de131968fc4199e97a68',1,'SEMA']]], 5 | ['clk',['CLK',['../class_r___t_r_i_g.html#a354888f6dbad759f1abbf3fdd0a0bc73',1,'R_TRIG::CLK()'],['../class_f___t_r_i_g.html#abe250229fb5f6c3734eb5a6a232e2aa8',1,'F_TRIG::CLK()']]], 6 | ['cu',['CU',['../class_c_t_u.html#a1ca77d1736c5bc70534af4a98b482f3f',1,'CTU::CU()'],['../class_c_t_u_d.html#a164b62be6fa561c8886a75823908659b',1,'CTUD::CU()']]], 7 | ['cv',['CV',['../class_c_t_u.html#a0e8d9331cc4f9a8100f45bfa2e2634fb',1,'CTU::CV()'],['../class_c_t_d.html#ad9f84c5a683bc2701747f1e8351bb8b0',1,'CTD::CV()'],['../class_c_t_u_d.html#ad28300cf0f2a08ad2c9ee6fff0a4204a',1,'CTUD::CV()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['et',['ET',['../class_t_p.html#a007a9fb0971da76fefd43810c5cc0ef8',1,'TP::ET()'],['../class_t_o_n.html#adf64c0fcf5018f4c20e49966003185ba',1,'TON::ET()'],['../class_t_o_f.html#ace0c91cc206c62a2f774e267a4210aa1',1,'TOF::ET()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['in',['IN',['../class_t_p.html#abf05931643d0205dd375b3c92d69bacb',1,'TP::IN()'],['../class_t_o_n.html#a094db3c6705233bbc0e7c510282d3351',1,'TON::IN()'],['../class_t_o_f.html#a93883cdb7b40a16266790edaaf5c7365',1,'TOF::IN()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['load',['LOAD',['../class_c_t_d.html#aaa629d0b3683a926213c38f589c14f4e',1,'CTD::LOAD()'],['../class_c_t_u_d.html#addf53940fd98cd954c5c249f3c1a353b',1,'CTUD::LOAD()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pt',['PT',['../class_t_p.html#a12b46375a72572c699f3f2396e43a64b',1,'TP::PT()'],['../class_t_o_n.html#a7fa59ffa01c081cc6c1f6f0379d616d0',1,'TON::PT()'],['../class_t_o_f.html#a17d9d8b4fe947a7c2ea90d1df23d78d9',1,'TOF::PT()']]], 4 | ['pv',['PV',['../class_c_t_u.html#a12e9aef6591b14b8c96773fadf39ef59',1,'CTU::PV()'],['../class_c_t_d.html#ae48de1c4b48bf3ffda653c0fc2a0e164',1,'CTD::PV()'],['../class_c_t_u_d.html#aff5f44a7ce5e427e887bca3613a32286',1,'CTUD::PV()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['q',['Q',['../class_t_p.html#ac5074a17ff9502b17238059e09b1816f',1,'TP::Q()'],['../class_t_o_n.html#ae3f41411363357b969628e2cc23d7036',1,'TON::Q()'],['../class_t_o_f.html#a3935bf275e875177ccaa9f92d14eb705',1,'TOF::Q()'],['../class_r___t_r_i_g.html#a85d127c773b82a98f2ac1d0b33824240',1,'R_TRIG::Q()'],['../class_f___t_r_i_g.html#a56548c121c78806a44344a5d928e3a46',1,'F_TRIG::Q()'],['../class_c_t_u.html#a36cd73bb93f1d4c6b59de043729eb911',1,'CTU::Q()'],['../class_c_t_d.html#a590244f1247336358ac65d7fbd96d73c',1,'CTD::Q()']]], 4 | ['qd',['QD',['../class_c_t_u_d.html#a129e260ead540c330ebc10835d65cc61',1,'CTUD']]], 5 | ['qu',['QU',['../class_c_t_u_d.html#ada55c366ad747efc6af3f57be46e6878',1,'CTUD']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/html/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['release',['RELEASE',['../class_s_e_m_a.html#a2660b1bd98ee2aac42e34d10179d6a4f',1,'SEMA']]], 4 | ['reset',['RESET',['../class_c_t_u.html#a704b3a346e50150df241022a63067242',1,'CTU::RESET()'],['../class_c_t_u_d.html#ab88288e28bb006295738b6f3ecce9527',1,'CTUD::RESET()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/splitbar.png -------------------------------------------------------------------------------- /doc/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/sync_off.png -------------------------------------------------------------------------------- /doc/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/sync_on.png -------------------------------------------------------------------------------- /doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/tab_a.png -------------------------------------------------------------------------------- /doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/tab_b.png -------------------------------------------------------------------------------- /doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/tab_h.png -------------------------------------------------------------------------------- /doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stlehmann/arduino_plclib/d438feb167ebee0a72a3c5618ab0c44af92f14d0/doc/html/tab_s.png -------------------------------------------------------------------------------- /doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /examples/counter/ctd/ctd.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | #define X1 3 4 | 5 | CTD ctd; 6 | R_TRIG rtrig; 7 | 8 | void setup() { 9 | pinMode(X0, INPUT_PULLUP); 10 | pinMode(X1, INPUT_PULLUP); 11 | Serial.begin(9600); 12 | ctd.PV = 10; //set upper limit of counter 13 | } 14 | 15 | void loop() { 16 | boolean x0 = !digitalRead(X0); //count up 17 | boolean x1 = !digitalRead(X1); //reset 18 | ctd.process(x0, x1); 19 | rtrig.process(x0 || x1); 20 | 21 | if (rtrig.Q) { 22 | Serial.print("Counter: "); 23 | Serial.print(ctd.CV); 24 | Serial.print(", "); 25 | Serial.print("Output: "); 26 | Serial.println(ctd.Q); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /examples/counter/ctu/ctu.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | #define X1 3 4 | 5 | CTU ctu; 6 | R_TRIG rtrig; 7 | 8 | void setup() { 9 | pinMode(X0, INPUT_PULLUP); 10 | pinMode(X1, INPUT_PULLUP); 11 | Serial.begin(9600); 12 | ctu.PV = 10; //set upper limit of counter 13 | } 14 | 15 | void loop() { 16 | boolean x0 = !digitalRead(X0); //count up 17 | boolean x1 = !digitalRead(X1); //reset 18 | ctu.process(x0, x1); 19 | rtrig.process(x0 || x1); 20 | 21 | if (rtrig.Q) { 22 | Serial.print("Counter: "); 23 | Serial.print(ctu.CV); 24 | Serial.print(", "); 25 | Serial.print("Output: "); 26 | Serial.println(ctu.Q); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /examples/counter/ctud/ctud.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | #define X1 3 4 | 5 | CTUD ctud; 6 | R_TRIG rtrig; 7 | 8 | void setup() { 9 | pinMode(X0, INPUT_PULLUP); 10 | pinMode(X1, INPUT_PULLUP); 11 | Serial.begin(9600); 12 | ctud.PV = 10; //set upper limit of counter 13 | } 14 | 15 | void loop() { 16 | boolean x0 = !digitalRead(X0); //count up 17 | boolean x1 = !digitalRead(X1); //count down 18 | boolean rst = x0 && x1; //reset 19 | 20 | ctud.CU = x0; 21 | ctud.CD = x1; 22 | ctud.RESET = rst; 23 | ctud.process(); 24 | rtrig.process(x0 || x1 || rst); 25 | 26 | if (rtrig.Q) { 27 | Serial.print("Counter: "); 28 | Serial.print(ctud.CV); 29 | Serial.print(", QU: "); 30 | Serial.print(ctud.QU); 31 | Serial.print(", QD: "); 32 | Serial.println(ctud.QD); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/edge_detection/edge_detection.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | 4 | R_TRIG rtrig; //detect rising edges 5 | F_TRIG ftrig; //detect falling edges 6 | 7 | void setup() { 8 | pinMode(X0, INPUT_PULLUP); 9 | Serial.begin(9600); 10 | } 11 | 12 | void loop() { 13 | boolean x0 = !digitalRead(X0); 14 | rtrig.process(x0); 15 | ftrig.process(x0); 16 | if (rtrig.Q) { 17 | Serial.println("This was a rising edge."); 18 | } 19 | if (ftrig.Q) { 20 | Serial.println("This was a falling edge."); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/latches/rs_latch/rs_latch.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | #define X1 3 4 | 5 | RS rs_latch; 6 | R_TRIG rtrig; 7 | F_TRIG ftrig; 8 | 9 | void setup() { 10 | pinMode(X0, INPUT_PULLUP); 11 | pinMode(X1, INPUT_PULLUP); 12 | Serial.begin(9600); 13 | } 14 | 15 | void loop() { 16 | boolean x0 = !digitalRead(X0); //set switch 17 | boolean x1 = !digitalRead(X1); //reset switch 18 | 19 | rs_latch.process(x0, x1); 20 | rtrig.process(rs_latch.Q1); 21 | ftrig.process(rs_latch.Q1); 22 | 23 | if (rtrig.Q) { 24 | Serial.println("On"); 25 | } 26 | if (ftrig.Q) { 27 | Serial.println("Off"); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/latches/semaphore/semaphore.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | #define X1 3 4 | 5 | SEMA semaphore; 6 | R_TRIG trigger; 7 | 8 | void setup() { 9 | pinMode(X0, INPUT_PULLUP); 10 | pinMode(X1, INPUT_PULLUP); 11 | Serial.begin(9600); 12 | } 13 | 14 | void loop() { 15 | boolean x0 = !digitalRead(X0); //claim 16 | boolean x1 = !digitalRead(X1); //release 17 | boolean was_busy = semaphore.BUSY; 18 | semaphore.CLAIM = x0; 19 | semaphore.RELEASE = x1; 20 | semaphore.process(); 21 | trigger.process(x0 || x1); 22 | if (trigger.Q) { 23 | if (x0) { 24 | if (semaphore.BUSY) { 25 | Serial.println("Resource is busy."); 26 | } 27 | else { 28 | Serial.println("Resource claimed successfully."); 29 | } 30 | } 31 | if (x1) { 32 | if (was_busy) { 33 | Serial.println("Resource released."); 34 | } 35 | else { 36 | Serial.println("Nothing to release."); 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /examples/latches/sr_latch/sr_latch.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | #define X1 3 4 | 5 | SR sr_latch; 6 | R_TRIG rtrig; 7 | F_TRIG ftrig; 8 | 9 | void setup() { 10 | pinMode(X0, INPUT_PULLUP); 11 | pinMode(X1, INPUT_PULLUP); 12 | Serial.begin(9600); 13 | } 14 | 15 | void loop() { 16 | boolean x0 = !digitalRead(X0); //set switch 17 | boolean x1 = !digitalRead(X1); //reset switch 18 | 19 | sr_latch.process(x0, x1); 20 | rtrig.process(sr_latch.Q1); 21 | ftrig.process(sr_latch.Q1); 22 | 23 | if (rtrig.Q) { 24 | Serial.println("On"); 25 | } 26 | if (ftrig.Q) { 27 | Serial.println("Off"); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/timer/tof/tof.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | #define X0 2 3 | 4 | TOF tof(1000); // Initialise ton delay object 5 | F_TRIG ftrig; 6 | 7 | void setup() { 8 | Serial.begin(9600); 9 | pinMode(X0, INPUT_PULLUP); 10 | } 11 | 12 | void loop() { 13 | boolean x0 = !digitalRead(X0); 14 | tof.process(x0); 15 | ftrig.process(tof.Q); 16 | 17 | if (ftrig.Q) { 18 | Serial.println("I waited 1 second."); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/timer/ton/ton.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | 3 | #define X0 2 4 | 5 | TON ton(1000); // Initialise ton delay object 6 | R_TRIG rtrig; 7 | 8 | void setup() { 9 | Serial.begin(9600); 10 | pinMode(X0, INPUT_PULLUP); 11 | } 12 | 13 | void loop() { 14 | boolean x0 = !digitalRead(X0); 15 | 16 | ton.process(x0); 17 | rtrig.process(ton.Q); 18 | 19 | if (rtrig.Q) { 20 | Serial.println("I waited 1 second."); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/timer/tp/tp.ino: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | 3 | #define X0 2 4 | 5 | TP tp(1000); // Initialise ton delay object 6 | R_TRIG rtrig; 7 | F_TRIG ftrig; 8 | 9 | void setup() { 10 | Serial.begin(9600); 11 | pinMode(X0, INPUT_PULLUP); 12 | } 13 | 14 | void loop() { 15 | boolean x0 = !digitalRead(X0); 16 | 17 | tp.process(x0); 18 | rtrig.process(tp.Q); 19 | ftrig.process(tp.Q); 20 | 21 | if (rtrig.Q) { 22 | Serial.println("Impulse comming."); 23 | } 24 | if (ftrig.Q) { 25 | Serial.println("Impulse going."); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /keywords.txt: -------------------------------------------------------------------------------- 1 | # Syntax highlighting for plc_standardlib 2 | 3 | # Library name - KEYWORD1 4 | plc_standardlib KEYWORD1 5 | 6 | # TYPE names - KEYWORD1 7 | TON KEYWORD1 8 | TOF KEYWORD1 9 | R_TRIG KEYWORD1 10 | F_TRIG KEYWORD1 11 | SR KEYWORD1 12 | RS KEYWORD1 13 | -------------------------------------------------------------------------------- /plclib.cpp: -------------------------------------------------------------------------------- 1 | #include "plclib.h" 2 | 3 | /* 4 | TP 5 | */ 6 | TP::TP() { 7 | IN = false; 8 | PT = 0; 9 | Q = false; 10 | ET = 0; 11 | } 12 | 13 | TP::TP(ulong pt) { 14 | IN = false; 15 | PT = pt; 16 | Q = false; 17 | ET = 0; 18 | t0 = 0; 19 | } 20 | 21 | boolean TP::process() { 22 | if (IN) { 23 | if (t0==0) { 24 | t0 = millis(); 25 | } 26 | } 27 | if (t0 > 0) { 28 | ET = millis() - t0; 29 | if (ET >= PT) { 30 | ET = PT; 31 | } 32 | } 33 | if (!IN && ET == PT) { 34 | t0 = 0; 35 | ET = 0; 36 | } 37 | Q = ET > 0 && ET < PT; 38 | return Q; 39 | } 40 | 41 | boolean TP::process(boolean in) { 42 | IN = in; 43 | return process(); 44 | } 45 | 46 | /* 47 | TON 48 | */ 49 | TON::TON(ulong pt) { 50 | IN = false; 51 | PT = pt; 52 | ET = 0; 53 | Q = false; 54 | t0 = 0; 55 | } 56 | 57 | boolean TON::process() { 58 | if (!IN) { 59 | ET = 0; 60 | t0 = 0; 61 | Q = false; 62 | } 63 | else { 64 | if (t0 == 0) { 65 | t0 = millis(); 66 | } 67 | ET = millis() - t0; 68 | if (ET >= PT) { 69 | ET = PT; 70 | Q = true; 71 | } 72 | } 73 | return Q; 74 | } 75 | 76 | boolean TON::process(boolean in) { 77 | IN = in; 78 | return process(); 79 | } 80 | 81 | /* 82 | TOF 83 | */ 84 | TOF::TOF(ulong pt) { 85 | IN = false; 86 | PT = pt; 87 | ET = 0; 88 | Q = false; 89 | t0 = 0; 90 | } 91 | 92 | boolean TOF::process() { 93 | if (IN) { 94 | ET = 0; 95 | t0 = 0; 96 | Q = true; 97 | } 98 | else { 99 | if (t0 == 0) { 100 | t0 = millis(); 101 | } 102 | ET = millis() - t0; 103 | } 104 | if (ET >= PT) { 105 | ET = PT; 106 | Q = false; 107 | } 108 | return Q; 109 | } 110 | 111 | boolean TOF::process(boolean in) { 112 | IN = in; 113 | return process(); 114 | } 115 | 116 | /* 117 | R_TRIG 118 | */ 119 | R_TRIG::R_TRIG() { 120 | CLK = false; 121 | Q = false; 122 | m = false; 123 | } 124 | 125 | boolean R_TRIG::process() { 126 | Q = CLK && !m; 127 | m = CLK; 128 | return Q; 129 | } 130 | 131 | boolean R_TRIG::process(boolean clk) { 132 | CLK = clk; 133 | return process(); 134 | } 135 | 136 | /* 137 | F_TRIG 138 | */ 139 | F_TRIG::F_TRIG() { 140 | CLK = false; 141 | Q = false; 142 | m = false; 143 | } 144 | 145 | boolean F_TRIG::process() { 146 | Q = !CLK && m; 147 | m = CLK; 148 | return Q; 149 | } 150 | 151 | boolean F_TRIG::process(boolean clk) { 152 | CLK = clk; 153 | return process(); 154 | } 155 | 156 | /* 157 | SR 158 | */ 159 | SR::SR() { 160 | SET1 = false; 161 | RESET = false; 162 | Q1 = false; 163 | } 164 | 165 | boolean SR::process() { 166 | if (SET1) { 167 | Q1 = true; 168 | } 169 | else { 170 | if (RESET) { 171 | Q1 = false; 172 | } 173 | } 174 | return Q1; 175 | } 176 | 177 | boolean SR::process(boolean set1, boolean reset) { 178 | SET1 = set1; 179 | RESET = reset; 180 | return process(); 181 | } 182 | 183 | /* 184 | RS 185 | */ 186 | RS::RS() { 187 | SET = false; 188 | RESET1 = false; 189 | Q1 = false; 190 | } 191 | 192 | boolean RS::process() { 193 | if (RESET1) { 194 | Q1 = false; 195 | } 196 | else { 197 | if (SET) { 198 | Q1 = true; 199 | } 200 | } 201 | return Q1; 202 | } 203 | 204 | boolean RS::process(boolean set, boolean reset1) { 205 | SET = set; 206 | RESET1 = reset1; 207 | return process(); 208 | } 209 | 210 | /* 211 | SEMA 212 | */ 213 | SEMA::SEMA() { 214 | CLAIM = false; 215 | RELEASE = false; 216 | BUSY = false; 217 | x = false; 218 | } 219 | 220 | boolean SEMA::process() { 221 | BUSY = x; 222 | if (CLAIM) { 223 | x = true; 224 | } 225 | else { 226 | if (RELEASE) { 227 | BUSY = false; 228 | x = false; 229 | } 230 | } 231 | return BUSY; 232 | } 233 | 234 | boolean SEMA::process(boolean claim, boolean release) { 235 | CLAIM = claim; 236 | RELEASE = release; 237 | return process(); 238 | } 239 | 240 | /* 241 | CTU 242 | */ 243 | CTU::CTU(uint pv) { 244 | CU = false; 245 | RESET = false; 246 | Q = false; 247 | PV = pv; 248 | CV = 0; 249 | cu_old = false; 250 | } 251 | 252 | boolean CTU::process() { 253 | if (RESET) { 254 | CV = 0; 255 | } 256 | if (CU &! cu_old) { 257 | CV++; 258 | } 259 | Q = (CV >= PV); 260 | cu_old = CU; 261 | return Q; 262 | } 263 | 264 | boolean CTU::process(boolean cu, boolean reset) { 265 | CU = cu; 266 | RESET = reset; 267 | return process(); 268 | } 269 | 270 | /* 271 | CTD 272 | */ 273 | CTD::CTD(uint pv) { 274 | CD = false; 275 | LOAD = false; 276 | Q = false; 277 | PV = pv; 278 | CV = 0; 279 | cd_old = false; 280 | } 281 | 282 | boolean CTD::process() { 283 | if (LOAD) { 284 | CV = PV; 285 | } 286 | if (CD &! cd_old) { 287 | if (CV > 0) { 288 | CV--; 289 | } 290 | } 291 | Q = (CV == 0); 292 | cd_old = CD; 293 | return Q; 294 | } 295 | 296 | boolean CTD::process(boolean cd, boolean load) { 297 | CD = cd; 298 | LOAD = load; 299 | return process(); 300 | } 301 | 302 | /* 303 | CTUD 304 | */ 305 | CTUD::CTUD(uint pv) { 306 | CU = false; 307 | CD = false; 308 | RESET = false; 309 | LOAD = false; 310 | QU = false; 311 | QD = false; 312 | PV = pv; 313 | CV = 0; 314 | cu_old = false; 315 | cd_old = false; 316 | } 317 | 318 | boolean CTUD::process() { 319 | if (RESET) { 320 | CV = 0; 321 | } 322 | else if (LOAD) { 323 | CV = PV; 324 | } 325 | if (CU &! cu_old) { 326 | CV++; 327 | } 328 | if (CD &! cd_old) { 329 | if (CV > 0) { 330 | CV--; 331 | } 332 | } 333 | QU = (CV >= PV); 334 | QD = (CV == 0); 335 | cu_old = CU; 336 | cd_old = CD; 337 | } 338 | 339 | boolean CTUD::process(boolean cu, boolean cd, boolean reset, boolean load) { 340 | CU = cu; 341 | CD = cd; 342 | RESET = reset; 343 | LOAD = load; 344 | return process(); 345 | } 346 | --------------------------------------------------------------------------------