Ejemplo n.º 1
0
def make_cmd_data(request,device,stamp_key,stamp_val,rawData):
    '''
    构造内部定义POST命令头 保存到文件或者立即处理入库
    '''
    msg=None    #---构造内部定义post命令请求头
    stamp_name = STAMPS[stamp_key]
    stamp = stamp_val
    if stamp_name=='FPImage': 
        head_data=":%s: SN=%s\tIP=%s\tTIME=%s\tPIN=%s\tFID=%s\tFPImage=%s\tZ=%s"%(stamp=='0' and stamp_name+'0' or stamp_name, str(device.sn).strip(),
            request.META["REMOTE_ADDR"], datetime.datetime.now(),
            request.REQUEST["PIN"], request.REQUEST.get("FID",0), request.REQUEST['FPImage'],stamp=='0' and '0' or '1')
    else:
        head_data=":%s: SN=%s\tIP=%s\tTIME=%s\tZ=%s"%(stamp_name, str(device.sn).strip(),
            request.META["REMOTE_ADDR"], datetime.datetime.now(),stamp=='0' and '0' or '1')
    try:
        s_data="%s\n%s\n\n"%(head_data, rawData)
    except:
        s_data="%s\n%s\n\n"%(head_data, rawData)
    if settings.WRITEDATA_CONNECTION>0 and not develop_model:
        try:
            obj=""
            try:                
                from mysite.iclock.models.model_cmmdata import gen_device_cmmdata
                obj=gen_device_cmmdata(device,s_data)   #---将整理后的POST数据保存到文件
            except Exception, e:
                raise 
        except Exception, e:
            import traceback; traceback.print_exc()
            return "save post data error\n"
        c=1
Ejemplo n.º 2
0
def cdata_post(request, device): 
    '''
    处理设备的POST请求
    涉及http参数: "raw_post_data"、stamp_name
    '''
    raw_Data = request.raw_post_data
    if not raw_Data:
        raw_Data = request.META['raw_post_data']
    logger.error(raw_Data)  #---把post数据记录到日志
    if settings.ENCRYPT:
        import lzo
        rawData = lzo.bufferDecrypt(raw_Data, device.sn)#---解密POST数据
    else:
        rawData = raw_Data
    
    ######################### 新加入的请求 api 接口区 ######################    
    #
    #
    #            在此 return 返回给设备的数据
    #
    #
    ########################## 新加入的请求 api 接口区 ######################
        
    #---时间戳及其他POST数据的整理
    stamp=None
    for s in STAMPS:
        stamp=request.REQUEST.get(s, None)
        if not (stamp is None):
            stamp_name=STAMPS[s]
            break
    if stamp is None:
        return "UNKNOWN"
    
    msg=None
    if stamp_name=='FPImage': 
        head_data=":%s: SN=%s\tIP=%s\tTIME=%s\tPIN=%s\tFID=%s\tFPImage=%s"%(stamp_name, str(device.sn).strip(),
            request.META["REMOTE_ADDR"], datetime.datetime.now(),
            request.REQUEST["PIN"], request.REQUEST.get("FID",0), request.REQUEST['FPImage'])
    else:
        head_data=":%s: SN=%s\tIP=%s\tTIME=%s"%(stamp_name, str(device.sn).strip(),
            request.META["REMOTE_ADDR"], datetime.datetime.now())
    try:
        s_data="%s\n%s\n\n"%(head_data, rawData)
    except:
        s_data="%s\n%s\n\n"%(head_data, rawData)
    #---将命令类型头基本信息和POST数据的保存到文件缓存队列
    if settings.WRITEDATA_CONNECTION>0:
        #----写入到队列,后台进程在进行实际的数据库写入操作
        try:
            obj=""
            try:                
                from mysite.iclock.models.model_cmmdata import gen_device_cmmdata
                obj=gen_device_cmmdata(device,s_data)   #---将整理后的POST数据保存到文件
            except Exception, e:
                raise 
        except Exception, e:
            import traceback; traceback.print_exc()
            raise 
        c=1
Ejemplo n.º 3
0
def cdata_post(request, device):
    '''
    处理设备的POST请求
    涉及http参数: "raw_post_data"、stamp_name
    '''
    raw_Data = request.raw_post_data
    if not raw_Data:
        raw_Data = request.META['raw_post_data']
    logger.error(raw_Data)  #---把post数据记录到日志
    if settings.ENCRYPT:
        import lzo
        rawData = lzo.bufferDecrypt(raw_Data, device.sn)  #---解密POST数据
    else:
        rawData = raw_Data

    ######################### 新加入的请求 api 接口区 ######################
    #
    #
    #            在此 return 返回给设备的数据
    #
    #
    ########################## 新加入的请求 api 接口区 ######################

    #---时间戳及其他POST数据的整理
    stamp = None
    for s in STAMPS:
        stamp = request.REQUEST.get(s, None)
        if not (stamp is None):
            stamp_name = STAMPS[s]
            break
    if stamp is None:
        return "UNKNOWN"

    msg = None
    if stamp_name == 'FPImage':
        head_data = ":%s: SN=%s\tIP=%s\tTIME=%s\tPIN=%s\tFID=%s\tFPImage=%s" % (
            stamp_name, str(device.sn).strip(), request.META["REMOTE_ADDR"],
            datetime.datetime.now(), request.REQUEST["PIN"],
            request.REQUEST.get("FID", 0), request.REQUEST['FPImage'])
    else:
        head_data = ":%s: SN=%s\tIP=%s\tTIME=%s" % (stamp_name, str(
            device.sn).strip(), request.META["REMOTE_ADDR"],
                                                    datetime.datetime.now())
    try:
        s_data = "%s\n%s\n\n" % (head_data, rawData)
    except:
        s_data = "%s\n%s\n\n" % (head_data, rawData)
    #---将命令类型头基本信息和POST数据的保存到文件缓存队列
    if settings.WRITEDATA_CONNECTION > 0:
        #----写入到队列,后台进程在进行实际的数据库写入操作
        try:
            obj = ""
            try:
                from mysite.iclock.models.model_cmmdata import gen_device_cmmdata
                obj = gen_device_cmmdata(device, s_data)  #---将整理后的POST数据保存到文件
            except Exception, e:
                raise
        except Exception, e:
            import traceback
            traceback.print_exc()
            raise
        c = 1