Exemple #1
0
 def upgrade_firmware(self, file_name, buffer, buff_len):
     pfile_name = create_string_buffer(file_name)
     pbuffer = create_string_buffer(buffer)
     write_log("-----devcomm before SetDeviceFileData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret = self.commpro.SetDeviceFileData(self.hcommpro, pfile_name, pbuffer, buff_len, "")
     write_log("-----devcomm after SetDeviceFileData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     return {"result": ret, "data": ""}
Exemple #2
0
 def set_options(self, items):
     pitems=create_string_buffer(items)
     write_log("-----devcomm before SetDeviceParam device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret=self.commpro.SetDeviceParam(self.hcommpro, pitems)
     write_log("-----devcomm after SetDeviceParam device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     #print "result=",ret,"  set_options:",items
     return {"result":ret, "data":""}
Exemple #3
0
 def delete_data(self,table,filter):
     ptable = create_string_buffer(table)
     pfilter = create_string_buffer(filter)
     write_log("-----devcomm before DeleteDeviceData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret = self.commpro.DeleteDeviceData(self.hcommpro,ptable,pfilter,"")
     write_log("-----devcomm after DeleteDeviceData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     return {"result":ret,"data":""}
Exemple #4
0
 def update_data(self,table,data,options):
     ptable = create_string_buffer(table)
     str_buf = create_string_buffer(data)
     write_log("-----devcomm before SetDeviceData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret = self.commpro.SetDeviceData(self.hcommpro, ptable, str_buf, options)
     write_log("-----devcomm after SetDeviceData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     return { "result": ret, "data": ""}
Exemple #5
0
 def disconnect(self):
     if self.hcommpro>0:
         write_log("-----devcomm before disconnect the device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
         self.commpro.Disconnect(self.hcommpro)
         write_log("-----devcomm before disconnect the device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     self.connected = False
     self.hcommpro = 0
Exemple #6
0
 def get_options(self, items):
     op_buf = create_string_buffer(2048)
     pitems=create_string_buffer(items)
     write_log("-----devcomm before GetDeviceParam device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret=self.commpro.GetDeviceParam(self.hcommpro, op_buf, 2048, pitems)
     write_log("-----devcomm after GetDeviceParam device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     if (ret>=0):
         result = op_buf.raw
         result = result.split('\0')[0]
         return {"result":ret, "data":result}
     else:
         return {"result":ret, "data":""}
Exemple #7
0
    def get_rtlog(self):
        if self.hcommpro <= 0:
            return {'result':ERROR_COMM_HANDLE,'data':''}   #communication error
        global m_rtlog_buffer
        if not m_rtlog_buffer:
            m_rtlog_buffer = create_string_buffer(16*1024)#2048)#256

        write_log("-----devcomm before GetRTLog device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
        ret = self.commpro.GetRTLog(self.hcommpro, m_rtlog_buffer, 16*1024)
        write_log("-----devcomm after GetRTLog device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
        if ret >= 0:
            rtlog = m_rtlog_buffer.raw
            rtlog = rtlog.split('\0')[0]
            return {"result": ret,"data": rtlog}
        else:
            return {"result": ret,"data": ""}
Exemple #8
0
 def query_data(self, table, fieldname, filter, option):
     ptable = create_string_buffer(table)
     pfieldname = create_string_buffer(fieldname)
     pfilter = create_string_buffer(filter)
     poption= create_string_buffer(option)
     str_buf_len = 6*1024*1024
     str_buf = create_string_buffer(str_buf_len)
     
     write_log("-----devcomm before GetDeviceData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret = self.commpro.GetDeviceData(self.hcommpro, str_buf, str_buf_len, ptable, pfieldname, pfilter, poption)
     write_log("-----devcomm after GetDeviceData device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     
     if(ret>=0):
         result = str_buf.raw
         result = result.split('\0')[0]
         return {"result":ret,"data":result}
     else:
         return {"result":ret,"data":""}
Exemple #9
0
 def connect(self):
     params=""
     if (self.hcommpro>0):
         return {"result":self.hcommpro,"data":str(self.hcommpro)}
     if (self.comminfo["comm_type"] == 1):
         params=u"protocol=TCP,ipaddress=%s,port=%d,timeout=3000,passwd=%s"%(self.comminfo["ipaddress"], self.comminfo["ip_port"], self.comminfo["password"])
     elif (self.comminfo["comm_type"] == 2):
         params=u"protocol=RS485,port=%s,baudrate=%sbps,deviceid=%d,timeout=4000,passwd=%s"%(self.comminfo["com_port"], self.comminfo["baudrate"], self.comminfo["com_address"], self.comminfo["password"])        
     constr = create_string_buffer(params)
     #print params
     write_log("-----devcomm before connect the device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     self.hcommpro = self.commpro.Connect(constr)
     write_log("-----devcomm after connect the device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
    # printf("13. dev=%s, ret=%d"%(params, self.hcommpro))
     #print "Connect....",self.hcommpro
     if(self.hcommpro>0):
         self.connected = True
     else:
         error=self.get_last_error()
         if error > 0:
             error = 0 - error
         self.hcommpro = error
         self.connected = False
     return {"result": self.hcommpro, "data": str(self.hcommpro)}
Exemple #10
0
 def get_transaction(self, newlog=True, file_buffer=None, file_len=None):
     if (self.hcommpro <= 0) and newlog != "SD":#通过SD卡获取记录时不需要连接设备
         return {'result':ERROR_COMM_HANDLE,'data':''}   #communication error
     log=""
     ret = -1007
     str_buf_len = 8*1024*1024
     str_buf = create_string_buffer(str_buf_len)
     
     try:
         if newlog:
             if newlog == "SD":
                 ret = self.commpro.ProcessBackupData(file_buffer, file_len, str_buf, str_buf_len)
             else:
                 write_log("-----devcomm before GetDeviceData newlog device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
                 ret = self.commpro.GetDeviceData(self.hcommpro, str_buf, str_buf_len, "transaction", "*", "", "NewRecord");
                 write_log("-----devcomm after GetDeviceData newlog device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
             
         else:
             write_log("-----devcomm before GetDeviceData all logs device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
             ret = self.commpro.GetDeviceData(self.hcommpro, str_buf, str_buf_len, "transaction", "*", "", "");
             write_log("-----devcomm after GetDeviceData all logs device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     except Exception,e:
         printf("-----devcomm before GetDeviceData newlog device:%s e:%s"%(self.comminfo["ipaddress"], e), True)
         return {"result":ret, "data":""}            
 def run(self):
     from mysite.iclock.cache_cmds import TEMP_CMD_KEY
     print '----run push process temp cmd===='
     while True:
         timeout = 0
         temp_cmd_obj =  None
         while True:
             temp_cmd_lock = cache.get("TEMP_CMD_LOCK_PUSH")
             if temp_cmd_lock:
                 timeout = timeout+1
                 if timeout > 300:
                     printf("-process_temp_cmd---push---timeout***break-", True)
                     break
                 time.sleep(0.5)
                 continue
             else:
                 cache.set("TEMP_CMD_LOCK_PUSH", 1)
                 temp_cmd_list = cache.get(TEMP_CMD_KEY)
                 #print temp_cmd_list,'======temp_cmd_list==key=',cache.get(TEMP_CMD_KEY)
                 if temp_cmd_list:
                     temp_cmd_obj = temp_cmd_list.pop()
                     cache.set(TEMP_CMD_KEY, temp_cmd_list)
                 cache.set("TEMP_CMD_LOCK_PUSH", 0)
                 break
         if temp_cmd_obj:
             device = temp_cmd_obj.SN
             ipaddress = device.ipaddress
             params = ""
             device_server_info = "%s:8370"%ipaddress
             #device_server_info = "192.168.8.41:80"
             conn = httplib.HTTPConnection(device_server_info)
             headers = {"Content-type": "application/x-www-form-urlencoded;charset=gb2312","Accept": "application/json, text/javascript, */*"} 
             try:
                 conn.timeout = 50  
                 conn.request('GET', "?urgCmd=%s"%temp_cmd_obj.CmdContent, params, headers)    
                 #conn.request('GET', "?urgCmd=GET OPTION NetMask,GATEIPAddress", params, headers)
                 #conn.request('GET', "/accounts/login/", params, headers)
                 print '--------conn send request--dir==%s'%dir(conn)
             except Exception, e:
                 print '---conn.request-error=%s'%e
                 temp_cmd_obj.CmdReturn = -10060#发送请求失败
                 temp_cmd_obj.save()
                 conn.close()
                 write_log('---conn.request-error=%s'%e)
                 time.sleep(1.5)
                 continue
             print '========before get response=='
             ret = None
             try:
                 ret = conn.getresponse()
             except Exception, e:
                 print '============get response error=%s'%e
                 pass
             print '========after get response==%s'%ret
             ret_read = ret.read()
             print ret.status,'============ret.status'
             print ret_read, '-------ret_read'
             ret_dict = {}
             if ret.status == 200:
                 rets = ret_read.split('&')
                 print '========rets==',rets
                 ret_return = rets[0]
                 ret_dict[ret_return.split('=')[0]] = ret_return.split('=')[1]
                 if ret_dict["Return"] >= 0:
                     from mysite.iaccess.dev_comm_center import G_DEVICE_GET_OPTION
                     if temp_cmd_obj.CmdContent.startswith("DATA QUERY transaction") > 0:
                         from dev_comm_center import process_event_log
                         try:
                             process_event_log(device, ret_dict["Result"])
                         except Exception, e:
                             printf("PUSH****process_event_log-=-=%s"%e, True)
                             pass
                     elif temp_cmd_obj.CmdContent.startswith(G_DEVICE_GET_OPTION) > 0:
                         ret_result = rets[1].split('Result=')
                         if len(ret_result) > 0:
                             ret_result = ret_result[1].split('=')
                             print '=====ret_result=!!!',ret_result
                             for r in ret_result:
                                 rets = r.split('=')
                                 ret_dict[rets[0]] = rets[1]#待处理
                         print '&&&&&&&&ret_dict===', ret_dict
                 temp_cmd_obj.CmdReturn = ret_dict["Return"]
def append_rtlog_status_push(devobj, rtlog, d_server):#append_rtlog_push(d_server, devobj, rtlog):#push ----cccc20110726
    from mysite.iaccess.models import AccRTMonitor
    from base.middleware import threadlocals
    from mysite.iaccess.models.accdoor import AccDoor
    try:
        rtlogs = rtlog.split("\t")
        operator = threadlocals.get_current_user()
        cursor = connection.cursor()
        dev_door_list = AccDoor.objects.filter(device=devobj)  #读设备门列表到缓存
        for rtlog in rtlogs:#修改支持一次获取多条事件记录
            #print '---rtlog=',rtlog
#            if not rtlog:#非记录
#                continue
#            str = rtlog.split("\t")#pull为','
            str = rtlog.split(",")  #----cccc
            doorstr=""
            if len(str) < 7:      #不合规范数据
                return 0
            d_server.set_to_dict(devobj.get_doorstate_cache_key(), "%s,%s,1"%(str[7],str[8]))
            print 'door_state---status====',d_server.get_from_dict(devobj.get_doorstate_cache_key())
#            if strtoint(str[4]) == DOOR_STATE_ID:#0时间+1门开关状态+2报警或门开超时+3没用+4(255标明该事件为门状态,否则为事件)+5 没用+6验证方式(200其他)
#                d_server.set_to_dict(devobj.get_doorstate_cache_key(), "%s,%s,1"%(str[1],str[2]))
#                write_log("rtlog ---- %s %s"%(str[1],str[2]))
#                return
##            print '---str=',str
#            if strtoint(str[4]) == EVENT_DOORSENSOROPEN:
#                doorstate = d_server.get_from_dict(devobj.get_doorstate_cache_key())#dict中读取
#    #            print "doorstate=",doorstate
#                if doorstate is None:
#                    doorstate = "0,0,0"
#                doorstr = doorstate.split(",", 3)
#                try:
#                    val = set_doorstr(int(doorstr[0]), 0x02, int(str[3]))
#                except:
#                    val = 0
#                d_server.set_to_dict(devobj.get_doorstate_cache_key(), "%d,%s,1"%(val,doorstr[1]))
#
#            if strtoint(str[4]) == EVENT_DOORSENSORCLOSE:
#                doorstate = d_server.get_from_dict(devobj.get_doorstate_cache_key())
#                #print "doorstate=",doorstate
#                if doorstate is None:
#                    doorstate = "0,0,0"
#                doorstr = doorstate.split(",", 3)
#                try:
#                    val = set_doorstr(int(doorstr[0]), 0x01, int(str[3]))
#                except:
#                    val = 0
#                d_server.set_to_dict(devobj.get_doorstate_cache_key(), "%d,%s,1"%(val,doorstr[1]))
#
#            if (strtoint(str[4]) >= ALAEM_ID_START) and (strtoint(str[4]) < ALAEM_ID_END):
#                doorstate = d_server.get_from_dict(devobj.get_doorstate_cache_key())
#                #print "doorstate=",doorstate
#                if doorstate is None:
#                    doorstate = "0,0,0"
#                doorstr = doorstate.split(",", 3)
#                try:
#                    val = set_doorstr(int(doorstr[1]), int(str[4]), int(str[3]))
#                except:
#                    val = 0
#                d_server.set_to_dict(devobj.get_doorstate_cache_key(), "%s,%d,1"%(doorstr[0], val))

            doorobj = None
            try:
                for obj in dev_door_list:
                    if obj.door_no == int(str[3]): #查找相应的门对像,避免重复查询数据库
                        doorobj = obj
                        break
                doorobj = obtain_doorobj_from_log(str, doorobj)
                if doorobj is not None:
                    str[3] = doorobj and doorobj.id or 0
#                     str[3] = str[3] or 0  #----cccc20110726
                    area_id = doorobj.device.area.id
            except:
                print_exc()
            #print '--!!!!!!!--str=',str
             #if d_server.llen("MONITOR_RT")<MAX_RTLOG:
            #暂不考虑,设备人员不在数据库中的情况。固件已判断,只有验证通过的人才会上来41事件。darcy20110803锦湖轮胎
            try:
                #新记录格式:0:时间, 1:PIN号 , 2:卡号, 3:门编号, 4:事件类型, 5:出入状态, 6:验证方式  ----cccc
                #time, Pin, cardno, doorID, even_type, reserved, verified
                #push方式给设备发命令 ----chenwj20110726

                if int(str[4]) == EVENT_GAPB_SUCCEED or int(str[4]) == EVENT_GAPB_RESET: #反潜验证开门成功或者初始化反潜规则---222
                    #d_server.set_to_dict("APB_STATE_EMP_"+str[1], str[5])
                    if doorobj:
                        if doorobj.global_apb:
                            d_server.set_to_dict("GLOBAL_APB_AREA_%s_EMP_%s"%(area_id, str[1]), str[5])

                #由于devview中已经做了设备所属区域内是否都在线的判断,所以程序执行至此时,说明区域内所有设备都在线
                if int(str[4]) == EVENT_ANTIPASSBACK: #反潜验证41
                    if doorobj:
                        global_apb_cmd = ""#返回空,表示后台验证失败--darcy20110803锦湖轮胎
                        #查看区域反潜范围内的设备的当前状态(不需要检查当前设备)-darcy20110803锦湖轮胎
                        if not check_apb_device_state(devobj, d_server):
                        #if area_apb_offline:#如果区域反潜上一个状态是离线的,那么整个区域内的所有设备上来的之后的第一条记录都按照固件权限组逻辑判断。
                            #d_server.delete_dict("GLOBAL_APB_AREA_"+area_id)#清空
                            global_apb_cmd = "NA"
                            print '------NA'
                            keys = d_server.get_keys_from_dict()#效率不高。。。
                            #print '-@@@@@@--keys=',keys
                            for key in keys:
                                if key.startswith("GLOBAL_APB_AREA_%s"%area_id):
                                    #print '--------delete the emp key=',key
                                    d_server.delete_dict(key)
                                    #print '--get key=',key,'---',d_server.get_from_dict(key)
                        else:
                            lock_delay = doorobj.lock_delay#获取锁驱动时长
                            print '----GLOBAL_APB_AREA=',"GLOBAL_APB_AREA_%s_EMP_%s"%(area_id, str[1])
                            apb_state = d_server.get_from_dict("GLOBAL_APB_AREA_%s_EMP_%s"%(area_id, str[1]))
                            #print '---apb_state=',apb_state
                            #DEVICE SET %d %d %d %d   #1继电器,门id,1继电器类型为门,时长
                            if apb_state:#缓存中存在此人员
                                if apb_state != str[5]:#出入状态匹配成功,可以开门--darcy20110803锦湖轮胎
                                    #print '-----can open the door'
                                    global_apb_cmd = "DEVICE SET 1 %d 1 %s"%(int(str[3]), lock_delay)
                            elif apb_state is None:#第一次,里面还没有内容,即初始化反潜规则,要求固件发送224事件-darcy20110803
                                #print '--apb_state is None---can open the door'
                                global_apb_cmd = "RESET_GAPB DEVICE SET 1 %d 1 %s"%(int(str[3]), lock_delay)
                            else:
                                pass
                                #print '------cannot open the door'
                        d_server.set_to_dict("GLOBAL_APB_CMD_%s"%devobj.sn, global_apb_cmd + '\n' + rtlog.strip())#生成开门命令

                #else:#其它情况,如:卡未注册
                if doorobj is not None:
                    str[3] = doorobj and doorobj.id or 0
                log = "%s,%s,%s,%s,%s,%s,%s,%d"%(FmtTTime(str[0]).strftime('%Y-%m-%d %H:%M:%S'),str[1],str[3],str[4],str[5], str[6].strip(), str[2], devobj and devobj.id or 0)
                write_log("---log=%s"%log)
                save_event_log(str, cursor, operator, doorobj, devobj)#写入报表
                d_server.rpush_to_dict("MONITOR_RT", log)#{"MONITOR_RT':['log1','log2']}#push实时监控

                if (strtoint(str[4]) >= ALAEM_ID_START) and (strtoint(str[4]) < ALAEM_ID_END):
                    d_server.rpush_to_dict("ALARM_RT", log)

            except Exception, e:
                print '--e2=',e
                print_exc()

        connection.close()
Exemple #13
0
def trigger_cmd_device(cmd_obj):
    #写入新命令队列
    old_cmd = 0
    write_log('---------in trigger_cmd_device cmd_obj=%s' % cmd_obj)
    try:
        q_server = queqe_server()
        d_server = start_dict_server()
        cln = cmd_obj.SN.new_command_list_name()  #NEWCMD_*
        #向文件缓存和dict中同时写入新命令
        dev = cmd_obj.SN
        #命令总数
        cntkey = dev.command_count_key()
        #print '---cntkey=',cntkey
        cnt = d_server.get_from_dict(cntkey)  #从dict中取
        old_cmd = q_server.llen_file(cln)
        write_log('---cmd_obj=%s,---cnt=%s,-----old_cmd=%s' %
                  (cmd_obj, cnt, old_cmd))
        if cnt is None:
            cnt = str(old_cmd)
            write_log('------devcmd get length from file-cnt=%s' % cnt)
        if cnt.find('\x00'):
            cnt = cnt.strip('\x00')
        #q_server.set(cntkey, "%d"%(int(cnt)+1))

        if dev.device_type == DEVICE_ACCESS_CONTROL_PANEL and cmd_obj.CmdImmediately:
            timeout = 0
            while True:
                temp_cmd_lock = d_server.get_from_dict("TEMP_CMD_LOCK")
                if temp_cmd_lock:  #如果当前其他线程或者进程在进行同样的操作,等待
                    write_log(
                        '--------!cmd_obj=%s temp_cmd_lock=%s timeout=%s' %
                        (cmd_obj, temp_cmd_lock, timeout))
                    timeout += 1
                    if timeout > 300:
                        break  #超时后不放入缓存
                    time.sleep(0.5)
                    continue
                else:
                    d_server.set_to_dict("TEMP_CMD_LOCK", 1)
                    immed_cmd_dict = d_server.get_from_dict("TEMP_CMD")
                    write_log('-devcmd-before immed_cmd_dict=%s, cmd_obj=%s' %
                              (immed_cmd_dict, cmd_obj))
                    if not immed_cmd_dict:
                        immed_cmd_dict = {}
                        immed_cmd_dict.setdefault(dev.id, [cmd_obj])
                    else:
                        devcmds = immed_cmd_dict.get(dev.id) or [
                        ]  #获取到当前设备对应的所有的紧急命令
                        #                        if devcmds:
                        #                            devcmds.append(cmd_obj)
                        #                        else:
                        #                            devcmds = []
                        devcmds.append(cmd_obj)
                        immed_cmd_dict[dev.id] = devcmds
                    write_log(
                        '-devcmd-before set_to_dict cmd_obj=%s,immed_cmd_dict=%s'
                        % (cmd_obj, immed_cmd_dict))
                    d_server.set_to_dict("TEMP_CMD", immed_cmd_dict)
                    d_server.set_to_dict("TEMP_CMD_LOCK", 0)
                    #immed_cmd_dict = d_server.get_from_dict("TEMP_CMD")
                    #write_log('-devcmd-after cmd_obj=%s,immed_cmd_dict=%s'%(cmd_obj, immed_cmd_dict))
                    #time.sleep(1)
                    #immed_cmd_dict = d_server.get_from_dict("TEMP_CMD")
                    #printf('-devcmd-after 5s cmd_obj=%s, immed_cmd_dict=%s'%(cmd_obj, immed_cmd_dict), True)
                    break
                #print d_server.get_from_dict("TEMP_CMD"),'-----------devcmds'
        else:
            write_log('-------------------file catch')
            q_server.lpush_to_file(cln, pickle.dumps(cmd_obj))
        if not cmd_obj.CmdImmediately:
            d_server.set_to_dict(cntkey, "%d" % (int(cnt) + 1))  #命令总数写入dict
        write_log('---cmd_obj=%s--cnt========%s' %
                  (cmd_obj, d_server.get_from_dict(cntkey)))
        q_server.connection.disconnect()
    except:
        print_exc()
    if not (dev.comm_type == COMMU_MODE_PUSH_HTTP):  #门禁设备不须通知
        return
    pass
    #UDP 广播通知设备来读取命令
    if old_cmd:  #若新命令队列不空,说明设备上次的命令还没有执行,不需要再次通知设备
        return
    try:
        ip = cmd_obj.SN.ipaddress
        sNotify = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        if ip: sNotify.sendto("R-CMD", (ip, 4374))
    except:
        print_exc()
Exemple #14
0
 def control_normal_open(self, doorid, state):
     write_log("-----devcomm before ControlDevice device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret = self.commpro.ControlDevice(self.hcommpro, 4, doorid, state, 0, 0 , "")
     write_log("-----devcomm after ControlDevice device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     return {"result": ret, "data": ""}
Exemple #15
0
 def reboot(self):
     write_log("-----devcomm before ControlDevice device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret = self.commpro.ControlDevice(self.hcommpro, 3, 0, 0, 0, 0 , "")
     write_log("-----devcomm after ControlDevice device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     return {"result": ret, "data": ""}
Exemple #16
0
 def controldevice(self, doorid, index, state):      #输出状态, state由软件控制  
     write_log("-----devcomm before ControlDevice device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     ret=self.commpro.ControlDevice(self.hcommpro, 1, doorid, index, state, 0 , "")
     write_log("-----devcomm after ControlDevice device:%s pid=%d"%(self.comminfo["ipaddress"], os.getpid()))
     return {"result":ret,"data":""}