def zerarLinha(request, valor): if UserPermission(request, nivel_min=1): servico.dxm.write_multiple_registers(108 + valor * 13, [1]) sleep(3) return HttpResponse('ok') else: return HttpResponse('você não possui permissão')
def emula(request, valor): if UserPermission(request, nivel_min=1): servico.dxm.write_multiple_registers(88, [valor]) sleep(2) return HttpResponse('ok') else: return HttpResponse('erro')
def get_linha(request, id): if UserPermission(request, 3): l = servico.oee.linhas[id] ret = f'{{\"nome\":\"{l.nome}\",\"estado\":\"{l.estado}\",\"oee\":{l.oee},\"dis\":{l.dis},\"q\":{l.q},\"per\":{l.per}, \"t_prod\":{l.t_prod},\"t_par\":{l.t_par},\"t_p_prog\":{l.t_p_prog},\"cont_in\":{l.cont_in},\"cont_out\":{l.cont_out},\"vel_atu\":{l.vel_atu},\"vel_esp\":{l.vel_esp}}}' return HttpResponse(ret) else: return HttpResponse('falha')
def relatorio(request, inis, fims, valor): if UserPermission(request, nivel_min=2): ini = datetime(int(inis[0:4]), int(inis[5:7]), int(inis[8:10]), int(inis[11:13]), int(inis[14:16]), 0) fim = datetime(int(fims[0:4]), int(fims[5:7]), int(fims[8:10]), int(fims[11:13]), int(fims[14:16]), 0) dado = Hist.objects.filter( Q(linha__exact=valor) & Q(time__gt=ini) & Q(time__lt=fim)).order_by('time') arquiv = f"{servico.oee.linhas[valor].nome};iniciada em :;{ini}; terminado em :; {fim}\n" arquiv = f"{arquiv}hora;OEE;Disponibilidade;Qualidade;Preformance;Rodando;Parado;Produzido;ruins/bons;velocidade\n" for h in dado: hr = h.time.hour - 5 if hr < 0: hr += 23 m = h.time.minute y = h.time.year mh = h.time.month d = h.time.day arquiv = f"{arquiv}{d}/{mh}/{y} {hr}:{m};{h.oee}%;{h.dis}%;{h.q}%;{h.per}%;{int(h.t_prod/60)}:{h.t_prod%60};{int(h.t_par/60)}:{h.t_par%60};{h.bons};{h.ruins_total};{h.vel_atu}p/m\n" response = HttpResponse(arquiv, content_type=f'text/csv') response[ 'Content-Disposition'] = f'attachment; filename="relatorio.csv"' return response else: return HttpResponse('falha')
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 conjunto_linhas(request): if UserPermission(request, 3): dado = '' for l in servico.oee.linhas: dado = f'{dado}{{\"nome\":\"{l.nome}\",\"estado\":\"{l.estado}\",\"oee\":{l.oee}}},' dado = dado[0:len(dado) - 1] return HttpResponse('[' + dado + ']') else: return HttpResponse('falha')
def set_t_p_prog(request, index, valor): if UserPermission(request, 1): try: servico.dxm.write_multiple_registers(110 + index * 13, [valor]) return HttpResponse('ok') except Exception as ex: return HttpResponse(str(ex)) 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 online(request): if UserPermission(request, nivel_min=3): if servico.statusTcp.find('OnLine') >= 0: return HttpResponse( f'{{\"dxm_online\":\"True\",\"script\":\"{servico.statusScript}\"}}' ) else: return HttpResponse( f'{{\"dxm_online\":\"False\",\"script\":\"{servico.statusScript}\"}}' ) else: return HttpResponse('falha')
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')