Unable to register event from JavaScript
Serial and TCP terminal for engineering and debugging
Brought to you by:
crun
I've attempted to receive events from realterm 3.0.0.27 in JavaScript, by starting the JS file with the Microsoft Windows Based Script Host, but I cannot get it to work. I keep getting runtime errors when I try to initialize the event callback.
When I load the examples/Excel/RealTermDemo_StephanW file, OnDataTrigger events work. The non-event examples examples/html/RealTermDemo.html and examples/JavaSctipt/RealtermDemo.js also works.
I run Windows 7/x64. I've tried to install 3.0.0.28, but my antivirus program thinks it's a virus (IT policies).
Below is the JavaScript including all the failed attempts I've made. Sorry about the swedish comments and error messages.
// Simple demo of a JScript controlling Realterm
// This is run from the windows commandline by the windows scripting host.
// It is the modern version of a batch file, and a better way to do it.
// Javascript and VBScript can also be embedded into html pages
// There are lots of tools. A nice simple editor/ide is Adersoft JsEdit (free demo)
// You should download:
// - Latest version of the Microsoft scripting host
// - Microsoft script debugger
// - Windows Scripting help file
// - an editor eg Adersoft JsEdit
//
// FRLM: Starta med "Öppna med/Microsoft Windows Based Script Host"
// Det går även att scripta från .BAT-filer, men det verkar bökigt och säkerligen
// långsammare, plus bat-filernas begränsningar
var RT_port_1 = 10
var LF = 10
var CR = 13
var RT = new ActiveXObject("realterm.realtermintf");
RT.caption="Windows Scripting Host Demo 1";
RT.HalfDuplex=1;
RT.baud=57600;
RT.FlowControl=2; //2=RTS/CTS
RT.Port=RT_port_1;
RT.PortOpen=1;
RT.LinefeedIsNewline=1;
RT.SelectTabSheet("I2C");
// Om Visible är 0, så visas inte realterm-fönstret.
RT.Visible=1;
RT.PutString("G1");
RT.NewlineTerminal();
RT.TimerPeriod = 5000;
RT.EnableTimerCallbacks = 1;
function OnTimerCB(args) {
Script.Echo("Got OnTimerCB");
};
function OnTimerCBNoArgs() {
WScript.Echo("Got OnTimerCBNoArgs");
};
// Objektet stödjer inte egenskapen eller metoden
//RT.attachEvent('OnTimer', OnTimerCBNoArgs()); // Invokerar OnTimerCBNoArgs() i den här punkten
// Objektet stödjer inte egenskapen eller metoden
//RT.attachEvent('OnTimer', OnTimerCBNoArgs);
//args är odefinierad
//RT.attachEvent('OnTimer', OnTimerCB(args));
// RT är odefinierad (?!)
//function RT.OnTimer() {
// WScript.Echo("Got RT.OnTimer");
//}
// RT är odefinierad (?!)
//function RT::OnTimer() {
// WScript.Echo("Got RT::OnTimer");
//};
// RT är odefinierad (?!)
//function RT.OnTimer(args) {
// WScript.Echo("Got RealTermWrapper::OnTimerCB");
//}
// RT är odefinierad
//function RT::OnTimer(args) {
// WScript.Echo("Got RealTermWrapper::OnTimerCB");
//};
// IRealtermIntfEvents är odefinierad
//function IRealtermIntfEvents::OnTimer() {
// WScript.Echo("Got IRealtermIntfEvents::OnTimer");
//}
// IRealtermIntf är odefinierad
//function IRealtermIntf::OnTimer() {
// WScript.Echo("Got IRealtermIntf::OnTimer");
//}
// Anropas! Men: Objektet stödjer inte egenskapen eller metoden
//RT.OnTimer = new function() {
// Anropas!
// WScript.Echo("Got RT.OnTimer = new function()");
//}
// Objektet stödjer inte egenskapen eller metoden
//RT.OnTimer = function() {
// WScript.Echo("Got RT.OnTimer = function()");
//}
// Objektet stödjer inte egenskapen eller metoden
//RT.addEventListener(
//'OnTimer',
//OnTimerCBNoArgs,
//false);
// RT är odefinierad
//function RT.IRealtermIntfEvents::OnTimer() {
// WScript.Echo("Got RT.IRealtermIntfEvents::OnTimer");
//}
// ; förväntas tecken 23
//RT.IRealtermIntfEvents::OnTimer() {
// WScript.Echo("Got RT.IRealtermIntfEvents::OnTimer");
//}
// ; förväntas tecken 3
//RT::OnTimer = function() {
// WScript.Echo("Got RT::OnTimer = function()");
//}
// realterm är odefinierad
//function realterm.realtermintf::OnTimer() {
// WScript.Echo("Got functionrealterm.realtermintf.OnTimer()");
//}
// ; förväntas tecken 23
//RT.IRealtermIntfEvents::OnTimer = {
// WScript.Echo("Got RT.IRealtermIntfEvents::OnTimer");
//}
// Exempel från https://sourceforge.net/p/realterm/discussion/228939/thread/a1329191/
// Objektet stödjer inte egenskapen eller metoden
//RT.OnTimer = OnTimerCBNoArgs;
// Exempel från https://sourceforge.net/p/realterm/discussion/228939/thread/a1329191/
// Objektet stödjer inte egenskapen eller metoden
//RT.addEventListener(
//"OnTimer",
//OnTimerCBNoArgs,
//true);
// Exempel från https://sourceforge.net/p/realterm/discussion/228939/thread/a1329191/
// Objektet stödjer inte egenskapen eller metoden
//RT.attachEvent('OnTimer', OnTimerCBNoArgs);
// Testing with OnDataTrigger below: Same problems
function OnDataTriggerCB(Index, Timeout, Data, Size, Reenable) {
WScript.Echo("Got OnDataTriggerCB");
};
// Objektet stödjer inte egenskapen eller metoden
//RT.OnDataTrigger = OnDataTriggerCB;
//RT.DataTriggerSet(1, "START", "END", 10, 5000, true, false, true)
//RT.EnableDataTrigger(1);
WScript.Echo("Realterm will close when you click OK");
RT.Close();
Hi fred,
Can you try V3.0.0.31 and see if this is still there?
(Not deliberately fixed, but has had changes around this area)