PmiButton - onButtonDown

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

PmiButton - onButtonDown

Postby patrik » Tue 25. Oct 2016 18:31:28

Dobrý den,
potřeboval bych poradit se zadáním hodnoty proměnné přes události.
Mám na ethernetu připojeno Arduino, které komunikuje přes modbus. V Promoticu mám vytvořenou proměnnou Ledka, která je jedním z dig. výstupů na Arduinu. Pokud jsem použil dvoustavové tlačítko a proměnnou dal přímo na stav tlačítka, tak se mi daří Ledku zapínat a vypínat, pokud ale použiji např. jednostavové tlačítko a chci výstup sepnout pomocí události, tak mi to nefunguje (onButtonDown).

Zkoušel jsem následující kódy:

var oLed=pMe.PmPanel.Pm("../Komunikace/CommModbus/Data/#vars/ledka");
oLed.Value=1;

dále

Dim oLed
Set oLed = pMe.PmPanel.Pm("../Komunikace/CommModbus/Data/#vars/ledka")
oLed.Value = 1

Co dělám špatně? V Promoticu teprve začínám, děkuji za reakci.
patrik
 
Posts: 3
Joined: Tue 25. Oct 2016 16:44:37

Re: PmiButton - onButtonDown

Postby Petr Návrat » Wed 26. Oct 2016 8:16:14

Dobrý den

Velmi podobné téma bylo zodpovězeno o jeden příspěvek před Vámi - viz viewtopic.php?f=36&t=25328
Tzn v událostech onButtonDown a onButtonUp zapíšete do
pMe.PmPanel.Pm("../Komunikace/CommModbus/Data/#vars/ledka").Value
buď 0 nebo 1.
Vypadá to ale že máte problém i s napsáním skriptu (jednou máte na konci středník a jednou tam není).
Závisí to jak máte nastaven PmPanel - zda je obraz pro jazyk JavaScrip nebo VBScript.
Předpokládám JavaScript - tehdy musíte psát na konci příkazu středník.
Popřípadě se podívejte v runtime do INFO systému na globální chyby a tam Vám to oznámi kde ve skriptu máte chybu.

Když Vám to nepůjde tak mi pošlete aplikaci (s popisem aplikace kam se máme podívat) a my Vám řekneme kde máte chybu.
Petr Návrat
navrat@microsys.cz
Petr Návrat
Administrátor
 
Posts: 79
Joined: Thu 13. Dec 2012 14:32:08

Re: PmiButton - onButtonDown

Postby patrik » Wed 26. Oct 2016 19:43:46

Dobrý den,

děkuji za odpověď.

Samozřejmě každý z kódů co jsem zde vložil je v jiném jazyce (proto ty středníky).
O nastavení PmPanelu jsem nevěděl, když jsem ho teď přepnul na VBScript, tak mi druhý script již začal fungovat.
JavaScript se mi ale rozjet nepodařilo. V INFO systému script vypisuje chybu, že objekt tuto vlastnost nebo metodu nepodporuje.
patrik
 
Posts: 3
Joined: Tue 25. Oct 2016 16:44:37

Re: PmiButton - onButtonDown

Postby Petr Návrat » Mon 31. Oct 2016 8:48:58

Ano. V Javascriptu Vám to nebude takto fungovat. Zapoměl jsem Vám to sdělit.
Jedná se o to že JavaScript obraz musí fungovat i ve WEB obrazech
a tam nemůžete ze scriptu psát přímo z grafického prvku do aplikačních proměnných
- metoda Pm (pMe.PmPanel.Pm) tam nefunguje.
Je nutno postupovat takto:
V objektu PmPanel v editoru aplikace založíte uživatelskou metodu, např. ZapisDoLed s jedním parametrem např. Val.
V této metodě zavoláte

var oLed=pMe.Pm("../Komunikace/CommModbus/Data/#vars/ledka");
oLed.Value=Val;

(zde metoda Pm funguje protože je to v editoru aplikace, tzn skript se vyvolá na serveru)

V grafickém prvku pak zavoláte

pMe.PmPanel.Methods.ZapisDoLed(0); //nebo 1

Tento skript se vyvolá na klientu, pošle zprávu do serveru kde se vyvolá metoda ZapisDoLed

viz http://www.promotic.eu/cz/pmdoc/Objects ... ethods.htm

Petr Návrat
Petr Návrat
Administrátor
 
Posts: 79
Joined: Thu 13. Dec 2012 14:32:08


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 6 guests