def fileDelete(request, file):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        if dxm.deleteFile(file):
            return HttpResponse('ok')
        else:
            return HttpResponse('falha')
    else:
        return HttpResponse('falha')
def sendXml(request):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        if dxm.enviaArquivo('DXM_OEE.xml', ''):
            return HttpResponse('ok')
        else:
            return HttpResponse('falha')
    else:
        return HttpResponse('falha')
def destravar(request):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        if dxm.destravar():
            return HttpResponse('ok')
        else:
            return HttpResponse('falha')
    else:
        return HttpResponse('falha')
def getRelogio(request):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        ret = dxm.getRelogio()
        return HttpResponse(
            f'{ret.day}/{ret.month}/{ret.year}  {ret.hour}:{ret.minute}:{ret.second}'
        )
    else:
        return HttpResponse('falha')
def fileDownload(request, file: str):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        tipo = str(file.split('.')[1])
        arquiv = dxm.getFile(file)
        response = HttpResponse(arquiv, content_type=f'text/{tipo}')
        response['Content-Disposition'] = f'attachment; filename="{file}"'
        return response
    else:
        return HttpResponse('falha')
def setRelogio(request):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        ret = dxm.setRelogio()
        if ret == True:
            return HttpResponse('ok')
        else:
            return HttpResponse('falha')
    else:
        return HttpResponse('falha')
 def get(self, request):
     try:
         dxm = Protocolo(servico.oee.DXM_Endress)
         estado = 'Bloqueado'
         if dxm.fileExist('OEE.sb'):
             estado = 'Bloqueado'
         else:
             estado = 'Desbloqueado'
     except:
         estado = "Falha de leitura"
     return render(request, 'config/reset.html', context={'estado': estado})
def baixaLog(request):
    if UserPermission(request, nivel_min=1):
        dxm = Protocolo(servico.oee.DXM_Endress)
        if servico.statusTcp.find('OnLine') >= 0:
            try:
                if dxm.fileExist('sbfile1.dat') == False:
                    return HttpResponse('falha - Nenhum log existente no dxm')
                dxm.destravar()
                arqui = dxm.getFile('sbfile1.dat')
                dados = ''
                for x in arqui:
                    dados = f'{dados}{x}'
                dados = dados.replace('\n', ',')
                dados = '[' + dados + ']'
                dados = dados.replace('\t', '')
                dados = dados.replace(':,', ':0,')
                dados = dados.replace('\'', '')
                dados = dados.replace('\n', '')
                dados = dados.replace(',}', '}')
                dados = dados.replace(',]', ']')
                arm = open(f'file.dat', 'w')
                arm.write(dados.replace(',{', ',\n{'))
                arm.close()
                j = json.loads(dados)
                banco = []
                for x in j:
                    banco.append(dict_to_obj(x))
                for x in banco:
                    calender = datetime.strptime(x.time, '%Y-%m-%d %H:%M:%S')
                    H = Hist(linha=x.id,
                             time=calender - timedelta(hours=3),
                             oee=x.oee,
                             dis=x.dis,
                             q=x.q,
                             per=x.per,
                             vel_atu=x.vel_atu,
                             bons=x.bons,
                             ruins_total=x.ruins_total,
                             t_par=x.t_par,
                             t_prod=x.t_prod)
                    H.save()
                    print(f'salvei o historico {H.id}')
                dxm.deleteFile('sbfile1.dat')
                dxm.travar()
                return HttpResponse('ok')
            except Exception as ex:
                return HttpResponse(f'falha - {str(ex)}')
        else:
            return HttpResponse('falha - DXM esta desconectado')
    else:
        return HttpResponse(
            'falha - Você não permissão para executar esta ação')