XDD Not Starting
I am trying to use the supplied XDD for 3 Hitachi projectors.
When the code loads and executes, none of the virtual devices come online.
I'm not sure what else needs to be done. There is a copy of the XDD file in the controller in the "drivers" folder.
NI Master (v4.1.404)
NI-3100 (v1.30.8)
I can see that the second and third instance (of the XDD) generates an "OutOfMemoryError", but the first instance doesn't come online either.
Here is the startup diagnostics dump.
Thanks in advance for any advice.
-Chris
When the code loads and executes, none of the virtual devices come online.
I'm not sure what else needs to be done. There is a copy of the XDD file in the controller in the "drivers" folder.
NI Master (v4.1.404)
NI-3100 (v1.30.8)
I can see that the second and third instance (of the XDD) generates an "OutOfMemoryError", but the first instance doesn't come online either.
Here is the startup diagnostics dump.
Line 1 (19:06:29.469):: Memory Available = 34094208 <23360>
Line 2 (19:06:29.663):: SSLServerSocketFactory.Activator: registered service
Line 3 (19:06:29.818):: CIpSymbol::LoadGlobalLocalInfo 120622 3036
Line 4 (19:06:29.822):: Memory Available = 34061488 <32720>
Line 5 (19:06:29.822):: CIpUffHandler::Module Header
Line 6 (19:06:30.304):: CIpCodeMan::LoadCode 24544 9
Line 7 (19:06:30.321):: No CM present, using default configuration
Line 8 (19:06:30.743):: Updated pid=org.knopflerfish.bundle.http.factory.HttpServer.default
Line 9 (19:06:30.757):: create pid=org.knopflerfish.bundle.http.factory.HttpServer.default
Line 10 (19:06:31.027):: Creating Thread Pool
Line 11 (19:06:31.266):: Creating HTTP socket
Line 12 (19:06:31.351):: HTTP server started on port 80
Line 13 (19:06:31.354):: Creating HTTPS socket
Line 14 (19:06:31.430):: AmxSslServerSocket(int,int): got called
Line 15 (19:06:31.511):: HTTPS server started on port 443
Line 16 (19:06:31.514):: Memory Available = 34031160 <30328>
Line 17 (19:06:32.216):: CIpListMan::LoadVolatile 39018 9
Line 18 (19:06:32.249):: Memory Available = 34014432 <16728>
Line 19 (19:06:32.512):: CIpListMan::LoadNonVolatile Restore 14
Line 20 (19:06:32.578):: CIpDirect::LoadDirect 222 9
Line 21 (19:06:32.582):: CIpCodeMan::LoadTable 10 9
Line 22 (19:06:32.661):: CIpDeviceList::LoadDeviceList 6 9
Line 23 (19:06:32.745):: CIpTempMan::LoadTemplate 8838 9
Line 24 (19:06:32.747):: Memory Available = 34004160 <10272>
Line 25 (19:06:32.784):: CIpSymbol::LoadFileInfo 290 3
Line 26 (19:06:32.925):: CIpSymbol::LoadStructureInfo 1342 12
Line 27 (19:06:33.472):: Memory Available = 33871280 <132880>
Line 28 (19:06:33.630):: DeviceManager 0.0.1 has been started
Line 29 (19:06:33.829):: Device Access: Framework started
Line 30 (19:06:33.832):: Device Access: No DriverLocators found
Line 31 (19:06:33.832):: Device Access: DeviceAccess.frameworkEvent - no devices found
Line 32 (19:06:33.835):: DeviceAccess 0.0.1 has been started
Line 33 (19:06:34.504):: Memory Available = 33858944 <12336>
Line 34 (19:06:34.832):: DynamicDeviceDetector 0.0.1 has been started
Line 35 (19:06:35.230):: Alias "/" was registered by bundle 12
Line 36 (19:06:35.326):: Alias "/web/root" was registered by bundle 12
Line 37 (19:06:35.370):: Alias "/web/module" was registered by bundle 12
Line 38 (19:06:35.373):: RootServlet 0.0.1 has been started
Line 39 (19:06:35.406):: Alias "/web/devices" was registered by bundle 12
Line 40 (19:06:35.409):: DeviceServlet 0.0.1 has been started
Line 41 (19:06:35.452):: Alias "/web/config" was registered by bundle 12
Line 42 (19:06:35.455):: ConfigServlet 0.0.1 has been started
Line 43 (19:06:35.523):: Alias "/web/dvx_2100hd/config" was registered by bundle 12
Line 44 (19:06:35.527):: DVXConfigServlet 0.0.1 has been started
Line 45 (19:06:35.564):: Alias "/web/security" was registered by bundle 12
Line 46 (19:06:35.567):: SecurityServlet 0.0.1 has been started
Line 47 (19:06:35.594):: Alias "/web/dynamic" was registered by bundle 12
Line 48 (19:06:35.597):: DynamicServlet 0.0.1 has been started
Line 49 (19:06:35.601):: Morpheus: Starting devicesdkrt.jar
Line 50 (19:06:36.469):: Memory Available = 33783328 <75616>
Line 51 (19:06:37.012):: duet bundle installed: /lib/jars/duet/devicesdkrt.jar
Line 52 (19:06:37.015):: Memory Available = 33726112 <57216>
Line 53 (19:06:37.451):: Memory Available = 33694176 <31936>
Line 54 (19:06:37.468):: starting duet bundle: /lib/jars/duet/devicesdkrt.jar
Line 55 (19:06:37.472):: Morpheus: Starting snapirouter.jar
Line 56 (19:06:37.543):: Memory Available = 33678544 <15632>
Line 57 (19:06:38.451):: Memory Available = 33611792 <66752>
Line 58 (19:06:38.576):: duet bundle installed: /lib/jars/duet/snapirouter.jar
Line 59 (19:06:38.580):: Memory Available = 33584624 <27168>
Line 60 (19:06:38.956):: CIpSymbol::LoadGlobalLocalInfo 121022 3046
Line 61 (19:06:38.989):: Memory Available = 33545728 <38896>
Line 62 (19:06:39.039):: CIpUffHandler::Module Header
Line 63 (19:06:39.193):: starting duet bundle: /lib/jars/duet/snapirouter.jar
Line 64 (19:06:39.238):: WebPortalImpl: registering web portal with HTTP server - /web/portal
Line 65 (19:06:39.241):: Alias "/web/portal" was registered by bundle 12
Line 66 (19:06:39.241):: Web Portal Device 0.0.1 has been started
Line 67 (19:06:39.297):: App Manager 0.0.1 has been started
Line 68 (19:06:39.326):: AppLoader: no app jar bundle has been installed
Line 69 (19:06:39.417):: CIpCodeMan::LoadCode 7740 10
Line 70 (19:06:41.061):: Framework launched
Line 71 (19:06:41.134):: CIpListMan::LoadVolatile 38606 10
Line 72 (19:06:41.137):: CIpListMan::LoadNonVolatile Restore 14
Line 73 (19:06:41.137):: CIpDirect::LoadDirect 88 10
Line 74 (19:06:41.140):: CIpCodeMan::LoadTable 14 10
Line 75 (19:06:41.140):: CIpDeviceList::LoadDeviceList 6 10
Line 76 (19:06:41.144):: CIpTempMan::LoadTemplate 8838 10
Line 77 (19:06:41.144):: CIpSymbol::LoadFileInfo 286 3
Line 78 (19:06:41.147):: CIpSymbol::LoadStructureInfo 1342 12
Line 79 (19:06:41.212):: CIpSymbol::LoadGlobalLocalInfo 120616 3034
Line 80 (19:06:41.215):: Memory Available = 33168352 <377376>
Line 81 (19:06:41.215):: CIpUffHandler::Module Header
Line 82 (19:06:41.219):: CIpCodeMan::LoadCode 7598 11
Line 83 (19:06:41.239):: CIpListMan::LoadVolatile 38558 11
Line 84 (19:06:41.242):: CIpListMan::LoadNonVolatile Restore 14
Line 85 (19:06:41.242):: CIpDirect::LoadDirect 150 11
Line 86 (19:06:41.245):: CIpCodeMan::LoadTable 10 11
Line 87 (19:06:41.245):: CIpMutual::LoadList 218
Line 88 (19:06:41.246):: CIpDeviceList::LoadDeviceList 6 11
Line 89 (19:06:41.250):: CIpTempMan::LoadTemplate 8838 11
Line 90 (19:06:41.250):: CIpSymbol::LoadFileInfo 292 3
Line 91 (19:06:41.253):: CIpSymbol::LoadStructureInfo 1342 12
Line 92 (19:06:41.320):: CIpSymbol::LoadGlobalLocalInfo 120440 3030
Line 93 (19:06:41.323):: Memory Available = 32796432 <371920>
Line 94 (19:06:41.323):: CIpUffHandler::Module Header
Line 95 (19:06:41.326):: CIpCodeMan::LoadCode 9488 12
Line 96 (19:06:41.413):: CIpListMan::LoadVolatile 38654 12
Line 97 (19:06:41.416):: CIpListMan::LoadNonVolatile Restore 14
Line 98 (19:06:41.416):: CIpDirect::LoadDirect 56 12
Line 99 (19:06:41.419):: CIpCodeMan::LoadTable 10 12
Line 100 (19:06:41.419):: CIpDeviceList::LoadDeviceList 6 12
Line 101 (19:06:41.422):: CIpTempMan::LoadTemplate 8838 12
Line 102 (19:06:41.423):: CIpSymbol::LoadFileInfo 296 3
Line 103 (19:06:41.426):: CIpSymbol::LoadStructureInfo 1342 12
Line 104 (19:06:41.468):: Memory Available = 32675608 <120824>
Line 105 (19:06:41.484):: Memory Available = 32614816 <60792>
Line 106 (19:06:41.510):: CIpSymbol::LoadGlobalLocalInfo 120786 3037
Line 107 (19:06:41.513):: Memory Available = 32423536 <191280>
Line 108 (19:06:41.513):: CIpUffHandler::Module Header
Line 109 (19:06:41.517):: CIpCodeMan::LoadCode 12282 13
Line 110 (19:06:41.540):: CIpListMan::LoadVolatile 38666 13
Line 111 (19:06:41.542):: CIpListMan::LoadNonVolatile Restore 14
Line 112 (19:06:41.543):: CIpDirect::LoadDirect 224 13
Line 113 (19:06:41.546):: CIpCodeMan::LoadTable 14 13
Line 114 (19:06:41.546):: CIpDeviceList::LoadDeviceList 6 13
Line 115 (19:06:41.549):: CIpTempMan::LoadTemplate 8838 13
Line 116 (19:06:41.549):: CIpSymbol::LoadFileInfo 286 3
Line 117 (19:06:41.552):: CIpSymbol::LoadStructureInfo 1342 12
Line 118 (19:06:41.618):: CIpSymbol::LoadGlobalLocalInfo 120932 3043
Line 119 (19:06:41.623):: Memory Available = 32060648 <362888>
Line 120 (19:06:41.623):: CIpUffHandler::Module Header
Line 121 (19:06:41.623):: CIpCodeMan::LoadCode 1260 14
Line 122 (19:06:41.626):: CIpListMan::LoadVolatile 4092 14
Line 123 (19:06:41.626):: CIpListMan::LoadNonVolatile Restore 14
Line 124 (19:06:41.629):: CIpCodeMan::LoadTable 10 14
Line 125 (19:06:41.629):: CIpDeviceList::LoadDeviceList 6 14
Line 126 (19:06:41.632):: CIpTempMan::LoadTemplate 8838 14
Line 127 (19:06:41.632):: CIpSymbol::LoadFileInfo 154 2
Line 128 (19:06:41.635):: CIpSymbol::LoadStructureInfo 1342 12
Line 129 (19:06:41.641):: CIpSymbol::LoadGlobalLocalInfo 7158 160
Line 130 (19:06:41.644):: CIpSymbol::LoadModuleInfo 274 13
Line 131 (19:06:41.650):: CIpUffHandler::Load Good Incoming was 51% of Actual Size 1942KB
Line 132 (19:06:41.656):: CIpUffHandler::Load - NV Ram Total 1047536
Line 133 (19:06:41.661):: CIpUffHandler::Load - NV Ram Used 6000
Line 134 (19:06:41.696):: Memory Available = 31914440 <146208>
Line 135 (19:06:41.732):: Memory Available = 31828040 <86400>
Line 136 (19:06:49.716):: CIpInterpreter::Run - Execute Startup Code
Line 137 (19:06:50.271):: CIpEvent::OnLine 0:1:1
Line 138 (19:06:50.274):: Memory Available = 31782672 <45368>
Line 139 (19:06:50.274):: CIpEvent::OnLine 5001:1:1
Line 140 (19:06:50.275):: CIpEvent::OnLine 5001:2:1
Line 141 (19:06:50.275):: CIpEvent::OnLine 5001:3:1
Line 142 (19:06:50.278):: CIpEvent::OnLine 5001:4:1
Line 143 (19:06:50.278):: CIpEvent::OnLine 5001:5:1
Line 144 (19:06:50.278):: CIpEvent::OnLine 5001:6:1
Line 145 (19:06:50.281):: CIpEvent::OnLine 5001:7:1
Line 146 (19:06:50.281):: CIpEvent::OnLine 5001:8:1
Line 147 (19:06:50.281):: CIpEvent::OnLine 5001:9:1
Line 148 (19:06:50.285):: CIpEvent::OnLine 5001:10:1
Line 149 (19:06:50.285):: CIpEvent::OnLine 5001:11:1
Line 150 (19:06:50.285):: CIpEvent::OnLine 5001:12:1
Line 151 (19:06:50.289):: CIpEvent::OnLine 5001:13:1
Line 152 (19:06:50.289):: CIpEvent::OnLine 5001:14:1
Line 153 (19:06:50.289):: CIpEvent::OnLine 5001:15:1
Line 154 (19:06:50.289):: CIpEvent::OnLine 5001:16:1
Line 155 (19:06:50.292):: CIpEvent::OnLine 5001:17:1
Line 156 (19:06:50.298):: CIpEvent::OnLine 32001:1:1
Line 157 (19:06:50.301):: CIpEvent::OnLine 33001:1:1
Line 158 (19:06:52.321):: Loading 4 Duet Modules.
Line 159 (19:06:52.339):: IPDeviceDetector.run(): joined multicast group
Line 160 (19:06:55.188):: Device Access: DA.processNewDevice: {Device-Revision=1.0.0, Device-Category=serial,ip, Device-Make=AMX, Protocol-File=Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd, Physical-Device=0:3:0, objectClass=[Ljava.lang.String;@312e04, Device-SDKClass=com.amx.duet
Line 161 (19:06:55.191):: componentsdk.base.Module, Debug-Level=ERROR, Bundle-Version=1.0.0, Device-Model=DeviceDriverEngine, Duet-Device=41011:1:0, service.id=13, Duet-Module=DeviceDriverEngine}
Line 162 (19:06:55.195):: Device Access: loadDrivers: searching for 1 drivers
Line 163 (19:06:55.198):: Device Access: isDriverActive: checking for active driver - /bundle/DeviceDriverEngine
Line 164 (19:06:55.198):: Device Access: isDriverActive: driver not active - /bundle/DeviceDriverEngine
Line 165 (19:06:55.499):: Memory Available = 31772296 <10376>
Line 166 (19:06:55.595):: DA: installing dependency: file:doc:/bundle/snapirouter2.jar
Line 167 (19:06:55.711):: doc:/bundle/snapirouter2.jar: dependency bundle matches flash file manifest
Line 168 (19:06:55.715):: DA: installing dependency: file:doc:/bundle/componentsdkrt.jar
Line 169 (19:06:55.813):: doc:/bundle/componentsdkrt.jar: dependency bundle matches flash file manifest
Line 170 (19:06:55.818):: DA: installing dependency: file:doc:/bundle/jregex1.2_01-bundle.jar
Line 171 (19:06:55.832):: doc:/bundle/jregex1.2_01-bundle.jar: dependency bundle matches flash file manifest
Line 172 (19:06:55.836):: DA: installing dependency: file:doc:/bundle/json-bundle.jar
Line 173 (19:06:55.849):: doc:/bundle/json-bundle.jar: dependency bundle matches flash file manifest
Line 174 (19:06:55.852):: DA: installing dependency: file:doc:/bundle/js-14-bundle.jar
Line 175 (19:06:55.933):: doc:/bundle/js-14-bundle.jar: dependency bundle matches flash file manifest
Line 176 (19:06:55.937):: DA: installing dependency: file:doc:/bundle/picocontainer-1.3-bundle.jar
Line 177 (19:06:55.951):: doc:/bundle/picocontainer-1.3-bundle.jar: dependency bundle matches flash file manifest
Line 178 (19:06:55.973):: Device Access: DeviceAccess.loadDrivers - installing bundle for /bundle/DeviceDriverEngine
Line 179 (19:06:56.308):: /bundle/DeviceDriverEngine: bundle matches flash file manifest
Line 180 (19:06:56.311):: Device Access: DeviceAccess.loadDrivers - starting bundle for /bundle/DeviceDriverEngine
Line 181 (19:06:56.456):: Device Access: DA.processNewDevice: {Device-Revision=1.0.0, Device-Category=serial,ip, Device-Make=AMX, Protocol-File=Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd, Physical-Device=0:4:0, objectClass=[Ljava.lang.String;@26d7b3, Device-SDKClass=com.amx.duet
Line 182 (19:06:56.460):: componentsdk.base.Module, Debug-Level=ERROR, Bundle-Version=1.0.0, Device-Model=DeviceDriverEngine, Duet-Device=41012:1:0, service.id=14, Duet-Module=DeviceDriverEngine}
Line 183 (19:06:56.469):: Device Access: loadDrivers: searching for 1 drivers
Line 184 (19:06:56.473):: Device Access: isDriverActive: checking for active driver - /bundle/DeviceDriverEngine
Line 185 (19:06:56.473):: Device Access: DeviceAccess.loadDrivers: driver already active
Line 186 (19:06:56.487):: com.amx.driverdesign.engine.Activator@31b2b2 Binding to file Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd
Line 187 (19:06:56.492):: Device Access: DA.processNewDevice: {Device-Revision=1.0.0, Device-Category=serial,ip, Device-Make=AMX, Protocol-File=Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd, Physical-Device=0:5:0, objectClass=[Ljava.lang.String;@312787, Device-SDKClass=com.amx.duet
Line 188 (19:06:56.507):: componentsdk.base.Module, Debug-Level=ERROR, Bundle-Version=1.0.0, Device-Model=DeviceDriverEngine, Duet-Device=41013:1:0, service.id=15, Duet-Module=DeviceDriverEngine}
Line 189 (19:06:56.683):: Device Access: loadDrivers: searching for 1 drivers
Line 190 (19:06:56.686):: Device Access: isDriverActive: checking for active driver - /bundle/DeviceDriverEngine
Line 191 (19:06:56.686):: Device Access: DeviceAccess.loadDrivers: driver already active
Line 192 (19:06:56.698):: Device Access: DA.processNewDevice: {Device-Revision=1.0.0, Device-Category=ip,serial,rs-232, Device-Make=LifeSize, Physical-Device=5001:1:0, objectClass=[Ljava.lang.String;@265b31, Device-SDKClass=com.amx.duet.devicesdk.VideoConferencer, Bundle-Version=1
Line 193 (19:06:56.716):: Memory Available = 31759920 <12376>
Line 194 (19:06:56.719):: 0.0, Device-Model=Room 220,Room 200, Duet-Device=41001:1:0, service.id=16, Duet-Module=LifeSize_Room220_Comm_dr1_0_0}
Line 195 (19:06:56.961):: Device Access: loadDrivers: searching for 1 drivers
Line 196 (19:06:56.964):: Device Access: isDriverActive: checking for active driver - /bundle/LifeSize_Room220_Comm_dr1_0_0
Line 197 (19:06:56.964):: Device Access: isDriverActive: driver not active - /bundle/LifeSize_Room220_Comm_dr1_0_0
Line 198 (19:06:57.143):: Module[0:3:0] setDebugLevel(1)
Line 199 (19:06:57.402):: Device Access: DeviceAccess.loadDrivers - installing bundle for /bundle/LifeSize_Room220_Comm_dr1_0_0
Line 200 (19:06:58.092):: /bundle/LifeSize_Room220_Comm_dr1_0_0: bundle matches flash file manifest
Line 201 (19:06:58.096):: Device Access: DeviceAccess.loadDrivers - starting bundle for /bundle/LifeSize_Room220_Comm_dr1_0_0
Line 202 (19:07:00.465):: Memory Available = 31452664 <307256>
Line 203 (19:07:12.504):: Memory Available = 31426008 <26656>
Line 204 (19:07:25.788):: Device Access: DA.processNewDevice: {Device-Model=Room 220,Room 200, Has-Pan-Tilt=true, Has-Privacy=true, objectClass=[Ljava.lang.String;@335d91, service.id=17, Has-Hook-Cycle=true, Has-PIP-Cycle=true, Has-Iris-Speed=false, Baud_Rate=9600, Has-Camera-Pres
Line 205 (19:07:25.791):: t-Cycle=true, Has-Privacy-Cycle=true, CALLTYPE=video, Duet-Model=Room 220,Room 200, Has-Volume-Ramp=true, Has-Volume-Mute-Cycle=true, Has-Iris=true, Physical-Device=5001:1:0, Has-Zoom-Ramp=true, Has-Auto-Answer=true, Has-Camera-Preset=true, Has-Hook=true,
Line 206 (19:07:25.791):: Has-Iris-Ramp=true, Has-Power-Cycle=true, Device-SDKClass=com.amx.duet.devicesdk.VideoConferencer, Has-PIP=true, Has-Focus=false, Duet-Make=LifeSize, Has-Input-Select-Cycle=true, Menu-List=EXIT,ENTER,BACK,ASTERISK,POUND,FLASH,REJECT,ACCEPT,MENU,CANCEL,RED
Line 207 (19:07:25.856):: GREEN,YELLOW,BLUE,CLEAR,SEND_GRAPHICS,SEND_INPUT,AUDIO,VIDEO, Timeout_Count=3, Device-Channels=308, Device-Revision=1.0.0, IP_Address=255.255.255.255, Poll_Time=10000, Device-Levels=32, Has-Power=true, Has-Auto-Focus-Cycle=true, Has-Volume=true, Port=23,
Line 208 (19:07:25.890):: enu-Navigate-List=UP,DOWN,LEFT,RIGHT,SELECT, Duet-Revision=1.0.0, Duet-Device=41001:1:0, Has-Auto-Focus=true, Device-Category=ip,serial,rs-232, BANDWIDTH=auto, Dialer-Count=10, Device-Make=LifeSize, Has-Auto-Answer-Cycle=true, Has-Menu-10Key=true, Has-Zoo
Line 209 (19:07:26.325):: =true, Has-Focus-Speed=false, Has-Menu-Navigate=true, Has-Focus-Ramp=false, Has-Auto-Iris=true, Has-Menu=true, Has-PIP-Position-Cycle=false, Has-Auto-Iris-Cycle=false, Has-Tilt-Ramp=true, IGNORE-UNKNOWN-NETLINX-COMMAND=true, Has-Audible-Ring=true, Has-Zoo
Line 210 (19:07:26.325):: -Speed=false, Has-Pan-Ramp=true, Bundle-Version=1.0.0, Has-Dialer=true, Has-Input-Select=true, Has-Audible-Ring-Cycle=true, CONNECT_PROTOCOL=auto, Has-Pan-Tilt-Speed=false, Has-Phonebook=true, Device-Service=com.amx.duet.routers.snapi.ISNAPIRouter}
Line 211 (19:07:26.329):: Device Access: loadDrivers: searching for 1 drivers
Line 212 (19:07:26.363):: Device Access: isDriverActive: checking for active driver - /lib/jars/duet/snapirouter
Line 213 (19:07:26.366):: Device Access: isDriverActive: driver not active - /lib/jars/duet/snapirouter
Line 214 (19:07:27.328):: Device Access: DeviceAccess.loadDrivers - installing bundle for /lib/jars/duet/snapirouter
Line 215 (19:07:28.069):: /lib/jars/duet/snapirouter: bundle matches flash file manifest
Line 216 (19:07:28.072):: Device Access: DeviceAccess.loadDrivers - starting bundle for /lib/jars/duet/snapirouter
Line 217 (19:07:30.484):: SNAPIRouter: MenuComponent loaded
Line 218 (19:07:30.706):: SNAPIRouter: PhonebookComponent loaded
Line 219 (19:07:35.363):: SNAPIRouter: SourceSelectComponent3 loaded
Line 220 (19:07:37.852):: SNAPIRouter: DialerComponent loaded
Line 221 (19:07:39.128):: SNAPIRouter: PowerComponent loaded
Line 222 (19:07:43.789):: SNAPIRouter: CameraComponent2 loaded
Line 223 (19:07:45.510):: SNAPIRouter: VolumeComponent2 loaded
Line 224 (19:07:46.754):: SNAPIRouter: VideoConferencerComponent loaded
Line 225 (19:07:47.562):: SNAPIRouter: ModuleComponent loaded
Line 226 (19:07:48.420):: CIpEvent::OnLine 41001:1:1
Line 227 (19:07:48.423):: Memory Available = 31347864 <78144>
Line 228 (19:07:48.518):: LifeSizeRoom: Unknown Command PROPERTY-PASSWORD,, received.
Line 229 (19:07:49.374):: (Reader=tInterpreter writer=tDeviceMgr)- CMessagePipe::Max = 25
Line 230 (19:07:49.397):: CIpEvent::OnLine 41001:2:1
Line 231 (19:07:49.400):: CIpEvent::OnLine 41001:3:1
Line 232 (19:07:49.402):: CIpEvent::OnLine 41001:4:1
Line 233 (19:07:49.403):: CIpEvent::OnLine 41001:5:1
Line 234 (19:07:49.405):: CIpEvent::OnLine 41001:6:1
Line 235 (19:07:49.408):: CIpEvent::OnLine 41001:7:1
Line 236 (19:07:49.411):: CIpEvent::OnLine 41001:8:1
Line 237 (19:07:49.411):: CIpEvent::OnLine 41001:9:1
Line 238 (19:07:49.414):: CIpEvent::OnLine 41001:10:1
Line 239 (19:07:49.417):: CIpEvent::OnLine 41001:11:1
Line 240 (19:07:49.417):: CIpEvent::OnLine 41001:12:1
Line 241 (19:07:49.417):: CIpEvent::OnLine 41001:13:1
Line 242 (19:07:49.421):: CIpEvent::OnLine 41001:14:1
Line 243 (19:07:49.421):: CIpEvent::OnLine 41001:15:1
Line 244 (19:07:49.421):: CIpEvent::OnLine 41001:16:1
Line 245 (19:07:49.421):: CIpEvent::OnLine 41001:17:1
Line 246 (19:08:00.594):: java.lang.OutOfMemoryError
Line 247 (19:08:00.606):: com.amx.driverdesign.engine.Activator@31b2b2 Binding to file Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd
Line 248 (19:08:01.998):: Module[0:4:0] setDebugLevel(1)
Line 249 (19:08:03.761):: java.lang.OutOfMemoryError
Line 250 (19:08:03.770):: com.amx.driverdesign.engine.Activator@31b2b2 Binding to file Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd
Line 251 (19:08:04.061):: Module[0:5:0] setDebugLevel(1)
Line 252 (19:08:06.144):: java.lang.OutOfMemoryError
Thanks in advance for any advice.
-Chris
0
Comments
Use "get duet mem" to check it or "set duet mem" to increase it.
"Duet Memory: 12M"
Thanks.
This controller is currently at a remote location, therefore I don't want to lock it up.
I'd say going to 20M would be a good test to see if that is an issue, but I've found 12M to be OK for 4 instances of only 2 different module types, so I'm not sure it is going to help.
So, all in all 5 duet virtual devices and only one comes on-line.
I will try increasing to 20M like you said and see what kind of results I get.
Thanks!
After I increased the Duet mem to 20M it loaded and the virtual device came online.
Unfortunately though, the virtual device is not communicating with the IP connected projector.
As you can see, the response from my queries is not getting data from the attached projector:
Interestingly enough, I get the following diagnostics errors:
When I send the command "?PROPERTY-IP Address" to the virtual device, I get the following response:
As you can see, I've set the IP property in the ONLINE EVENT, but for some reason it reports 2 IP addresses, the first of which is "not set" and the second being the address of the projector.
This is what I get when I send the "REINIT" command:
I've never had luck using Duet modules, and this seems to not be an exception. I usually get frustrated trying to mess around with them to get them to work and inevitably end up writing my own comm functions that I know how to troubleshoot and fix.
Anyone have an idea?
Thanks,
-Chris
???
Did I miss something?
It looks like it is adding your IP to an array of addresses and then only trying to connect to the default blank placeholder entry. I haven't seen this happen before.
Yeah, I added the REINIT part after I posted, anticipating you'd ask me about it.
I'll add my main code here because I'm sure someone will ask me for it eventually...
PROGRAM_NAME='Proj Test' #INCLUDE 'SNAPI.axi' // Used for SANPI constants DEFINE_DEVICE dvIPProjector1 = 0:3:0 dvIPProjector2 = 0:4:0 dvIPProjector3 = 0:5:0 (* Virtaul Devices *) vdvFrontProjector1 = 41011:1:0 vdvFrontProjector2 = 41012:1:0 vdvRearProjector = 41013:1:0 DEFINE_CONSTANT (* Projector Constants *) VOLATILE INTEGER PRJ_NUMBER_OF_PROJECTORS = 3 VOLATILE DEV PRJ_VIRTUAL_DEVICES[] = { vdvFrontProjector1, vdvFrontProjector2, vdvRearProjector } VOLATILE INTEGER PRJ_FRONT_PROJECTOR_1 = 1 VOLATILE INTEGER PRJ_FRONT_PROJECTOR_2 = 2 VOLATILE INTEGER PRJ_REAR_PROJECTOR_1 = 3 VOLATILE INTEGER PRJ_DEVICE_NUMBER_START = 41010 // Subtracted from the vdv to find the Prjoector number PRJ_FRONT_PROJECTOR_1_IP = '192.168.1.211' PRJ_FRONT_PROJECTOR_2_IP = '192.168.1.212' PRJ_REAR_PROJECTOR_1_IP = '192.168.1.213' VOLATILE INTEGER PRJ_IP_CONTROL_PORT = 23 VOLATILE CHAR PRJ_INPUT_COMP1 = 181 VOLATILE CHAR PRJ_INPUT_COMP2 = 182 VOLATILE CHAR PRJ_INPUT_LAN = 183 VOLATILE CHAR PRJ_INPUT_USB_A = 184 VOLATILE CHAR PRJ_INPUT_USB_B = 185 VOLATILE CHAR PRJ_INPUT_S_VIDEO = 186 VOLATILE CHAR PRJ_INPUT_VIDEO = 187 VOLATILE CHAR PRJ_INPUT_HDMI = 188 VOLATILE CHAR PRJ_INPUT_COMPONENT = 189 VOLATILE CHAR PRJ_INPUT_TEXT[9][12] = { 'COMPUTER_IN1', 'COMPUTER_IN2', 'LAN', 'USB_TYPE_A', 'USB_TYPE_B', 'S-VIDEO', 'VIDEO', 'HDMI', 'COMPONENT' } VOLATILE INTEGER PRJ_POWER_STATUS_OFF = 0 VOLATILE INTEGER PRJ_POWER_STATUS_ON = 1 VOLATILE INTEGER PRJ_POWER_STATUS_COOL = 2 VOLATILE INTEGER PRJ_POWER_STATUS_WARM = 3 DEFINE_TYPE STRUCTURE PRJ_INFO_STRCT { INTEGER intPowerStatus INTEGER intCoolDownTime INTEGER intCoolingSecLeft INTEGER intFilterHours INTEGER intLampHours INTEGER intWarmingSecLeft INTEGER intWarmUpTime CHAR strCurrentInput[16] } DEFINE_VARIABLE (* Projector Variables *) VOLATILE INTEGER intPRJ_FeedbackFlag = TRUE VOLATILE CHAR strPRJ_ProjXDDFileName[] = 'Hitachi_Video_Projector_CP-X4022WN_1.0.0.xdd' VOLATILE CHAR strPRJ_Projector_IP[PRJ_NUMBER_OF_PROJECTORS][15] // Projector IP addresses VOLATILE PRJ_INFO_STRCT stcPRJ_ProjInfo[PRJ_NUMBER_OF_PROJECTORS] // Structure to hold projector attriubutes DEFINE_FUNCTION fnProjectorCMD(INTEGER intPrjNumber, INTEGER intCommand) { IF((intCommand >= PRJ_INPUT_COMP1) AND (intCommand <= PRJ_INPUT_COMPONENT)) // Change Input { SEND_COMMAND PRJ_VIRTUAL_DEVICES[intPrjNumber],"PRJ_INPUT_TEXT[(intCommand - 180)]" } // IP_CLIENT_OPEN(PRJ_VIRTUAL_DEVICES[intPrjNumber].port,strPRJ_Projector_IP[intPrjNumber],PRJ_IP_CONTROL_PORT,IP_TCP) // // PULSE[PRJ_VIRTUAL_DEVICES[intPrjNumber],intSANPICommand] } DEFINE_START strPRJ_Projector_IP[PRJ_FRONT_PROJECTOR_1] = PRJ_FRONT_PROJECTOR_1_IP strPRJ_Projector_IP[PRJ_FRONT_PROJECTOR_2] = PRJ_FRONT_PROJECTOR_2_IP strPRJ_Projector_IP[PRJ_REAR_PROJECTOR_1] = PRJ_REAR_PROJECTOR_1_IP (****** Modules ******) DEFINE_MODULE 'DeviceDriverEngine' MyDevice(vdvFrontProjector1, dvIPProjector1, strPRJ_ProjXDDFileName) //DEFINE_MODULE 'DeviceDriverEngine' MyDevice(vdvFrontProjector2, dvIPProjector2, strPRJ_ProjXDDFileName) //DEFINE_MODULE 'DeviceDriverEngine' MyDevice(vdvRearProjector, dvIPProjector3, strPRJ_ProjXDDFileName) DEFINE_EVENT DATA_EVENT[PRJ_VIRTUAL_DEVICES] { ONLINE: { STACK_VAR INTEGER intPrjNumber intPrjNumber = (data.device.number - PRJ_DEVICE_NUMBER_START) IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intPrjNumber),' is ONLINE!'" SEND_COMMAND PRJ_VIRTUAL_DEVICES[intPrjNumber],"'PROPERTY-IP_Address,',strPRJ_Projector_IP[intPrjNumber]" SEND_COMMAND PRJ_VIRTUAL_DEVICES[intPrjNumber],"'PROPERTY-Port,',ITOA(PRJ_IP_CONTROL_PORT)" SEND_COMMAND PRJ_VIRTUAL_DEVICES[intPrjNumber],"'REINIT'" } OFFLINE: { STACK_VAR INTEGER intPrjNumber intPrjNumber = (data.device.number - PRJ_DEVICE_NUMBER_START) IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intPrjNumber),' is OFFLINE!!!!'" } COMMAND: { STACK_VAR INTEGER intPrjNumber STACK_VAR CHAR strResponse[32] STACK_VAR CHAR strCommand[16] intPrjNumber = (data.device.number - PRJ_DEVICE_NUMBER_START) strResponse = DATA.TEXT IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intPrjNumber),' incoming COMMAND ="',strResponse,'"'" strCommand = REMOVE_STRING(strResponse,'-',1) SWITCH(strCommand) { CASE 'COOLDOWN-': { stcPRJ_ProjInfo[intPrjNumber].intCoolDownTime = ATOI(strResponse) } CASE 'COOLING-': { stcPRJ_ProjInfo[intPrjNumber].intCoolingSecLeft = ATOI(strResponse) } CASE 'FILTERTIME-': { stcPRJ_ProjInfo[intPrjNumber].intFilterHours = ATOI(strResponse) } CASE 'INPUT-': { stcPRJ_ProjInfo[intPrjNumber].strCurrentInput = strResponse } CASE 'LAMPTIME-': { stcPRJ_ProjInfo[intPrjNumber].intLampHours = ATOI(strResponse) } CASE 'WARMING-': { stcPRJ_ProjInfo[intPrjNumber].intWarmingSecLeft = ATOI(strResponse) } CASE 'WARMUP-': { stcPRJ_ProjInfo[intPrjNumber].intWarmUpTime = ATOI(strResponse) } } } } CHANNEL_EVENT[PRJ_VIRTUAL_DEVICES,LAMP_WARMING_FB] { ON: { STACK_VAR INTEGER intProjNumber intProjNumber = (channel.device.number - PRJ_DEVICE_NUMBER_START) IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intProjNumber),' is WARMING'" stcPRJ_ProjInfo[intProjNumber].intPowerStatus = PRJ_POWER_STATUS_WARM SEND_COMMAND PRJ_VIRTUAL_DEVICES[intProjNumber],'COUNTERNOTIFY-1' SEND_COMMAND PRJ_VIRTUAL_DEVICES[intProjNumber],'WARMING' } } CHANNEL_EVENT[PRJ_VIRTUAL_DEVICES,LAMP_COOLING_FB] { ON: { STACK_VAR INTEGER intProjNumber intProjNumber = (channel.device.number - PRJ_DEVICE_NUMBER_START) IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intProjNumber),' is COOLING'" stcPRJ_ProjInfo[intProjNumber].intPowerStatus = PRJ_POWER_STATUS_COOL SEND_COMMAND PRJ_VIRTUAL_DEVICES[intProjNumber],'COUNTERNOTIFY-1' SEND_COMMAND PRJ_VIRTUAL_DEVICES[intProjNumber],'COOLING' } } CHANNEL_EVENT[PRJ_VIRTUAL_DEVICES,LAMP_POWER_FB] { ON: { STACK_VAR INTEGER intProjNumber intProjNumber = (channel.device.number - PRJ_DEVICE_NUMBER_START) IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intProjNumber),' is ON'" stcPRJ_ProjInfo[intProjNumber].intPowerStatus = PRJ_POWER_STATUS_ON } OFF: { STACK_VAR INTEGER intProjNumber intProjNumber = (channel.device.number - PRJ_DEVICE_NUMBER_START) IF(intPRJ_FeedbackFlag) SEND_STRING 0, "'PRJ> Projector #',ITOA(intProjNumber),' is OFF'" stcPRJ_ProjInfo[intProjNumber].intPowerStatus = PRJ_POWER_STATUS_OFF } }Did we ever find the reason for the IP Address not filling out the correct field?
I've got the same problem.
I hate XDD files....
Hamish
Nope... just another unusable AMX duet module. I ended up writing my own Netlinx module for the projectors using the PJLink protocol.
Every time I think I can save myself some time by using a pre-written "module", I end up kicking myself in the a$$, as I waste double the time trying to get the module to work... and then inevitably have to write my own anyhow.
Someday I'll learn to just write my own from the beginning and save myself the stress!
I tried doing it several times. If you look at line 4 of the notifications, you can clearly see it is set (in some fashion).
This was the response from the "?PROPERTY_IP-Address" query:
It is as if it want's 2 IP addresses or it needs to populate two IP variables.
Hell if I know. That's the thing I really don't like about these DUET modules. There isn't a possibility for me to crack it open and fix whatever the author missed or broke.
Why can't these be written in Netlinx so we can fix/use them?
For example, if you send Then query 'Test' with a It will spit FooBar right back at you.
If the module is not looking for the value to be under the 'Test' (e.g. in the case of 'IP_Address' vs 'IP-Address') there's not going to be anything for it to work with internally.
I haven't worked with the XDD module extensively (been doing other things for the past 6 months or so) however have come across this exact situation with other externally developed modules previously.