Duet Module Warming State didn't goes Off
Raphayo
Posts: 111
Hi all,
i'm currently working on a project and i'm having a strange issue.
I'm currently using channel_event[vdvDisplay,Warming] to know when the warming state switch from ON/OFF. at the same time i have enable counternofity-1 to know when warming-xx reach 0 and the warming state stay active. I didn't have this issue with the cooling state. any one have a clue for me.
Here's the part of the Data_event for my virtual device
Here's the part of the channel event
i have commented some line during my test to understand why it doesn't work.
Thanks folk for your help.
i'm currently working on a project and i'm having a strange issue.
I'm currently using channel_event[vdvDisplay,Warming] to know when the warming state switch from ON/OFF. at the same time i have enable counternofity-1 to know when warming-xx reach 0 and the warming state stay active. I didn't have this issue with the cooling state. any one have a clue for me.
Here's the part of the Data_event for my virtual device
COMMAND: { // local variables STACK_VAR CHAR cCmd[DUET_MAX_CMD_LEN] STACK_VAR CHAR cHeader[DUET_MAX_HDR_LEN] STACK_VAR CHAR cParameter[DUET_MAX_PARAM_LEN] STACK_VAR INTEGER nParameter //STACK_VAR CHAR cTrash[20] cCmd = DATA.TEXT send_string 0,data.text cHeader = DuetParseCmdHeader(cCmd) switch(cHeader) { CASE 'COOLDOWN': { TDisplay.ncoolingtime = atoi(DuetParseCmdParam(cCmd)) //fnSendCommand(dvTPMain,"'^BMF-1,0,%GH',itoa(TDisplay.ncoolingtime),'%GL0'") // Set level range of TP } CASE 'WARMUP': { TDisplay.nwarmingtime = atoi(DuetParseCmdParam(cCmd)) //fnSendCommand(dvTPMain,"'^BMF-2,0,%GH',itoa(TDisplay.nwarmingtime),'%GL0'") // Set Level range of TP } CASE 'COOLING': { nParameter = atoi(DuetParseCmdParam(cCmd)) if(nParameter=False) TDisplay.ncooling=false else TDisplay.ncooling=true TDisplay.nwaitingtimer = nParameter*255/TDisplay.ncoolingtime fnSendLevel(dvTPMain,display_waitlvl,TDisplay.nwaitingtimer) } CASE 'WARMING': { nParameter = atoi(DuetParseCmdParam(cCmd)) if(nParameter=False) { TDisplay.nwarming=false //fnSendCommand(vdvDisplay,'INPUTSELECT-6') } else { TDisplay.nwarming=true } TDisplay.nwaitingtimer = nParameter*255/TDisplay.nwarmingtime fnSendLevel(dvTPMain,display_waitlvl,TDisplay.nwaitingtimer) } CASE 'INPUTSELECT': { nParameter = atoi(DuetParseCmdParam(cCmd)) TDisplay.ninput = nParameter } } } }
Here's the part of the channel event
channel_event[vdvDisplay,display_cooling] // Display Cooling { on: { //TDisplay.ncooling=true fnSendString(0,'Display Cooling') } off: { //TDisplay.ncooling=false fnSendString(0,'Display Cooling Complete') } } channel_event[vdvDisplay,display_warming] // Display Warming { on: { //TDisplay.nwarming=true fnSendString(0,'Display Warming') } off: { //Tdisplay.nwarming=false //send_command vdvDisplay,'INPUTSELECT-6' fnSendString(0,'Display Warming Complete') } }
i have commented some line during my test to understand why it doesn't work.
Thanks folk for your help.
0
Comments
What do you get back in terms of the feedback channels? Is 253 (SNAPI warming) going OFF or staying on? If telnet shows that it is going OFF, then it is netlinx code related. If it never goes off, then it is pointing towards a module problem.
To test your code, can you emulate the channel event through studio? If so, does that fire your send_string 0?
can I telnet the processor yo get the state of a vdevice?
I was only using emulate/control in studio
to troubleshoot.
if I reinit the module when the warming countdown is complete, everything goes fine.
right now I'm using the duet module of an NEC np600 projector because it's the device I have with me.
can i do the same thing with the web application in the processor under diagnostics ?
i copy what i have monitor with mange system web browser
My guess is that given the mixed results you are receiving, it could be a problem with the module not understanding the response from the device. If you telnet into the processor again, you can do the following to try and further diagnose the issue on your own:
and observe the parsing of responses and how/if/why it is breaking down.
if i passthru the command send after the countdown is complete the projector response me and the warming state going away.
Good AM Raphael,
Try using 91; it is probably a logic error...
90 is the min value.
Let me know if this works.
Control is IP or RS232?
If RS232 monitor the strings to and from the projector to see if it is actually using feedback.
If IP, use WireShark...
If they are faking the feedback; it could still be a logic issue.
Doesn't help if it is a logic module, but you could create your on Fake feedback to handle this.
Or create your own module... a bit of work.
i would probably using that alternative with a timeline after the countdown is finnish and kill this timeline when the warming state will goes low.
the magic of writing code
Are you doing a lot of AMX in Montreal?
It seems most of the new jobs in Calgary are Cre$tron.
Shell is moving everything to Cre$tron over the next 2 years.
I have to go back out to TO in Oct/Nov to do Cre$tron P201.
Completed PII, and submitted the Project for "marking" and have not heard back...
Did you do PIII?