tests/svghmi/py_ext_0@py_ext/pyfile.xml
branchsvghmi
changeset 3069 a9b03c2634c5
parent 3065 c369a742443d
child 3151 8e5d383a58cb
equal deleted inserted replaced
3068:81758c94f3df 3069:a9b03c2634c5
    32         newdata = json.loads(newstr)
    32         newdata = json.loads(newstr)
    33         args = newdata[u'args']
    33         args = newdata[u'args']
    34         range_feedback = newdata[u'range']
    34         range_feedback = newdata[u'range']
    35         slider_position = newdata[u'position']
    35         slider_position = newdata[u'position']
    36         visible = newdata[u'visible']
    36         visible = newdata[u'visible']
       
    37         extra = newdata[u'extra']
    37         options = newdata[u'options']
    38         options = newdata[u'options']
    38 
    39 
    39         if len(options) == 2 :
    40         if len(options) == 2 :
    40             action, alarmid = options
    41             action, alarmid = options
    41             if action == "onClick[acknowledge]":
    42             if action == "onClick[acknowledge]":
    42                 AlarmIndex[int(alarmid)][2] = "ack"
    43                 AlarmIndex[int(alarmid)][2] = "ack"
    43 
    44 
    44         answer = self.renderTable(range_feedback, slider_position, visible)
    45         answer = self.renderTable(range_feedback, slider_position, visible, extra)
    45         janswer = json.dumps(answer)
    46         janswer = json.dumps(answer)
    46         return janswer
    47         return janswer
    47 
    48 
    48     def renderTable(self, old_range, old_position, visible):
    49     def renderTable(self, old_range, old_position, visible, extra):
    49         new_range = len(Alarms)
    50         if len(extra) > 0 and extra[0] != "":
       
    51             fAlarms = [alrm for alrm in Alarms if alrm[1].find(extra[0])!=-1]
       
    52         else:
       
    53             fAlarms = Alarms
       
    54         new_range = len(fAlarms)
    50         delta = new_range - visible
    55         delta = new_range - visible
    51         new_position = 0 if delta <= 0 else delta if old_position > delta else old_position
    56         new_position = 0 if delta <= 0 else delta if old_position > delta else old_position
    52         new_visible = new_range if delta <= 0 else visible
    57         new_visible = new_range if delta <= 0 else visible
    53         
    58         
    54         visible_alarms = []
    59         visible_alarms = []
    55         for ts, text, status, alarmid in Alarms[new_position:new_position + new_visible]:
    60         for ts, text, status, alarmid in fAlarms[new_position:new_position + new_visible]:
    56             visible_alarms.append({
    61             visible_alarms.append({
    57                 "time": time.ctime(ts),
    62                 "time": time.ctime(ts),
    58                 "text": text, # TODO translate text
    63                 "text": text, # TODO translate text
    59                 "status": status,
    64                 "status": status,
    60                 "alarmid": alarmid
    65                 "alarmid": alarmid