Slider no ScadaBR


#1

Olá comunidade ScadaBR!

Eu estou a trabalhar com o ScadaBR para um projeto do curso (PAP - Provas de Aptidão Profissional, Portugal). E eu preciso de uma barra que possa clicar e mover para ambos os lados na horizontal mudando o valor de um datapoint já criado.

Fiz primeiro em HTML, mas não vejo a possibilidade de enviar o valor para o datapoint, porque não dá para associar à um dp.

Já em JavaScript achei vários códigos, mas dá sempre erro de execução no ScadaBR.

Preciso da ajuda aos mais experientes. Desde já obrigado!

 

Links úteis:

http://jqueryui.com/slider/

https://gist.github.com/dzenkovich/5813630

http://foundation.zurb.com/docs/components/range_slider.html

 

Cumprimentos,

GoldenScorpion, PT.

 


#2

Olá, nunca fiz um slider, mas se visitar o site do projeto inicial http://forum.infiniteautomation.com/forum/posts/list/598.page#2859 tem vários exemplos de "scripts para o servidor", tem como clicar numa imagem e ligar uma saída, tem drop e down, mas parece que o slider não tem lá, mas já dá para ter uma ideia de como construir. 

Dá uma olhada neste post que isto é discutido http://www.scadabr.org.br/?q=node/884 , lá o diego até postou um exemplo http://50.116.35.94:8080/ScadaBR/public_view.htm?viewId=1 entra e dá uma olhada, mas para detalhes do código é só com ele.

Abraço!

Eng. Fabio Durão


#3

Olá Eng. Fabio Durão, muito obrigado pela resposta, eu já tinha dado uma vista de olhos nesse link e também vi esse tópico antes de eu ter criado o meu tópico, mas ainda estou com dificuldades em desenvolver o código.

Não consigo contactar com o diegoferreira. Vou esperar por mais respostas.


#4

Minha necessidade é parecida com a do GoldScorpion.

Gostaria que o resultado do "slider" gerado pelo código HTML abaixo fosse escrito em um data point, quando o usuário mover o cursor. Há alguma maneira de se fazer isso?

<!DOCTYPE html>
<html>
<body>

<form action="demo_form.asp" method="get">
Points: 0<input type="range" name="points" min="1" max="10">10
<input type="submit">
</form>
</body>
</html>
 

sds


#5

Olá a Scadistas! :)

Atualizando os exemplos de Scripts para o Servidor. Quem já tentou acessar o link do mango reparou que a estrutura do forum deles mudou e o link não leva mais até onde queríamos. Aproveitando que o Diego Ferreira fez backup da internet kkk, vou postar abaixo:

 

Exemplos de Script para Servidor:

###Botão de parada única
var s = "";
if (value)
s += "<img style='cursor:pointer;' src='graphics/Botao-3D/botao20.png' onclick='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;false&quot;);return false;'/>";
else
s += "<img src='graphics/Botao-3D/botao10.png'/>";
return s;

###Botão de Liga e Desliga
var s = "";
if (value)
s += "<img style='cursor:pointer;' src='graphics/Botao-3D/botao20.png' onclick='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;false&quot;);return false;'/>";
else
s += "<img src='graphics/Botao-3D/botao10.png' onclick='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;true&quot;);return false;'/>";
return s;

###Botão de Pulso
var s = "";
if (value) {
s += "<img style='cursor:pointer;' src='graphics/Botao-3D/botao20.png' ";
s += "onclick='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;false&quot;); ";
s += "setTimeout(mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;true&quot;),2000);return false;'/>";
} else
s += "<img src='graphics/Botao-3D/botao10.png'/>";
return s;

###Botão de Liga e Desliga com confirmação
var s = "";
if (value)
s += "<img style='cursor:pointer;' src='graphics/Botao-3D/botao20.png' onclick='if(window.confirm(&quot;Deseja continuar?&quot;)){ mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;false&quot;)}else{ window.alert(&quot;Cancelado!&quot;);};return false;'/>";
else
s += "<img src='graphics/Botao-3D/botao10.png' onclick='if(window.confirm(&quot;Deseja continuar?&quot;)){ mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;true&quot;)}else{ window.alert(&quot;Cancelado!&quot;);};return false;'/>";
return s;

###Select/Combobox
var s="";

s+="<select onChange='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, this.options[this.selectedIndex].value )'>";

s+= "<option value=1";
if (value == 1 ) { s+= " selected ";}
s+= "> one </option>";

s+= "<option value=2";
if (value == 2 ) { s+= " selected ";}
s+= "> two </option>";

s+= "<option value=3";
if (value == 3 ) { s+= " selected ";}
s+= "> three </option>";

s+= "<option value=4";
if (value == 4 ) { s+= " selected ";}
s+= "> four </option>";

s+="</select>";

return s;

###Select multiestados
//Multi State Select example

//list of states (value key and the text)
var MSList=point.getTextRenderer().getMultistateValues();
var min = 0;
var max = MSList.size();
var s="";
var s2=""; //temporary inside loop, to be able to set the color

//check if list has values
if(max==0){return "No States defined";}
//sanity limit
if(max>100){return "More than 100 states";}

s+="<select ";

for(var i = min; i < max ;i++)
{
s2+= "<option ";
//use the state colours
s2+= "style='color:"+ MSList.get(i).getColour() + "' ";
s2+="value="+ MSList.get(i).getKey() ;

if (value == MSList.get(i).getKey())
{
s2+= " selected ";
//set the select color according to the value
s+= "style='color:"+ MSList.get(i).getColour() + "' ";
}
s2+= "> "+MSList.get(i).getText()+"</option>";
}
s+="onChange='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, this.options[this.selectedIndex].value )'>";

// put the options into the string
s+=s2;

s+="</select>";

return s;

###Campo de texto
var s = "<input type=&quot;text&quot; onChange='mango.view.setPoint("+ point.id +", &quot;"+ pointComponent.id +"&quot;, this.value);return false;' value=" + value + "/>";
return s;

###Checkbox
var s = "";
if (value){
s += "<input type=&quot;checkbox&quot; onclick='mango.view.setPoint(" + point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;false&quot;);' checked/>";
} else {
s += "<input type=&quot;checkbox&quot; onclick='mango.view.setPoint(" + point.id +", &quot;"+ pointComponent.id +"&quot;, &quot;true&quot;);'/>";
}
return s;

###Valor com mudança da cor de fundo
var s = "<a ";
if(value > 20)
s += "style=&quot;background-color:#00ff00;font-size:250%;&quot;";
else
s += "style=&quot;background-color:#ff0000;font-size:250%;&quot;";
s += ">" + value + "</a>";
return s;


Botão para mudar coil
DropDown (lista de seleção em HTML)
Botão para executar Scripting
#6

Nossa, eu precisava dessa atualização.

Valeu.


#8

Boa noite senhores. Alguem ja conseguiu rodar esses scripts com ScadaBR instalado em Ubuntu??
Estou usando Tomcat& e JAva7

Using CATALINA_BASE: /var/lib/tomcat7
Using CATALINA_HOME: /var/lib/tomcat7
Using CATALINA_TMPDIR: /var/lib/tomcat7/temp
Using JRE_HOME: /usr/lib/jvm/jre1.7.0_80
Using CLASSPATH: /var/lib/tomcat7/bin/bootstrap.jar:/var/lib/tomcat7/bin/tomcat-juli.jar

Mas mesmo assim quando insiro qualquer um dos Scripts acima a resposta é sempre a mesma. Da um erro:

java.lang.ArrayIndexOutOfBoundsException: 5747

Ja reintalei tudo e isso sempre da problema.
Instalei em outra maquina, Windows e lá roda. Deve ser algo que estou esqucendo de fazer. Se alguem puder ajudar, agradeço muito.


#9

Achei galera. Depois de instalar o Java7 tem que configurar o arquivo default do Tomcat para o mesmo caminho do $JAVA_HOME

Configurar o tomcat7 para utilizar o JDK7:
nano /etc/default/tomcat8
Descomentar a linha JAVA_HOME e colocar o seguinte:
JAVA_HOME=/usr/lib/jvm/jre1.7.0_80

Esse caminho é o mesmo do $JAVA_HOME do SO.

Gracias!!! Segue o baile!!!


#10

mais uma adaptação. Testado em campo. Botão habilita / Desabilita, com mudança de cor de fundo e gravando em variavel.

##BOTAO TOGLE - SETANDO VARIAVEL - MUDANDO COR FUNDO - COM CONFIRMACAO
var s = “”;
if (value) {
s += " <input type=‘button’ value=‘HABILITADO’ style=“background-color:#00ff00; color:#000000;” onclick=‘if(window.confirm(“Deseja DESABILITAR envio de Alarmes?”)){ mango.view.setPoint("+ point.id +", “”+ pointComponent.id +"", “false”)}else{ window.alert(“Cancelado!”);};return false;’/>";
}else {
s += " <input type=‘button’ value=‘DESABILITADO’ style=“background-color:#e00000; color:#ffffff;” onclick=‘if(window.confirm(“Deseja HABILITAR envio de Alarmes?”)){ mango.view.setPoint("+ point.id +", “”+ pointComponent.id +"", “true”)}else{ window.alert(“Cancelado!”);};return false;’/>";
}
return s;


#11

@marcelo.ourique

epa epa epa,

se descrever melhor isso ai merece uma insignia. Faço questão.
Então, primeiro precisamos definir se serve em qualquer estrutura, tipo java 6 ou java 7. Se não quiser testar pelo menos diga o seu. Coloque um print da tela. Vai ficar bonito e organizado.


#12

Ola @farmsid

Estou utilizando ScadaBR 1.1 com tomcat 7 e java 7. Não testei em versões anteriores.
Esse botão grava 0 e 1 numa variavel Virtual. Essa por sua vez entra no script (como um AND) de uma variavel META a qual Habilita (and 1) ou Desabilita (and 0) essa variavel. Quando em posição DESABILITADO o DP META fica zerado, deixando o Evento de ESTADO em NORMAL sempre. Assim impedindo o envio de emails.
desabilitado habilitado

Acho que é isso…


#13

Otimo, é isso mesmo que queria saber.
Cada java possui suas peculiaridades. Assim, esse sistema não funciona no java 6.
Para evitar posts desnecessários é sempre bom descrever o ambiente testado.
Valeu de mais sua contribuição.