def post(self): user_data, rqmsg, msg, user_uuid = yield self.check_arguments( msgws.rqEluDataGet(), None) if user_data is not None: if user_data['user_auth'] in libiisi.can_read: # 验证用户可操作的设备id yield self.update_cache('r', user_uuid) if 0 in user_data['area_r'] or user_data['is_buildin'] == 1: rtu_ids = list(rqmsg.tml_id) else: rtu_ids = self.check_tml_r(user_uuid, list(rqmsg.tml_id)) if len(rtu_ids) == 0: msg.head.if_st = 11 else: yield self.update_cache() for tml_id in rtu_ids: phy_id, fid, tml_name = self.get_phy_info(tml_id) if phy_id == -1: continue if fid > 0: addr = self.get_phy_list([fid]) cid = phy_id tra = 2 else: addr = [phy_id] cid = 1 tra = 1 tcsmsg = libiisi.initRtuProtobuf(cmd='wlst.elu.6259', addr=list(addr), cid=cid, tra=tra) libiisi.send_to_zmq_pub( 'tcs.req.{1}.{0}'.format(tcsmsg.head.cmd, libiisi.cfg_tcs_port), tcsmsg.SerializeToString()) tcsmsg = libiisi.initRtuProtobuf(cmd='wlst.elu.6260', addr=list(addr), cid=cid, tra=tra) libiisi.send_to_zmq_pub( 'tcs.req.{1}.{0}'.format(tcsmsg.head.cmd, libiisi.cfg_tcs_port), tcsmsg.SerializeToString()) else: msg.head.if_st = 11 self.write(mx.code_pb2(msg, self._go_back_format)) self.finish() del msg, rqmsg, user_data, user_uuid
def post(self): user_data, rqmsg, msg, user_uuid = yield self.check_arguments( msgws.rqEluCtl(), None) if user_data is not None: if user_data['user_auth'] in libiisi.can_read & libiisi.can_exec: # 验证用户可操作的设备id yield self.update_cache('r', user_uuid) if 0 in user_data['area_r'] or user_data['is_buildin'] == 1: rtu_ids = list(rqmsg.tml_id) else: rtu_ids = self.check_tml_r(user_uuid, list(rqmsg.tml_id)) if len(rtu_ids) == 0: msg.head.if_st = 11 else: yield self.update_cache() for tml_id in rtu_ids: phy_id, fid, tml_name = self.get_phy_info(tml_id) if phy_id == -1: continue if fid > 0: addr = self.get_phy_list([fid]) cid = phy_id tra = 2 else: addr = [phy_id] cid = 1 tra = 1 tcsmsg = libiisi.initRtuProtobuf(cmd='wlst.elu.6257', addr=list(addr), cid=cid, tra=tra) lp_do = [] i = 0 for loop in range(len(rqmsg.loop_id)): if i == 8: break lp_do.append(loop if loop <= 2 else 2) if len(lp_do) < 8: lp_do.extend([2] * (8 - len(lp_do))) tcsmsg.wlst_tml.wlst_elu_6257.opt_do.extend(lp_do) libiisi.send_to_zmq_pub( 'tcs.req.{1}.{0}'.format(tcsmsg.head.cmd, libiisi.cfg_tcs_port), tcsmsg.SerializeToString()) else: msg.head.if_st = 11 self.write(mx.code_pb2(msg, self._go_back_format)) self.finish() del msg, rqmsg, user_data, user_uuid
def post(self): user_data, rqmsg, msg, user_uuid = yield self.check_arguments( msgws.rqRtuVerGet(), None) env = False if user_data is not None: try: tver = int(self.get_argument('tver')) except: tver = 1 if user_data['user_auth'] in libiisi.can_read: # 验证用户可操作的设备id yield self.update_cache('r', user_uuid) if 0 in user_data['area_r'] or user_data['is_buildin'] == 1: rtu_ids = ','.join( [str(a) for a in self.get_phy_list(rqmsg.tml_id)]) else: rtu_ids = ','.join([ str(a) for a in self.get_phy_list( self.check_tml_r(user_uuid, list(rqmsg.tml_id))) ]) if len(rtu_ids) == 0: msg.head.if_st = 11 else: if tver == 1: tcsmsg = libiisi.initRtuJson(2, 7, 1, 1, 1, 'wlst.rtu.5c00', self.request.remote_ip, 0, rtu_ids, dict()) # libiisi.set_to_send(tcsmsg, 0, False) libiisi.send_to_zmq_pub( 'tcs.req.{0}.wlst.rtu.5c00'.format( libiisi.cfg_tcs_port), json.dumps(tcsmsg, separators=(',', ':')).lower()) elif tver == 2: tcsmsg = libiisi.initRtuProtobuf(cmd='ahhf.rtu.5c00', tver=tver) libiisi.send_to_zmq_pub( 'tcs.req.{0}.{1}'.format(libiisi.cfg_tcs_port, tcsmsg.head.cmd), tcsmsg.SerializeToString()) else: msg.head.if_st = 11 self.write(mx.code_pb2(msg, self._go_back_format)) self.finish() del msg, rqmsg, user_data
def post(self): user_data, rqmsg, msg, user_uuid = yield self.check_arguments( msgws.rqRtuTimerCtl(), None) env = False contents = '' if user_data is not None: try: tver = int(self.get_argument('tver')) except: tver = 1 if rqmsg.data_mark == 0: user_auth = libiisi.can_read else: user_auth = libiisi.can_exec & libiisi.can_write if user_data['user_auth'] in user_auth: env = True contents = 'user from {0} set rtu timer'.format( self.request.remote_ip) # 验证用户可操作的设备id yield self.update_cache('r', user_uuid) if 0 in user_data['area_r'] or user_data['is_buildin'] == 1: rtu_ids = ','.join( [str(a) for a in self.get_phy_list(rqmsg.tml_id)]) else: rtu_ids = ','.join([ str(a) for a in self.get_phy_list( self.check_tml_r(user_uuid, list(rqmsg.tml_id))) ]) if len(rtu_ids) == 0: msg.head.if_st = 11 else: if tver == 1: if rqmsg.data_mark == 0: cmd = 'wlst.rtu.1200' else: cmd = 'wlst.rtu.1300' tcsmsg = libiisi.initRtuJson(2, 7, 1, 1, 1, cmd, self.request.remote_ip, 0, rtu_ids, dict()) # libiisi.set_to_send(tcsmsg, 0, False) libiisi.send_to_zmq_pub( 'tcs.req.{1}.{0}'.format(cmd, libiisi.cfg_tcs_port), json.dumps(tcsmsg, separators=(',', ':')).lower()) elif tver == 2: if rqmsg.data_mark == 0: cmd = 'ahhf.rtu.1200' else: cmd = 'ahhf.rtu.1300' tcsmsg = libiisi.initRtuProtobuf(cmd=cmd, tver=2) libiisi.send_to_zmq_pub( 'tcs.req.{0}.{1}'.format(libiisi.cfg_tcs_port, cmd), tcsmsg.SerializeToString()) else: msg.head.if_st = 11 self.write(mx.code_pb2(msg, self._go_back_format)) self.finish() if env and rqmsg.data_mark == 1: self.write_event(11, contents, 2, user_name=user_data['user_name'], app_unique=rqmsg.head.unique) del msg, rqmsg, user_data
def post(self): user_data, rqmsg, msg, user_uuid = yield self.check_arguments( msgws.rqRtuCtl(), None) env = False event_id = 0 if user_data is not None: try: tver = int(self.get_argument('tver')) except: tver = 1 if user_data['user_auth'] in libiisi.can_exec: env = True self.get_eventinfo() dosomething = False for x in list(rqmsg.rtu_do): event_id = 0 if len(x.tml_id) == 0: continue dosomething = True tcsdata = dict() # 验证用户可操作的设备id yield self.update_cache('x', user_uuid) if 0 in user_data['area_x'] or user_data['is_buildin'] == 1: rtu_ids = ','.join( [str(a) for a in self.get_phy_list(x.tml_id)]) else: rtu_ids = ','.join([ str(a) for a in self.get_phy_list( self.check_tml_x(user_uuid, list(x.tml_id))) ]) if len(rtu_ids) > 0: if x.opt == 1: # 单回路操作 event_id = 19 i = 0 for k in list(x.loop_do): if k in (0, 1): tcsdata['k'] = i tcsdata['o'] = k tcsmsg = libiisi.initRtuJson( 2, 7, 1, 1, 1, 'wlst.rtu.2210', self.request.remote_ip, 0, rtu_ids, tcsdata) # libiisi.set_to_send(tcsmsg, 0, False) libiisi.send_to_zmq_pub( 'tcs.req.{0}.wlst.rtu.2210'.format( libiisi.cfg_tcs_port), json.dumps(tcsmsg, separators=(',', ':')).lower()) i += 1 elif x.opt == 2: # 多回路操作 event_id = 19 if tver == 1: i = 1 for k in list(x.loop_do): tcsdata['k{0}'.format(i)] = k if i == 6: break i += 1 tcsmsg = libiisi.initRtuJson( 2, 7, 1, 1, 1, 'wlst.rtu.4b00', self.request.remote_ip, 0, rtu_ids, tcsdata) # libiisi.set_to_send(tcsmsg, 0, False) libiisi.send_to_zmq_pub( 'tcs.req.{0}.wlst.rtu.4b00'.format( libiisi.cfg_tcs_port), json.dumps(tcsmsg, separators=(',', ':')).lower()) elif tver == 2: tcsmsg = libiisi.initRtuProtobuf( cmd='ahhf.rtu.4b00', tver=tver) tcsmsg.wlst_tml.wlst_rtu_4b00.operation.extend( list(x.loop_do)) libiisi.send_to_zmq_pub( 'tcs.req.{0}.{1}'.format( libiisi.cfg_tcs_port, tcsmsg.head.cmd), tcsmsg.SerializeToString()) elif x.opt == 3: # 停运 event_id = 17 tcsmsg = libiisi.initRtuJson( 2, 7, 1, 1, 1, 'wlst.rtu.2800', self.request.remote_ip, 0, rtu_ids, tcsdata) # libiisi.set_to_send(tcsmsg, 0, False) libiisi.send_to_zmq_pub( 'tcs.req.{0}.wlst.rtu.2800'.format( libiisi.cfg_tcs_port), json.dumps(tcsmsg, separators=(',', ':')).lower()) elif x.opt == 4: # 解除停运 event_id = 18 tcsmsg = libiisi.initRtuJson( 2, 7, 1, 1, 1, 'wlst.rtu.2900', self.request.remote_ip, 0, rtu_ids, tcsdata) # libiisi.set_to_send(tcsmsg, 0, False) libiisi.send_to_zmq_pub( 'tcs.req.{0}.wlst.rtu.2900'.format( libiisi.cfg_tcs_port), json.dumps(tcsmsg, separators=(',', ':')).lower()) if not dosomething: msg.head.if_st = 11 contents = u'{0},build-in user from {1} ctrl rtu '.format( libiisi.events_def.get(event_id), self.request.remote_ip) else: msg.head.if_st = 11 self.write(mx.code_pb2(msg, self._go_back_format)) self.finish() if env: cur = yield self.write_event(event_id, contents, 2, user_name=user_data['user_name'], app_unique=rqmsg.head.unique) del msg, rqmsg, user_data, user_uuid