37 from formless import configurable |
37 from formless import configurable |
38 from twisted.internet import reactor |
38 from twisted.internet import reactor |
39 |
39 |
40 import util.paths as paths |
40 import util.paths as paths |
41 from runtime.loglevels import LogLevels, LogLevelsDict |
41 from runtime.loglevels import LogLevels, LogLevelsDict |
|
42 from runtime import MainWorker, GetPLCObjectSingleton |
42 |
43 |
43 PAGE_TITLE = 'Beremiz Runtime Web Interface' |
44 PAGE_TITLE = 'Beremiz Runtime Web Interface' |
44 |
45 |
45 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?> |
46 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?> |
46 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |
47 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |
215 sendLogMessage = annotate.autocallable(sendLogMessage, |
216 sendLogMessage = annotate.autocallable(sendLogMessage, |
216 label=_( |
217 label=_( |
217 "Send a message to the log"), |
218 "Send a message to the log"), |
218 action=_("Send")) |
219 action=_("Send")) |
219 |
220 |
|
221 # pylint: disable=no-self-argument |
|
222 def restartOrResetPLC( |
|
223 ctx=annotate.Context(), |
|
224 action=annotate.Choice(["Restart", "Reset"], |
|
225 required=True, |
|
226 label=_("Action"))): |
|
227 pass |
|
228 |
|
229 restartOrResetPLC = annotate.autocallable(restartOrResetPLC, |
|
230 label=_( |
|
231 "Restart or Reset"), |
|
232 action=_("Do")) |
220 |
233 |
221 customSettingsURLs = { |
234 customSettingsURLs = { |
222 } |
235 } |
223 |
236 |
224 extensions_settings_od = collections.OrderedDict() |
237 extensions_settings_od = collections.OrderedDict() |
282 """ |
295 """ |
283 return ConfigurableSettings |
296 return ConfigurableSettings |
284 |
297 |
285 def sendLogMessage(self, level, message, **kwargs): |
298 def sendLogMessage(self, level, message, **kwargs): |
286 level = LogLevelsDict[level] |
299 level = LogLevelsDict[level] |
287 if _PySrv.plcobj is not None: |
300 GetPLCObjectSingleton().LogMessage( |
288 _PySrv.plcobj.LogMessage( |
301 level, "Web form log message: " + message) |
289 level, "Web form log message: " + message) |
302 |
|
303 def restartOrResetPLC(self, action, **kwargs): |
|
304 if(action == "Reset"): |
|
305 GetPLCObjectSingleton().RepairPLC() |
|
306 else: |
|
307 MainWorker.quit() |
|
308 |
|
309 |
290 |
310 |
291 def locateChild(self, ctx, segments): |
311 def locateChild(self, ctx, segments): |
292 if segments[0] in customSettingsURLs: |
312 if segments[0] in customSettingsURLs: |
293 return customSettingsURLs[segments[0]](ctx, segments) |
313 return customSettingsURLs[segments[0]](ctx, segments) |
294 return super(SettingsPage, self).locateChild(ctx, segments) |
314 return super(SettingsPage, self).locateChild(ctx, segments) |