PDA

View Full Version : Serial device don not get re-initialized after Script Reset (F11)



VSDomotics
December 5th, 2008, 02:20 AM
When I press F11 I get error messages because the serial devices are not reinitialized.

I get this error:


ScriptReset Start
LOG: Component Manager : 4 - Components never started.
Component Manager Shutdown Time 29.018492573872
ScriptReset Done Calling ScriptReset Callbacks, Time: 57.395004113205
Serial Error: H:\Girder5\Program\luascript\serial.lua:24: attempt to call field `New' (a nil value)
stack traceback:
H:\Girder5\Program\luascript\serial.lua:24: in function `Open'
H:\Girder5\Program\/plugins/serial/init.lua:81: in function `Open'
H:\Girder5\Program\/plugins/serial/init.lua:1654: in function `DeviceInitialize'
H:\Girder5\Program\/plugins/serial/init.lua:1515: in function <H:\Girder5\Program\/plugins/serial/init.lua:1511>
Welcome to Promixis Girder 5.0.8 build 542


The misssing 'New' function is in this code (serial.lua)


serial = {
Open = function (port)
local x = transport.New(transport.constants.transport.SERIAL )
x:Open(port)

local z = getmetatable ( x )
z.UpdateStatus = function () end

x:UpdateStatus ()
return x
end,

EnumUsingQueryDosDevice = function (...)
return transport.support.serial.EnumUsingQueryDosDevice(u npack(arg))
end,
EnumUsingCreateFile = function (...)
return transport.support.serial.EnumUsingCreateFile(unpac k(arg))
end,

EnumUsingEnumPorts = function (...)
return transport.support.serial.EnumUsingEnumPorts(unpack (arg))
end,

EnumUsingGetDefaultCommConfig = function (...)
return transport.support.serial.EnumUsingGetDefaultCommCo nfig(unpack(arg))
end,
}



It looks this function is intialized too late after Script Reset. When I look in the variable inspector however, the function is now available (but probably too late).

Rob H
December 5th, 2008, 03:13 AM
Sounds like you may have a global table transport that's declared somewhere in your code elsewhere.

Try adding a line


table.print(transport)

just before the call to transport.New, and post the results here.