{"id":3185,"date":"2017-12-20T17:47:21","date_gmt":"2017-12-20T21:47:21","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?p=3185"},"modified":"2017-12-20T21:34:43","modified_gmt":"2017-12-21T01:34:43","slug":"monitor-de-bateria-em-prisma-linux","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/modo_texto\/monitor-de-bateria-em-prisma-linux\/","title":{"rendered":"Monitor de bateria em Prisma (Linux)"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3186 size-full\" src=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/12\/battery.png\" alt=\"battery\" width=\"520\" height=\"286\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/12\/battery.png 520w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/12\/battery-300x165.png 300w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><\/p>\n<p>Uma boa fun\u00e7\u00e3o em Prisma \u00e9 a es.pabra() que chama um programa externo capturando sua sa\u00edda. Aproveitando isso criei um simples script que monitora a bateria, mostrando uma mensagem quando estiver descarregando.<\/p>\n<p>Segue o c\u00f3digo para an\u00e1lise, bons estudos. Qualquer d\u00favida posta nos coment\u00e1rios!<\/p>\n<pre class=\"lang:prisma decode:true \"> \/*\r\n  * Monitor de bateria simples em Prisma usando es.pabra() com o programa upower (linux);\r\n  * e xmessage para a mensagem.\r\n  *\/ \r\n\/\/Sem licen\u00e7a (use como bem entender - o autor n\u00e3o ser\u00e1 responsabilizado!) \r\n\r\n\/\/2017 - 12 Adalberto Amorim Felipe\r\n\r\n\/\/ linguagemprisma@gmail.com\r\n\r\n\/\/Biblioteca para permitir o uso de acentos e alguns caracteres especiais no cmd e gui do windows.\r\n\/\/N\u00e3o converte todos os tipos de utf8, basico pt-br\r\n\/\/estou criando em C uma biblioteca mais completa para esta funcionalidade.\r\n\r\n\/\/ATEN\u00c7\u00c3O este arquivo dever\u00e1 ser salvo no formato utf8 \r\n \r\nfuncao parse(s)\r\n  local tmp;\r\n  a = s:analise('\\n');\r\n  local info = {};\r\n  para i,v em pares(a) inicio\r\n    se v &lt;&gt; '\\n' entao\r\n      tmp = v:analise(':');\r\n      se tipo(tmp)=='tabela' entao\r\n        se tmp[1] e tmp[3] entao\r\n          info[tmp[1]:apare()] = tmp[3]:apare();\r\n        fim\r\n      fim\r\n    fim\r\n  \/\/ -- imprima(i,v);\r\n  fim\r\n  retorne info;\r\nfim\/\/fim funcao\r\n\r\nlocal term  = inclua'terminal';\r\n\r\nlocal funcao mensagem(titulo,txt, ...)\r\n   local botoes = {...};\r\n   local bts = '';\r\n   para i,v em ipares(botoes) inicio\r\n     bts = bts .. '\"' .. v .. '\",'\r\n   fim\r\n   bts = bts:corte(1,-2);\r\n   local cmd = 'xmessage -title ' .. titulo .. ' \"' .. txt .. '\"  -center -buttons ' .. bts .. ' \"$@\" \"\" ;'\r\n  \/\/ imprima(cmd);\r\n   local ret,_,num = sis.execute(cmd);\r\n   \r\n   se num entao retorne convnumero(num); senao retorne falso; fim\r\nfim\r\n\r\nlocal cmd = 'upower -i \/org\/freedesktop\/UPower\/devices\/battery_BAT0';\r\nlocal a;\r\n\r\nlocal cont = 1;\r\nlocal info;\r\nenquanto 1 inicio\r\n  term.defCorletra(term.verde);\r\n  a, err = es.pabra(cmd);\r\n  se a entao\r\n    info = a:leia'*t';\r\n    a:feche();\r\n    info = parse(info);\r\n    se info.present == 'yes' entao info.present = verdadeiro; \r\n    senao\r\n      info.present = falso;\r\n    fim\r\n    \r\n    imprima('bateria presente?',info.present);\r\n    se info.state == 'charging' entao info.state = 'carregando'; \r\n    senaose info.state=='discharging' entao info.state='descarregando';\r\n    fim\r\n    \r\n    imprima('Estado:', (info.state:troque('charging','carregando')));\r\n    imprima('Porcentagem:',info.percentage);\r\n    \r\n    local perc = convnumero(info.percentage:corte(1,info.percentage:procure('%%') -1 )); \r\n   \/\/ imprima(perc);   \r\n    se perc &lt; 13 e info.state == 'descarregando' entao \r\n      local aviso = string.formate('Bateria em estado critico, conecte o carregador agora!\\n\\ndescarregando: %0.2f%%',perc);\r\n      imprima('Aviso::',aviso);\r\n      mensagem(\"Aviso\", aviso, '       ok       ');\r\n    \r\n    fim\r\n  senao\r\n    imprima('Erro', err);\r\n  fim\r\n  sis.durma(1000);\r\n  \/\/term.limpeTela();\r\n  term.cursorInicio();\r\n  local alt,larg = term.tamanho();\r\n  para i = 1,alt inicio \r\n    es.escreva((' '):nconcat(larg));\r\n  fim\r\n  term.cursorInicio();\r\n  imprima('------['..cont..']------');\r\n  cont=cont+1;\r\nfim \r\nterm.defPadrao();\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Por enquanto \u00e9 isso, at\u00e9 mais!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma boa fun\u00e7\u00e3o em Prisma \u00e9 a es.pabra() que chama um programa externo capturando sua sa\u00edda. Aproveitando isso criei um simples script que monitora a bateria, mostrando uma mensagem quando estiver descarregando. Segue o c\u00f3digo para an\u00e1lise, bons estudos. Qualquer d\u00favida posta nos coment\u00e1rios! \/* * Monitor de bateria simples em Prisma usando es.pabra() com&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,7],"tags":[],"class_list":["post-3185","post","type-post","status-publish","format-standard","hentry","category-modo_texto","category-prisma"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=3185"}],"version-history":[{"count":5,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3185\/revisions"}],"predecessor-version":[{"id":3193,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3185\/revisions\/3193"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=3185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=3185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=3185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}