コード例 #1
0
    def run(self):
        global gQueues, gQueue_ret

        while True:
            _recv_json = gQueues[self.__id].get(block=True)
            _recv_dict = json.loads(_recv_json)
            _status_url = "http://" + _recv_dict["ip"] + "/cgi-bin/status.cgi"
            _status_dict = hvpd_status.get_hvpd_status(_status_url)
            if not "Fsn" in _status_dict:
                _ret_dic = {"id": self.__id, 'ret': -3, "sn": _recv_dict["sn"]}
                gQueue_ret.put(json.dumps(_ret_dic))
                continue
            if not "UART_VERSION" in _status_dict:
                _status_dict.update({"UART_VERSION": '0'})
            if not "UDP_VERSION" in _status_dict:
                _status_dict.update({"UDP_VERSION": '0'})
            if not "CAMERA_VERSION" in _status_dict:
                _status_dict.update({"CAMERA_VERSION": '0'})
            if not "HARDVER" in _status_dict:
                _status_dict.update({"HARDVER": '0'})
            if '2' == _status_dict["HARDVER"]:
                hardver = "version2"
            elif '3' == _status_dict["HARDVER"]:
                hardver = "version3"
            else:
                hardver = "version0"
            uart_version, udp_version, camera_version, upgrade_file = get_version_file(
                "hvpd/version.ini", hardver)
            if '' == uart_version:
                _ret_dic = {"id": self.__id, 'ret': -2, "sn": _recv_dict["sn"]}
                gQueue_ret.put(json.dumps(_ret_dic))
                continue
            if _status_dict["CAMERA_VERSION"] == uart_version and   \
                _status_dict["UDP_VERSION"] == udp_version and  \
                _status_dict["UART_VERSION"] == camera_version:
                _ret_dic = {"id": self.__id, 'ret': 0, "sn": _recv_dict["sn"]}
                gQueue_ret.put(json.dumps(_ret_dic))
                continue
            socket.setdefaulttimeout(2)
            try:
                _upgrade_url = "http://" + _recv_dict[
                    "ip"] + "/cgi-bin/upgrade.cgi"
                files = {
                    "filename": ("123.zip", open("hvpd/" + upgrade_file, "rb"))
                }
                r = requests.post(url=_upgrade_url, files=files)
                ret = 0
            except Exception, e:
                #print str(e)
                ret = str(e)
            _ret_dic = {"id": self.__id, 'ret': ret, "sn": _recv_dict["sn"]}
            gQueue_ret.put(json.dumps(_ret_dic))
コード例 #2
0
                           "where cameraID='%s' and cmosID=%d;"%(_hvpd[10],_hvpd[0],_hvpd[1])
                    sqlite_cur.execute(_sql)
                    #mylogger.debug("update timet = %d"%_hvpd[10])
                    continue
                _sql = "select * from hvpdOnline where cameraID='%s' and cmosID=%d;" % (
                    _hvpd[0], _hvpd[1])
                sqlite_cur.execute(_sql)
                _NewHvpd = sqlite_cur.fetchone()
                if _timeNow - _NewHvpd[3] > 20 * 60:
                    mylogger.info("sn=%s cmos %d need reboot @ %s" %
                                  (_hvpd[0], _hvpd[1], _hvpd[4]))
                    try:
                        _status_url = "http://" + _hvpd[
                            4] + "/cgi-bin/status.cgi"
                        socket.setdefaulttimeout(2)
                        _status_dict = hvpd_status.get_hvpd_status(_status_url)
                        mylogger.info("get_hvpd_status ")
                        _ai_ip = "None"
                        _cgi_time = "None"
                        if None != _status_dict:
                            if "AISERVERIP" in _status_dict:
                                _ai_ip = _status_dict["AISERVERIP"]
                            if "timenow" in _status_dict:
                                _cgi_time = _status_dict["timenow"]

                        ret_file = wtclib.http_post_file2device(
                            "reboot_upgrade.zip", _hvpd[4], "upgrade.cgi")
                        mylogger.info("post file")
                        if 200 == ret_file:
                            _post_file = "OK"
                        else:
コード例 #3
0
def get_one_hvpd_version(hvpd, cur):
    global mylog
    _timeSec = int(time.time())
    try:
        _a1 = cur.execute("select * from HvpdVersionTableMem where cameraID='%s'"%hvpd[0])
        if 0 != _a1:
            _hvpdVersion = cur.fetchmany(1)[0]
            if _timeSec - _hvpdVersion[6] < 30*60:
                return 0
    except Exception, e:
        mylog.error(str(e))
        return -2

    requrl = "http://"+hvpd[4]+"/cgi-bin/status.cgi"

    dic2 = hvpd_status.get_hvpd_status(requrl)
    if None == dic2:
        mylog.debug("get None version " + requrl)
        return 0

    if not "CAMERA_VERSION" in dic2:
        return 0
    if not "UART_VERSION" in dic2:
        return 0
    if not "UDP_VERSION" in dic2:
        return 0
    if not "HARDVER" in dic2:
        _hard_ver = '0'
    else:
        _hard_ver = dic2['HARDVER']