139 "DT": generate_datetime, |
139 "DT": generate_datetime, |
140 "TOD": generate_timeofday, |
140 "TOD": generate_timeofday, |
141 "STRING": lambda v: "'%s'" % v, |
141 "STRING": lambda v: "'%s'" % v, |
142 "WSTRING": lambda v: '"%s"' % v, |
142 "WSTRING": lambda v: '"%s"' % v, |
143 "REAL": lambda v: "%.6g" % v, |
143 "REAL": lambda v: "%.6g" % v, |
144 "LREAL": lambda v: "%.6g" % v, |
144 "LREAL": lambda v: "%.6g" % v} |
145 "BOOL": lambda v: v} |
|
146 |
145 |
147 #------------------------------------------------------------------------------- |
146 #------------------------------------------------------------------------------- |
148 # Debug Data Consumer Class |
147 # Debug Data Consumer Class |
149 #------------------------------------------------------------------------------- |
148 #------------------------------------------------------------------------------- |
150 |
149 |
196 Set value IEC data type |
195 Set value IEC data type |
197 @param data_type: Value IEC data type |
196 @param data_type: Value IEC data type |
198 """ |
197 """ |
199 self.DataType = data_type |
198 self.DataType = data_type |
200 |
199 |
201 def NewValue(self, tick, value, forced=False): |
200 def NewValue(self, tick, value, forced=False, raw_bool=True): |
202 """ |
201 """ |
203 Function called by debug thread when a new debug value is available |
202 Function called by debug thread when a new debug value is available |
204 @param tick: PLC tick when value was captured |
203 @param tick: PLC tick when value was captured |
205 @param value: Value captured |
204 @param value: Value captured |
206 @param forced: Forced flag, True if value is forced (default: False) |
205 @param forced: Forced flag, True if value is forced (default: False) |
|
206 @param raw_bool: Bool values must be treated rawly (default: True) |
207 """ |
207 """ |
208 # Translate value to IEC literal |
208 # Translate value to IEC literal |
209 value = TYPE_TRANSLATOR.get(self.DataType, str)(value) |
209 if self.DataType != "BOOL" or not raw_bool: |
|
210 value = TYPE_TRANSLATOR.get(self.DataType, str)(value) |
210 |
211 |
211 # Store value and forced flag when value update is inhibited |
212 # Store value and forced flag when value update is inhibited |
212 if self.Inhibited: |
213 if self.Inhibited: |
213 self.LastValue = value |
214 self.LastValue = value |
214 self.LastForced = forced |
215 self.LastForced = forced |