Example #1
0
    def get_current_status(self, path):
        sql = "select a.*,b.TRANSACTIONSTATUS,b.settime,b.result  ,c.DESCRIPT  from operateinfo a ,transactionstatus b ,action_type c where a.transactionno = b.transactionno and a.ACTIONID= c.ACTIONID and b.transactionno=%s" % path

        rs = session.getdata(sql)

        if len(rs) == 0:
            #print 'non record'
            return
        rs = rs[0]
        self.hlist.item_configure(path, 0, text=rs['DESCRIPT'].strip())
        self.hlist.item_configure(path, 2, text=rs['TRANSACTIONNO'])
        time = rs['SETTIME']
        if time != None:
            time = time.Format('%Y-%m-%d %H:%M:%S')
            self.hlist.item_configure(path, 3, text=time)
        status = rs['TRANSACTIONSTATUS']
        try:
            status = constdef.transfer_status[str(status)]
        except:
            status = ""

        result = rs['RESULT']

        if result != None:
            status += constdef.errors[str(result)]
        self.hlist.item_configure(path, 4, text=status)
        for i in session.user.repeaters:
            if i['ID'] == int(rs['TARGET']):
                devtitle = session.getdevtitle(i)
                self.hlist.item_configure(path, 1, text=devtitle)
                break

        pass
	def get_current_status(self,path):
		sql="select a.*,b.TRANSACTIONSTATUS,b.settime,b.result  ,c.DESCRIPT  from operateinfo a ,transactionstatus b ,action_type c where a.transactionno = b.transactionno and a.ACTIONID= c.ACTIONID and b.transactionno=%s"%path				
		
		rs = session.getdata(sql) 
		
		
		if len(rs)==0:
			#print 'non record'
			return 
		rs = rs[0]
		self.hlist.item_configure(path,0,text=rs['DESCRIPT'].strip())
		self.hlist.item_configure(path,2,text=rs['TRANSACTIONNO'])
		time = rs['SETTIME']
		if time!=None:
			time = time.Format('%Y-%m-%d %H:%M:%S')
			self.hlist.item_configure(path,3,text=time)
		status = rs['TRANSACTIONSTATUS']
		try:
			status = constdef.transfer_status[str(status)]	
		except:
			status=""

		result = rs['RESULT']
		
		if result!=None:
			status+= constdef.errors[str(result)]
		self.hlist.item_configure(path,4,text=status)
		for i in session.user.repeaters:
			if i['ID']==int(rs['TARGET']):
				devtitle = session.getdevtitle(i)
				self.hlist.item_configure(path,1,text=devtitle)
				break
		
		
		pass
Example #3
0
    def show(self, devid):
        self.id = devid
        sql = "select * from repeaterinfo where id=%s" % devid
        self.devinfo = session.getdata(sql)
        title = session.getdevtitle(self.devinfo[0])

        self.title.config(text=unicode('设备: ') + title)
        row = self.devinfo[0]
        for i in self.widgets:
            i[1].destroy()
            del i[1]
        self.widgets = []
        #取得告警参数
        sql = "select * from param_config where repeatertype=%s and is_warning=1 " % row[
            'REPEATERTYPE']
        param_warning = session.getdata(sql)
        idx = 0
        for i in param_warning:
            lb = Label(self.fcontext,
                       text=i['DESCRIPT'],
                       anchor='w',
                       relief='groove')
            lb.grid(column=0, row=idx, padx=4, pady=2, sticky='w')
            self.widgets.append([i['PARAMNAME'], lb, 'lb'])
            stm = "self.var%s=IntVar()" % i['PARAMNAME']
            exec(stm)
            stm = "self.ck%s= Checkbutton(self.fcontext,variable=self.var%s )" % (
                i['PARAMNAME'], i['PARAMNAME'])
            exec(stm)
            stm = "self.ck%s.grid(column = 1,row = idx,padx=4,pady=2)" % i[
                'PARAMNAME']
            exec(stm)
            stm = "self.widgets.append( ['%s',self.ck%s,'ck' ] )" % (
                i['PARAMNAME'], i['PARAMNAME'])
            exec(stm)  #将widget添加到数据容器
            pos = 0

            pos = constdef.alarmflags.index(i['PARAMNAME'])

            print 'alarm flat ocurpy >> ', pos
            #显示当前的使能标志状态
            if row['ALARMFLAG'] & (1 << pos) != 0:

                stm = "self.var%s.set(1)" % i['PARAMNAME']
                exec(stm)

            idx += 1
	def show(self,devid):
		self.id = devid
		sql = "select * from repeaterinfo where id=%s"%devid				
		self.devinfo = session.getdata(sql)
		title = session.getdevtitle(self.devinfo[0])
		
		self.title.config(text = unicode('设备: ')+title)
		row = self.devinfo[0]
		for i in self.widgets:
			i[1].destroy()
			del i[1]
		self.widgets =[]
		#取得告警参数
		sql = "select * from param_config where repeatertype=%s and is_warning=1 "%row['REPEATERTYPE']
		param_warning = session.getdata(sql)
		idx=0
		for i in param_warning :
			lb = Label(self.fcontext,text=i['DESCRIPT'],anchor='w',relief='groove')
			lb.grid(column = 0,row =idx,padx=4,pady=2,sticky='w')
			self.widgets.append( [   i['PARAMNAME'],lb,'lb' ] )
			stm="self.var%s=IntVar()"%i['PARAMNAME']				
			exec(stm)
			stm ="self.ck%s= Checkbutton(self.fcontext,variable=self.var%s )"%(i['PARAMNAME'],i['PARAMNAME'])								
			exec(stm)				
			stm ="self.ck%s.grid(column = 1,row = idx,padx=4,pady=2)"%i['PARAMNAME']
			exec(stm)
			stm = "self.widgets.append( ['%s',self.ck%s,'ck' ] )"%(i['PARAMNAME'],i['PARAMNAME'])
			exec(stm)	#将widget添加到数据容器
			pos=0
			
			pos = constdef.alarmflags.index(i['PARAMNAME'])
				
			print 'alarm flat ocurpy >> ',pos
			#显示当前的使能标志状态
			if row['ALARMFLAG'] & (1<<pos)!=0:
				
				stm = "self.var%s.set(1)"%i['PARAMNAME']				
				exec(stm)				

			idx+=1	
Example #5
0
	def showdetail(self,sql,opttype):
		sql = sql.upper()
		sql =sql.replace("SELECT","SELECT TOP %s"%session.browse_rowsets)
		rs = session.getdata(sql)
		if self.context:
			self.context.destroy()
		fields={}
		if opttype.upper()=='LOGIN':
			#
			
			fields['USERNAME']=unicode('登录名')
			fields['LOGINIP']=unicode('登录IP')
			fields['LOGINTIME']=unicode('登录时间')
			
			cols = len(fields.keys())
			self.context = ScrolledHList(self.p2,scrollbar ='auto',options="hlist.columns %s header 1"%cols)
			self.context.pack(fill='both',expand=1)
			self.hlist = self.context.hlist
			self.hlist.config(separator='.', width=25, drawbranch=0)
			self.hlist.column_width(0, chars=12)
			self.hlist.column_width(1, chars=25)
			self.hlist.column_width(2, chars=25)
			
			ks = fields.keys()
			for k in fields.keys():
				try:
					self.hlist.header_create(ks.index(k),itemtype='text',text=fields[k])					
				except:
					tkMessageBox.showwarning(unicode('警告!'),unicode('field name map to  hlist error!'))							
					return
			for r in rs:
				self.hlist.add(r['ID'],itemtype='text',text=r['USERNAME'])
				time = r['LOGINTIME']
				time = time.Format('%Y/%m/%d %H:%M:%S')
				self.hlist.item_create(r['ID'],1,itemtype='text',text=r['LOGINIP'])
				self.hlist.item_create(r['ID'],2,itemtype='text',text=time)
				
				
		if 	opttype.upper()=='STATUS':
			fields['k1']=unicode('状态')
			fields['k2']=unicode('设备名称')
			fields['k3']=unicode('时间')
			
			fields['k4']=unicode('放置地点')
			fields['k5']=unicode('告警项')
			
			cols = len(fields.keys())
			self.context = ScrolledHList(self.p2,scrollbar ='auto',options="hlist.columns %s header 1"%cols)
			self.context.pack(fill='both',expand=1,padx=4,pady=4)
			self.hlist = self.context.hlist
			self.hlist.configure(command=self.onstatus)
			self.hlist.config(separator='.', width=25, drawbranch=0)
			self.hlist.column_width(0, chars=10)
			self.hlist.column_width(1, chars=25)
			self.hlist.column_width(2, chars=25)
			self.hlist.column_width(3, chars=25)
			#self.hlist.column_width(4, chars=25)

			ks = fields.keys()
			self.hlist.header_create(0,itemtype='text',text=fields['k1'])					
			self.hlist.header_create(1,itemtype='text',text=fields['k2'])					
			self.hlist.header_create(2,itemtype='text',text=fields['k4'])					
			self.hlist.header_create(3,itemtype='text',text=fields['k3'])					
			self.hlist.header_create(4,itemtype='text',text=fields['k5'])					
			for r in rs:
				
				wl = r['WARNINGLEVEL']
				
				if wl==None:
					wl=0
				wltext = constdef.warninglevel[str(wl)]
				
				pi =self.pwl0
				if wl==1:
					pi =self.pwl1
				if wl==2:
					pi =self.pwl2
				if wl==3:
					pi =self.pwl3
				
				self.hlist.add(r['ID'],itemtype='imagetext',image=pi,text=wltext)
				
				devtitle =''
				site=''
				for i in session.user.repeaters:
					if i['ID']==r['REPEATER_ID']:
						devtitle= session.getdevtitle(i)
						site = session.getsite(i)
					
				self.hlist.item_create(r['ID'],1,itemtype='text',text=devtitle)
				
				time = r['OPTTIME']
				time = time.Format('%Y/%m/%d %H:%M:%S')
				
				self.hlist.item_create(r['ID'],2,itemtype='text',text=site)
				self.hlist.item_create(r['ID'],3,itemtype='text',text=time)
				
				#参数列表
				sql = "SELECT c.fieldname,c.descript,c.UPLIMIT,C.DOWNLIMIT FROM repeaterinfo a ,status b,param_config c "
				sql+= " where a.id=b.repeater_id and a.repeatertype=c.repeatertype and c.is_warning=1 "
				sql+= "	and b.id=%s"
				sql = sql%r['ID']
				
				ret  = session.getdata(sql)
				param_list=[]
				for i in ret:
					if self.is_warning(i,str(r[i['FIELDNAME']]).strip()):					
						param_list.append(i['DESCRIPT'])
				self.hlist.item_create(r['ID'],4,itemtype='text',text=string.join(param_list,","))
				
		if 	opttype.upper()=='WARNING':
			fields['k1']=unicode('告警级别')
			fields['k2']=unicode('设备名称')
			fields['k5']=unicode('放置地点')
			fields['k3']=unicode('时间')			
			fields['k4']=unicode('告警项')
			
			cols = len(fields.keys())
			self.context = ScrolledHList(self.p2,scrollbar ='auto',options="hlist.columns %s header 1"%cols)
			self.context.pack(fill='both',expand=1,padx=4,pady=4)
			self.hlist = self.context.hlist
			self.hlist.configure(command=self.onwarning)
			
			self.hlist.config(separator='.', width=25, drawbranch=0)
			self.hlist.column_width(0, chars=20)
			self.hlist.column_width(1, chars=25)
			self.hlist.column_width(2, chars=25)
			

			ks = fields.keys()
			self.hlist.header_create(0,itemtype='text',text=fields['k1'])					
			self.hlist.header_create(1,itemtype='text',text=fields['k2'])					
			self.hlist.header_create(2,itemtype='text',text=fields['k5'])	
			self.hlist.header_create(3,itemtype='text',text=fields['k3'])				
			self.hlist.header_create(4,itemtype='text',text=fields['k4'])	
							
			for r in rs:				
				wl = r['WARNINGLEVEL']
				
				wltext = constdef.warninglevel[str(wl)]
				
				pi =self.pwl0
				if wl==1:
					pi =self.pwl1
				if wl==2:
					pi =self.pwl2
				if wl==3:
					pi =self.pwl3
				
				self.hlist.add(r['ID'],itemtype='imagetext',image=pi,text=wltext)
				
				
				
				devtitle =''
				site=''
				for i in session.user.repeaters:
					if i['ID']==r['REPEATER_ID']:
						devtitle= session.getdevtitle(i)
						site = session.getsite(i)
				
					
				self.hlist.item_create(r['ID'],1,itemtype='text',text=devtitle)
				self.hlist.item_create(r['ID'],2,itemtype='text',text=site)
				time = r['OPTTIME']
				time = time.Format('%Y/%m/%d %H:%M:%S')
				
				self.hlist.item_create(r['ID'],3,itemtype='text',text=time)
				
				#参数列表
				sql = "SELECT c.fieldname,c.descript,c.UPLIMIT,C.DOWNLIMIT FROM repeaterinfo a ,status b,param_config c "
				sql+= " where a.id=b.repeater_id and a.repeatertype=c.repeatertype and c.is_warning=1 "
				sql+= "	and b.id=%s"
				sql = sql%r['ID']
				
				ret  = session.getdata(sql)
				param_list=[]
				for i in ret:
					if self.is_warning(i,str(r[i['FIELDNAME']]).strip()):
						param_list.append(i['DESCRIPT'])
				self.hlist.item_create(r['ID'],4,itemtype='text',text=string.join(param_list,","))

	##########################################################################
					
		if 	opttype.upper()=='CONTROL':
			fields['k1']=unicode('设备名称')
			fields['k6']=unicode('放置地点')
			fields['k2']=unicode('控制时间')	
			#fields['k3']=unicode('响应时间')
			fields['k4']=unicode('控制结果')
			fields['k5']=unicode('控制项')
			
			
			cols = len(fields.keys())
			
			self.context = ScrolledHList(self.p2,scrollbar ='auto',options="hlist.columns %s header 1"%cols)
			self.context.pack(fill='both',expand=1,padx=4,pady=4)
			self.hlist = self.context.hlist
			self.hlist.configure(command=self.oncontrol)
			
			self.hlist.config(separator='.', width=25, drawbranch=0)
			self.hlist.column_width(0, chars=20)
			self.hlist.column_width(1, chars=25)
			self.hlist.column_width(2, chars=25)
			self.hlist.column_width(3, chars=25)
			
			
			ks = fields.keys()
			self.hlist.header_create(0,itemtype='text',text=fields['k1'])	
			self.hlist.header_create(1,itemtype='text',text=fields['k6'])								
			self.hlist.header_create(2,itemtype='text',text=fields['k2'])					
			#self.hlist.header_create(3,itemtype='text',text=fields['k3'])					
			self.hlist.header_create(3,itemtype='text',text=fields['k4'])					
			self.hlist.header_create(4,itemtype='text',text=fields['k5'])					
			
			for r in rs:								
				devtitle =''
				site = ''
				for i in session.user.repeaters:
					if i['ID']==r['REPEATER_ID']:
						devtitle= session.getdevtitle(i)
						site = session.getsite(i)
				
				path = r['ID']
				self.hlist.add(path,itemtype='text',text=devtitle)	
				self.hlist.item_create(path,1,itemtype='text',text=site)
				
				time = r['OPTTIME']
				time = time.Format('%Y/%m/%d %H:%M:%S')
				self.hlist.item_create(path,2,itemtype='text',text=time)
				time = r['BACKTIME']
				if time:
					time = time.Format('%Y/%m/%d %H:%M:%S')
				else:
					time=""				
				#self.hlist.item_create(path,3,itemtype='text',text=time)
				
				result = r['RESULT']
				if result==None:
					result=""
				else:
					result=constdef.errors[str(result)]
				self.hlist.item_create(path,3,itemtype='text',text=result)

				#参数列表
				sql = "SELECT c.control_map_status,c.descript FROM repeaterinfo a ,control b,param_config c "
				sql+= " where a.id=b.repeater_id and a.repeatertype=c.repeatertype and c.is_control=1 "
				sql+= "	and b.id=%s"
				sql = sql%r['ID']
				
				ret  = session.getdata(sql)
				param_list=[]
				for i in ret:
					if r[i['CONTROL_MAP_STATUS']] != None:
						param_list.append(i['DESCRIPT'])
				self.hlist.item_create(r['ID'],4,itemtype='text',text=string.join(param_list,","))

		
		#用户管理操作
		if 	opttype.upper()=='USERMGR':
			fields['k1']=unicode('类型')
			fields['k2']=unicode('设备名称')
			fields['k3']=unicode('管理员')
			fields['k4']=unicode('时间')	
			fields['k5']=unicode('状态')	
			
			
			cols = len(fields.keys())
			
			self.context = ScrolledHList(self.p2,scrollbar ='auto',options="hlist.columns %s header 1"%cols)
			self.context.pack(fill='both',expand=1,padx=4,pady=4)
			self.hlist = self.context.hlist
			#self.hlist.configure(command=self.oncontrol)
			
			self.hlist.config(separator='.', width=25, drawbranch=0)
			self.hlist.column_width(0, chars=20)
			self.hlist.column_width(1, chars=20)
			self.hlist.column_width(2, chars=12)
			self.hlist.column_width(3, chars=20)
			self.hlist.column_width(4, chars=25)
			
			ks = fields.keys()
			self.hlist.header_create(0,itemtype='text',text=fields['k1'])					
			self.hlist.header_create(1,itemtype='text',text=fields['k2'])					
			self.hlist.header_create(2,itemtype='text',text=fields['k3'])					
			self.hlist.header_create(3,itemtype='text',text=fields['k4'])					
			self.hlist.header_create(4,itemtype='text',text=fields['k5'])					
			
			devtitle=''
			for r in rs:								
				path = r['TRANSACTIONNO']
				self.hlist.add(path,itemtype='text',text=r['DESCRIPT'])	
				target = r['TARGET']
				if target==None or target.strip()=="":
					target=unicode("系统")
				else:
					
					for i in session.user.repeaters:
						if i['ID']==int(str(target)):
							devtitle= session.getdevtitle(i)			
									
				self.hlist.item_create(path,1,itemtype='text',text=devtitle)
				self.hlist.item_create(path,2,itemtype='text',text=r['REAL_NAME'])
				time = r['OPTTIME']
				time = time.Format('%Y/%m/%d %H:%M:%S')
				self.hlist.item_create(path,3,itemtype='text',text=time)
				

				result = r['RESULT']
				try:
					result=constdef.errors[str(result)]
				except:
					result =""
					
				self.hlist.item_create(path,4,itemtype='text',text=result)
Example #6
0
	def show(self,control_id):
		'''创建状态'''
		
		##################################################################
		for i in self.widgets:
			i.destroy()
			del i
		self.widgets=[]
		
		for i in self.control_widget:
			i[1].destroy()			
			del i[1]	#删除存储的wiget对象
		self.control_widget =[]
		self.control_params=[]
		##################################################################
		
		#获取当前设备工作状态记录
		
		sql = 'select * from control where id=%s'%control_id				
		self.control = session.getdata(sql) 		
		cur_status = self.control

		if len(cur_status) ==0:
			param_status =[]
			return 
		else:	
			cur_status =cur_status[0]

		###################################################################
		# 优化速度
		sql = "select * from repeaterinfo where id=%s"%cur_status['REPEATER_ID']
		devinfo = session.getdata(sql)
		title = session.getdevtitle(devinfo[0])
		self.title.config(text = title)
		row = devinfo[0]
		#param_status = 
		sql = "select * from param_config where repeatertype=%s and is_status=1 and is_control=1 and isdisplay=1"%row['REPEATERTYPE']
		param_status = session.getdata(sql)
			
		idx =0
		###################################################################
		for i in param_status:
			row= idx / 2
			column= idx % 2
			if column == 1:
				column = 2	#同行的第二个状态参数排布位置
#			elif column == 2:
#				column = 4		
			time=""					
			try:
				time = cur_status['OPTTIME']
				time = time.Format('%Y/%m/%d %H:%M:%S')
			except:
				time=""
			self.time.config(text=time)
			
			lb = Label(self.sw.window,text=i['DESCRIPT'],anchor='e',relief='groove')
			lb.grid(column = column,row = row,padx=4,pady=2,sticky='e')
			self.widgets.append(lb)
			
			i['PARAMNAME'] =string.strip(i['PARAMNAME'] )
			try:
				text=""
				try:
					text=cur_status[i['CONTROL_MAP_STATUS']]
				except:
					pass
				
					
				#显示开关字符
				if i['UI_TYPE']=='SELECT':	
					text=""
					try:	
						text =constdef.switch[ str(cur_status[i['CONTROL_MAP_STATUS']]) ]	
					except:
						pass
			except:
				text=""												
			lb = Label(self.sw.window,fg='blue',text=text)
			lb.grid(column = column+1,row = row,padx=4,pady=2)
			self.widgets.append(lb)		
				
#		##################################################################
#			
			idx+=1
Example #7
0
	def show_status(self,devid):
		'''创建状态,控制控件'''
		self.id =  devid
		##################################################################
		for i in self.widgets:
			i.destroy()
			del i
		self.widgets=[]
		
		self.control_widget =[]
		self.control_params=[]
		##################################################################
		
		#获取当前设备工作状态记录
		
		sql = 'select * from status where id=%s'%devid	
			
		self.status = session.getdata(sql) 		
		cur_status = self.status
		if len(cur_status) ==0:
			param_status =[]
		else:	
			cur_status =cur_status[0]
		##############################################
		sql = "select * from repeaterinfo where id=%s"%cur_status['REPEATER_ID']	
		devinfo = session.getdata(sql)
		print sql
		title = session.getdevtitle(devinfo[0])
		
		self.title.config(text = title)
		
		row = devinfo[0]
		#param_status = 
		sql = "select * from param_config where repeatertype=%s and is_status=1 and isdisplay=1"%row['REPEATERTYPE']
		param_status = session.getdata(sql)
		#print "get %s object from param_config"%len(param_status)

		
		time=""					
		try:
			time = cur_status['OPTTIME']
			time = time.Format('%Y/%m/%d %H:%M:%S')
		except:
			time=""
		self.time.config(text=time)
		##############################################
			
			
		idx =0
		for i in param_status:
			#print i['PARAMNAME'],i['FIELDNAME']
			row= idx / 2
			column= idx % 2
			if column == 1:
				column = 2	#同行的第二个状态参数排布位置
#			elif column == 2:
#				column = 4							
			lb = Label(self.sw.window,text=i['DESCRIPT'],anchor='e',relief='groove')
			lb.grid(column = column,row = row,padx=4,pady=2,sticky='e')
			self.widgets.append(lb)
			
			i['PARAMNAME'] =string.strip(i['PARAMNAME'] )
			

			#不区分告警值,所有的状态值都是有告警的可能
			text=""
			try:
				text =cur_status[i['FIELDNAME']]
			except:
				print 'get value error:SELECT VALUE INVALID!!!! ==> %s'%i['FIELDNAME']
				text ="?"
			
				
			#显示开关字符
			if i['UI_TYPE']=='SELECT':	
				try:	
					ls1=[]
					ls1 = re.split(';',i['UI_VALUE_RANGE'])
					for s in ls1:
						ls2 =re.split(':',s)
						
						if int(ls2[1])==int(cur_status[i['FIELDNAME']]):	#
							text = ls2[0]
							break
						else: 
							text ="?"
				except:
					print 'SELECT VALUE INVALID!!!! ==> %s'%i['FIELDNAME']
					
					print "default switch value ==>",text
					
													
			lb = Label(self.sw.window,fg='blue',text=text,relief='raise',borderwidth=2)
			#检测当前值是否告警
			if self.is_warning(i,str(cur_status[i['FIELDNAME']])):
				lb.config(background='red')
			else:
				lb.config(background='green')
				
				
			lb.grid(column = column+1,row = row,padx=4,pady=2)
			self.widgets.append(lb)		
				
#		##################################################################
#			
			idx+=1
    def show(self, devid):
        '''显示参数信息'''
        sql = "select * from repeaterinfo where id=%s" % devid
        self.devinfo = session.getdata(sql)[0]
        title = session.getdevtitle(self.devinfo)
        self.title.config(text=title)
        #------------------------------
        self.zdh.setentry(self.devinfo['REPEATER_ID'])
        v = self.devinfo['QUERY_PHONE']
        if v == None:
            v = ""
        else:
            v = v.strip()
        self.central_phone.setentry(v)

        v = self.devinfo['ALARM_PHONE']
        if v == None:
            v = ""
        else:
            v = v.strip()
        self.alert_phone.setentry(v)
        #-------------------------------------------------
        try:
            v = self.devinfo['MONI_ALARM_ID1']
            v = v | self.devinfo['MONI_ALARM_ID2'] << 8
        except:
            v = 0
        print v
        v = "%s" % v
        self.moni_alert.setentry(v)
        #-------------------------------------------------
        repeatertype = self.devinfo['REPEATERTYPE']
        #-------------------------------------------------
        try:
            v = self.devinfo['MONI_ALARM_ID1'] & 0x0f
        except:
            v = 0
        print "repeatertype-->", repeatertype, v
        self.lb_ad0_alert.config(
            text=constdef.adc_hash[str(repeatertype)][int(v)])
        try:
            v = self.devinfo['MONI_ALARMFLAG'] & 0x10
        except:
            v = 0
        if v:
            self.ad0_alert.config(value=unicode('不告警'))
        else:
            self.ad0_alert.config(value=unicode('告警'))
        #-------------------------------------------------
        try:
            v = (self.devinfo['MONI_ALARM_ID1']
                 & 0xf0) >> 4  #get adc data 0-13 item
        except:
            v = 0
        self.lb_ad1_alert.config(
            text=constdef.adc_hash[str(repeatertype)][int(v)])
        try:
            v = self.devinfo['MONI_ALARMFLAG'] & 0x20
        except:
            v = 0
        if v:
            self.ad1_alert.config(value=unicode('不告警'))
        else:
            self.ad1_alert.config(value=unicode('告警'))
        #-------------------------------------------------
        try:
            v = (self.devinfo['MONI_ALARM_ID2'] & 0x0f
                 )  #get adc data 0-13 item
        except:
            v = 0
        self.lb_ad2_alert.config(
            text=constdef.adc_hash[str(repeatertype)][int(v)])
        try:
            v = self.devinfo['MONI_ALARMFLAG'] & 0x40
        except:
            v = 0
        if v:
            self.ad2_alert.config(value=unicode('不告警'))
        else:
            self.ad2_alert.config(value=unicode('告警'))
        #-------------------------------------------------
        try:
            v = (self.devinfo['MONI_ALARM_ID2']
                 & 0xf0) >> 4  #get adc data 0-13 item
        except:
            v = 0
        print "repeatertype:%s,moni_alarm:%s" % (repeatertype, v)
        self.lb_ad3_alert.config(
            text=constdef.adc_hash[str(repeatertype)][int(v)])
        try:
            v = self.devinfo['MONI_ALARMFLAG'] & 0x80
        except:
            v = 0
        if v:
            self.ad3_alert.config(value=unicode('不告警'))
        else:
            self.ad3_alert.config(value=unicode('告警'))
        #-------------------------------------------------
        v = self.devinfo['AD0MIN']
        if v == None:
            v = 0
        self.ad0min.setentry(v)
        #-------------------------------------------------
        v = self.devinfo['AD0MAX']
        if v == None:
            v = 0
        self.ad0max.setentry(v)
        #-------------------------------------------------

        v = self.devinfo['AD1MIN']
        if v == None:
            v = 0
        self.ad1min.setentry(v)
        #-------------------------------------------------
        v = self.devinfo['AD1MAX']
        if v == None:
            v = 0
        self.ad1max.setentry(v)
        #-------------------------------------------------

        v = self.devinfo['AD2MIN']
        if v == None:
            v = 0
        self.ad2min.setentry(v)
        #-------------------------------------------------
        v = self.devinfo['AD2MAX']
        if v == None:
            v = 0
        self.ad2max.setentry(v)
        #-------------------------------------------------
        v = self.devinfo['AD3MIN']
        if v == None:
            v = 0
        self.ad3min.setentry(v)
        #-------------------------------------------------
        v = self.devinfo['AD3MAX']
        if v == None:
            v = 0
        self.ad3max.setentry(v)
        #-------------------------------------------------
        try:
            v = self.devinfo['DIGIT_ALARM1'] | (
                self.devinfo['DIGIT_ALARM2'] << 8)
        except:
            v = 0

        self.digit_alert.setentry("%s" % v)
        #-------------------------------------------------
        try:
            #print self.devinfo['DIGIT_ALARMFLAG1'],self.devinfo['DIGIT_ALARMFLAG1']
            v = self.devinfo['DIGIT_ALARMFLAG1'] | (
                self.devinfo['DIGIT_ALARMFLAG2'] << 8)
        except:
            v = 0
        print hex(v), v
        for i in range(0, 16):
            stm = "self.lb_d%s.config(text=constdef.dp_hash[str(repeatertype)][int(i)])" % i
            exec(stm)

            print 1 << i, v
            if (1 << i) & v:
                stm = "self.d%s_alert.config(value=unicode('不告警'))" % i
            else:
                stm = "self.d%s_alert.config(value=unicode('告警'))" % i

            exec(stm)
	def show_status(self,devid):
		'''创建状态,控制控件'''
		self.id =  devid
		##################################################################
		for i in self.widgets:
			i.destroy()
			del i
		self.widgets=[]
		
		for i in self.control_widget:
			i[1].destroy()
			
			del i[1]	#删除存储的wiget对象
		self.control_widget =[]
		self.control_params=[]
		##################################################################
		# 优化速度
		sql = "select * from repeaterinfo where id=%s"%devid		
		devinfo = session.getdata(sql)
		title = session.getdevtitle(devinfo[0])
		self.title.config(text = title)
		row = devinfo[0]
		self.cur_dev = row
		#param_status = 
		sql = "select * from param_config where repeatertype=%s and is_status=1 and isdisplay=1"%row['REPEATERTYPE']
		param_status = session.getdata(sql)
		#print "get %s object from param_config"%len(param_status)
		#获取当前设备工作状态记录
		
		sql = 'select * from statusview where repeater_id=%s'%devid	
			
		self.status = session.getdata(sql) 		
		cur_status = self.status
		if len(cur_status) ==0:
			param_status =[]
		else:	
			cur_status =cur_status[0]
		##############################################
		time=""					
		try:
			time = cur_status['OPTTIME']
			time = time.Format('%Y/%m/%d %H:%M:%S')
		except:
			time=""
		self.time.config(text=time)
		##############################################
			
			
		idx =0
		for i in param_status:
			#print i['PARAMNAME'],i['FIELDNAME']
			row= idx / 2
			column= idx % 2
			if column == 1:
				column = 2	#同行的第二个状态参数排布位置
#			elif column == 2:
#				column = 4							
			lb = Label(self.sw.window,text=i['DESCRIPT'],anchor='e',relief='groove')
			lb.grid(column = column,row = row,padx=4,pady=2,sticky='e')
			self.widgets.append(lb)
			
			i['PARAMNAME'] =string.strip(i['PARAMNAME'] )
			

			#不区分告警值,所有的状态值都是有告警的可能
			text=""
			try:
				text =cur_status[i['FIELDNAME']]
			except:
				print 'get value error:SELECT VALUE INVALID!!!! ==> %s'%i['FIELDNAME']
				text ="?"
			
				
			#显示开关字符
			if i['UI_TYPE']=='SELECT':	
				try:	
					ls1=[]
					ls1 = re.split(';',i['UI_VALUE_RANGE'])
					for s in ls1:
						ls2 =re.split(':',s)
						
						if int(ls2[1])==int(cur_status[i['FIELDNAME']]):	#
							text = ls2[0]
							break
						else: 
							text ="?"
				except:
					print 'SELECT VALUE INVALID!!!! ==> %s'%i['FIELDNAME']
					
					print "default switch value ==>",text
					
													
			lb = Label(self.sw.window,fg='blue',text=text,relief='raise',borderwidth=2)
			#检测当前值是否告警
			if self.is_warning(i,str(cur_status[i['FIELDNAME']])):
				lb.config(background='red')
			else:
				lb.config(background='green')
				
				
			lb.grid(column = column+1,row = row,padx=4,pady=2)
			self.widgets.append(lb)		
				
#		##################################################################
#		# 创建控制面板参数
			if i['IS_CONTROL']==1:
				self.control_params.append(i) #将当前参数结构保存
				lb = Label(self.swcontrol.window,text=i['DESCRIPT'],anchor='e')
				lb.grid(column = 0,row = idx,padx=4,pady=2,sticky='e')				
				#self.control_widget.append(lb) 
				self.widgets.append(lb)
				
				
				stm="self.var%s=IntVar()"%i['PARAMNAME']				
				exec(stm)
				stm ="self.ck%s= Checkbutton(self.swcontrol.window,variable=self.var%s )"%(i['PARAMNAME'],i['PARAMNAME'])								
				exec(stm)				
				stm ="self.ck%s.grid(column = 2,row = idx,padx=4,pady=2)"%i['PARAMNAME']
				exec(stm)
				
				stm = "self.widgets.append(self.ck%s)"%i['PARAMNAME']
				exec(stm)
				
								
				if i['UI_TYPE']=='TEXT':					
					#在这里,没有进行entry值输入的约束,对输入控制的参数没有进行校验
					stm=""
					if i['PARAM_TYPE']==1:	#整型值
						stm = "self.en%s = Pmw.EntryField(self.swcontrol.window,labelpos='w',validate = {'validator' : 'integer'} )"
					elif i['PARAM_TYPE']==3:	#浮点型
						stm = "self.en%s = Pmw.EntryField(self.swcontrol.window,labelpos='w',validate = {'validator' : 'real'} )"
						
					stm = stm%i['PARAMNAME']
					exec(stm)
					stm ="self.en%s.grid(column = 1,row = idx,padx=4,pady=2,sticky='w')"
					stm = stm%i['PARAMNAME']
					exec(stm)
					#负值
					v=""
					try:
						v =cur_status[i['FIELDNAME']]
					except:
						v=""
					stm ="self.en%s.setentry(%s)"%(i['PARAMNAME'],v)
					exec(stm)
					
					stm = "self.control_widget.append(['%s',self.en%s,'en'])"%(i['PARAMNAME'],i['PARAMNAME'])
					exec(stm)
				if i['UI_TYPE']=='SELECT':						
					stm = "self.cb%s=ComboBox(self.swcontrol.window )"%i['PARAMNAME']					
					exec(stm)
					stm ="self.cb%s.grid(column = 1,row = idx,padx=4,pady=2,sticky='w')"
					stm = stm%i['PARAMNAME']
					
					exec(stm)
					
					stm = "self.control_widget.append(['%s',self.cb%s,'cb'])"%(i['PARAMNAME'],i['PARAMNAME'])
					exec(stm)
					
					range = i['UI_VALUE_RANGE']
					
					ls1 = re.split(';',range)
					for s in ls1:
						ls2 =re.split(':',s)
						
						stm = "self.cb%s.append_history(unicode('%s'))"%(i['PARAMNAME'],ls2[0])	
						exec(stm)
						
					#负值
					v=0
					try:
						ls1=[]
						ls1 = re.split(';',i['UI_VALUE_RANGE'])
						for s in ls1:
							ls2 =re.split(':',s)
							if int(ls2[1])==int(cur_status[i['FIELDNAME']]):	#
								v = ls2[0]
								break
						else: 
							v ="?"
						
					except:
						v=""

					stm = "self.cb%s.config(value=unicode('%s'))"%(i['PARAMNAME'],v)	
					#print stm
					exec(stm)
#			
			idx+=1
Example #10
0
    def show_status(self, devid):
        '''创建状态,控制控件'''
        self.id = devid
        ##################################################################
        for i in self.widgets:
            i.destroy()
            del i
        self.widgets = []

        for i in self.control_widget:
            i[1].destroy()

            del i[1]  #删除存储的wiget对象
        self.control_widget = []
        self.control_params = []
        ##################################################################
        # 优化速度
        sql = "select * from repeaterinfo where id=%s" % devid
        devinfo = session.getdata(sql)
        title = session.getdevtitle(devinfo[0])
        self.title.config(text=title)
        row = devinfo[0]
        self.cur_dev = row
        #param_status =
        sql = "select * from param_config where repeatertype=%s and is_status=1 and isdisplay=1" % row[
            'REPEATERTYPE']
        param_status = session.getdata(sql)
        #print "get %s object from param_config"%len(param_status)
        #获取当前设备工作状态记录

        sql = 'select * from statusview where repeater_id=%s' % devid

        self.status = session.getdata(sql)
        cur_status = self.status
        if len(cur_status) == 0:
            param_status = []
        else:
            cur_status = cur_status[0]
        ##############################################
        time = ""
        try:
            time = cur_status['OPTTIME']
            time = time.Format('%Y/%m/%d %H:%M:%S')
        except:
            time = ""
        self.time.config(text=time)
        ##############################################

        idx = 0
        for i in param_status:
            #print i['PARAMNAME'],i['FIELDNAME']
            row = idx / 2
            column = idx % 2
            if column == 1:
                column = 2  #同行的第二个状态参数排布位置
#			elif column == 2:
#				column = 4
            lb = Label(self.sw.window,
                       text=i['DESCRIPT'],
                       anchor='e',
                       relief='groove')
            lb.grid(column=column, row=row, padx=4, pady=2, sticky='e')
            self.widgets.append(lb)

            i['PARAMNAME'] = string.strip(i['PARAMNAME'])

            #不区分告警值,所有的状态值都是有告警的可能
            text = ""
            try:
                text = cur_status[i['FIELDNAME']]
            except:
                print 'get value error:SELECT VALUE INVALID!!!! ==> %s' % i[
                    'FIELDNAME']
                text = "?"

            #显示开关字符
            if i['UI_TYPE'] == 'SELECT':
                try:
                    ls1 = []
                    ls1 = re.split(';', i['UI_VALUE_RANGE'])
                    for s in ls1:
                        ls2 = re.split(':', s)

                        if int(ls2[1]) == int(cur_status[i['FIELDNAME']]):  #
                            text = ls2[0]
                            break
                        else:
                            text = "?"
                except:
                    print 'SELECT VALUE INVALID!!!! ==> %s' % i['FIELDNAME']

                    print "default switch value ==>", text

            lb = Label(self.sw.window,
                       fg='blue',
                       text=text,
                       relief='raise',
                       borderwidth=2)
            #检测当前值是否告警
            if self.is_warning(i, str(cur_status[i['FIELDNAME']])):
                lb.config(background='red')
            else:
                lb.config(background='green')

            lb.grid(column=column + 1, row=row, padx=4, pady=2)
            self.widgets.append(lb)

            #		##################################################################
            #		# 创建控制面板参数
            if i['IS_CONTROL'] == 1:
                self.control_params.append(i)  #将当前参数结构保存
                lb = Label(self.swcontrol.window,
                           text=i['DESCRIPT'],
                           anchor='e')
                lb.grid(column=0, row=idx, padx=4, pady=2, sticky='e')
                #self.control_widget.append(lb)
                self.widgets.append(lb)

                stm = "self.var%s=IntVar()" % i['PARAMNAME']
                exec(stm)
                stm = "self.ck%s= Checkbutton(self.swcontrol.window,variable=self.var%s )" % (
                    i['PARAMNAME'], i['PARAMNAME'])
                exec(stm)
                stm = "self.ck%s.grid(column = 2,row = idx,padx=4,pady=2)" % i[
                    'PARAMNAME']
                exec(stm)

                stm = "self.widgets.append(self.ck%s)" % i['PARAMNAME']
                exec(stm)

                if i['UI_TYPE'] == 'TEXT':
                    #在这里,没有进行entry值输入的约束,对输入控制的参数没有进行校验
                    stm = ""
                    if i['PARAM_TYPE'] == 1:  #整型值
                        stm = "self.en%s = Pmw.EntryField(self.swcontrol.window,labelpos='w',validate = {'validator' : 'integer'} )"
                    elif i['PARAM_TYPE'] == 3:  #浮点型
                        stm = "self.en%s = Pmw.EntryField(self.swcontrol.window,labelpos='w',validate = {'validator' : 'real'} )"

                    stm = stm % i['PARAMNAME']
                    exec(stm)
                    stm = "self.en%s.grid(column = 1,row = idx,padx=4,pady=2,sticky='w')"
                    stm = stm % i['PARAMNAME']
                    exec(stm)
                    #负值
                    v = ""
                    try:
                        v = cur_status[i['FIELDNAME']]
                    except:
                        v = ""
                    stm = "self.en%s.setentry(%s)" % (i['PARAMNAME'], v)
                    exec(stm)

                    stm = "self.control_widget.append(['%s',self.en%s,'en'])" % (
                        i['PARAMNAME'], i['PARAMNAME'])
                    exec(stm)
                if i['UI_TYPE'] == 'SELECT':
                    stm = "self.cb%s=ComboBox(self.swcontrol.window )" % i[
                        'PARAMNAME']
                    exec(stm)
                    stm = "self.cb%s.grid(column = 1,row = idx,padx=4,pady=2,sticky='w')"
                    stm = stm % i['PARAMNAME']

                    exec(stm)

                    stm = "self.control_widget.append(['%s',self.cb%s,'cb'])" % (
                        i['PARAMNAME'], i['PARAMNAME'])
                    exec(stm)

                    range = i['UI_VALUE_RANGE']

                    ls1 = re.split(';', range)
                    for s in ls1:
                        ls2 = re.split(':', s)

                        stm = "self.cb%s.append_history(unicode('%s'))" % (
                            i['PARAMNAME'], ls2[0])
                        exec(stm)

                    #负值
                    v = 0
                    try:
                        ls1 = []
                        ls1 = re.split(';', i['UI_VALUE_RANGE'])
                        for s in ls1:
                            ls2 = re.split(':', s)
                            if int(ls2[1]) == int(
                                    cur_status[i['FIELDNAME']]):  #
                                v = ls2[0]
                                break
                        else:
                            v = "?"

                    except:
                        v = ""

                    stm = "self.cb%s.config(value=unicode('%s'))" % (
                        i['PARAMNAME'], v)
                    #print stm
                    exec(stm)
#
            idx += 1