PDA

View Full Version : Girder 5 ComponentManager and Plugin interaction



JBrett
November 24th, 2008, 05:22 PM
I have a Girder4/5 plugin written in C++ that controls my SpeakerCraft MZC66, I recently figured out how to get status back from the MZC66 and decided the best way to pass this to NR would be to use Device Manager. The most pertinent question I have right now is in my speakercraft.lua file for the component in DM I have:

local Requires = {
{
Type = 'Version',
Identifier = 'Pro',
},
{
Type = 'Plugin',
Identifier = PluginID,
Namespace = 'speakercraft',
Wait = true,
},

}

From what I could get from other components (mainly USBUIRT) this should load, or connect to the speakercraft plugin (PluginID is equal to that of my plugin) and call it 'speakercraft'. However, when I enable the component in ComponentManager is pauses and states it is unable to load plugin 20040 SpeakerCraft. (when Wait = false, it continues but 'speakercraft' is nil) I assume there is something wrong with my plugin, that it is not responding to Girder properly to let it know it is ready for Component Manager (I can send it 'actions' through Girder however) but I'm not sure what to look for. The base of the plugin was the sendmessage example. Is there a simple answer for this?
Also, (and less importantly) I have tried to find information on how to write Component Manager plugins, with little luck, is there a manual or forum post I have missed somewhere?

Thanks,
Brett

JBrett
November 24th, 2008, 05:44 PM
I noticed when I changed:
Namespace = 'speakercraft',
to
Namespace = 'usbuirt',
then my Component loaded, but it loaded the usbuirt plugin (so I'm not sure what 'Identifier = PluginID' is for) The name of my plugin is 'SpeakerCraft' so I change the case to match, but it didn't work, recomplied my plugin to all lower case, and made Namespace = 'speakercraft', still didn't work so I'm leaning towards 'Namespace' to be more important than Identifier and the culprit, but still really haven't gotten anywhere. Sorry for the second post so fast but I wanted document my progress.

JBrett
November 25th, 2008, 12:09 PM
Oh, my bad, I thought, and was hoping that by requiring the plugin Girder would automatically create a wrapper for use in the component lua code, this doesn't appear to be the case. I added commands to create a "speakercraft" lua table in my plugin and it now the component loads correctly.