diff -r cce8d5662738 -r 364320323b4d PLCControler.py --- a/PLCControler.py Thu Jun 21 10:23:26 2007 +0200 +++ b/PLCControler.py Mon Jun 25 18:57:14 2007 +0200 @@ -25,12 +25,15 @@ from minixsv import pyxsval import cPickle import os,sys,re +from datetime import * from plcopen import plcopen from plcopen.structures import * from graphics.GraphicCommons import * from PLCGenerator import * +duration_model = re.compile("(?:([0-9]{1,2})h)?(?:([0-9]{1,2})m)?(?:([0-9]{1,2})s)?(?:([0-9]{1,3})ms)?") + [ITEM_UNEDITABLE, ITEM_PROJECT, ITEM_POU, ITEM_CLASS, ITEM_VARIABLE, ITEM_TRANSITION, ITEM_ACTION, ITEM_CONFIGURATION, ITEM_RESOURCE] = range(9) @@ -1776,8 +1779,16 @@ new_task.setName(task["Name"]) if task["Single"] != "": new_task.setSingle(task["Single"]) - if task["Interval"] != "": - new_task.setInterval(task["Interval"]) + result = duration_model.match(task["Interval"]).groups() + if reduce(lambda x, y: x or y != None, result): + values = [] + for value in result: + if value != None: + values.append(int(value)) + else: + values.append(0) + values[3] = values[3] * 1000 + new_task.setInterval(time(*values)) new_task.priority.setValue(int(task["Priority"])) if task["Name"] != "": task_list[task["Name"]] = new_task @@ -1807,7 +1818,16 @@ new_task["Single"] = "" interval = task.getInterval() if interval: - new_task["Interval"] = interval + text = "" + if interval.hour != 0: + text += "%dh"%interval.hour + if interval.minute != 0: + text += "%dm"%interval.minute + if interval.second != 0: + text += "%ds"%interval.second + if interval.microsecond != 0: + text += "%dms"%(interval.microsecond / 1000) + new_task["Interval"] = text else: new_task["Interval"] = "" new_task["Priority"] = str(task.priority.getValue())