Home AMX General Discussion

Arrakis DC6

SlavikSlavik Junior MemberPosts: 18
Hi everyone.
I'am trying to cotrol arrakis DC6, but code block from AMX not works.
Does anyone have module or codeblock for Arrakis that work?

Comments

  • Reese JacobsReese Jacobs Junior Member Posts: 344
    Arrakis DC6

    Which AMX code block did you use? I am currently using the most recent posted AMX code block for the DC6 found under InConcert and dated 7/11/03. I made some custom modifications to the code block to suit our environment but using that code block, I am successfully controlling 2 Arrakis DC6 units in a commercial environment. Both DC6 units are attached to ports on an NXC-COM2 card which is housed in an NXF - standard NXC-ME260 is used for control.

    The code block was contributed to AMX by a third party. I had to make some modifications for the genre handling to work correctly but in general, the module worked well for basic connectivity and transport control of the Arrakis. Perhaps you can be more specific about the nature of the problem and I might be able to answer a question for you. The module does however seem to work at least in my environment. I will review the module later to see if I made any additional changes that might be applicable for you since I marked all of my changes using conditional compilation directives to enable me to determine where the module deviated from the original source code.

    Reese
  • SlavikSlavik Junior Member Posts: 18
    I am using same code. The transports work, but update of panels I'am not see. Also after some times the arrakis stucks.
  • Reese JacobsReese Jacobs Junior Member Posts: 344
    The module is a bit complex and it took some time to study it and understand it to the point we could adapt it for use in our applications. We too had situations where the module would work fine with the DC6 for several hours and then all of a sudden, no transport control, no touchpanel updates, nothing. It appeared that the DC6 was dead but it turned out that transports did work but notifications from the DC6 were not happening. We tracked this down to Zone AutoReporting (ZR A+) being disabled and enabled in the module and under certain circumstances, the event which triggered the enabling of zone autoreporting was being missed and hence no further asynchornous events were delivered to the module. This of course made the unit appear dead and no touchpanel updates occurred.

    As a result, we added the following code (inside the ORIGINAL_MODULE conditional, to force Zone AutoReporting back on when the GET_ID response was encountered from the DC6. This is the Keepalive message that is sent to the device periodically and when the device responds, we ensure that Zone AutoReporting is enabled. Using this change, we have had great success with the module reliably controlling a set of DC6 units in a hotel application. We use genre control for CD/Track selection and of course we provide the interface for genre selection as well as standard transports.

    Now, having said this, there are some known problems with the DC6 (even documented in the module) where it will hang if it receives too many commands at the same time. The protocol is fairly complex and there seems to be some problems in the DC6 handling incoming messages particularly if they are not throttled properly (this is not a baud rate issue but the processing of the commands by the DC6). As a result, the module goes to great lengths to control the flow of messages to the DC6. You might be encountering a situation we did not encounter in production but the other caution (from Arrakis) is to ensure you have the latest firmware for the DC6 loaded. You can obtain the firmware from their web site:

    www.arrakis-systems.com

    Hope this helps some. The following is the code sample illustrating the addition of the Zone AutoReport enable for all zones in the GET_ID device response.
              case GET_ID:
              {
                if (find_string(cMsg,' DC4 Six-Play',1))  //!!REV4.1: Look for specific version type
                {
                   if (timeline_active(tlNoFrameTimeout))
                      timeline_kill(tlNoFrameTimeout)
                   off [nNoFrameResponse]
                   
                   //Unit is online now
                   if (timeline_active(tlPollResponse))
                      timeline_kill(tlPollResponse)
    #IF_DEFINED TP3
                   send_command dvTPs,"'!T',nInfo,'Online: ',cMsg"
    #ELSE
                   send_command dvTPs,"'^TXT-',ITOA(nInfo),',1&2,','Unit #1 Online: ',cMsg"
    #END_IF
    #IF_NOT_DEFINED ORIGINAL_MODULE
                   AddDigilinkQueue("'ZR A+!'",NORMAL_PRIORITY,0)
                   on [nZR_Active]
    #END_IF
                   if (!DigilinkOnline)     // Unit just came online
                   {
                      // Retrieve status now
                      timeline_create(tlGetStatus,lGetStatus,1,TIMELINE_RELATIVE,TIMELINE_REPEAT)
                      // DigilinkOnline will be set when timeline self-terminates
                   }
                   else
                   {  
                      // Resume polling now
                      timeline_create(tlPollOnline,lPollOnline,1,TIMELINE_ABSOLUTE,TIMELINE_REPEAT)  
                      on [DigilinkOnline]                          
                   }
                   nNoReplyCount = 0    // Reset the reply counter
                }
              }
    
  • Reese JacobsReese Jacobs Junior Member Posts: 344
    Arrakis DC6 Control

    One other thing I neglected to mention which might be applicable in your case, all of the SEND_COMMANDs in the module for touchpanel updates are based on G3 panel syntax. We modified the module to differentiate between G3 and G4 panels and to send the appropriate text commands to the G4 panels for updates since the syntax is slightly different from that used for G3 panels. The module and the TP reference file provided for the module all assume G3 panel types. If you are using G4 panels, this might explain why you are not getting any touchpanel updates even though TP control is working fine.

    Just a thought ...
  • SlavikSlavik Junior Member Posts: 18
    Thank you.
    I solved problem of notifacation.I don't understand, why Arrakis
    send me feedbacks not like others Arrakis.He send me back always the last command that I sent him. For example if I am sending command:
    "CP 0001D!"
    He return me
    "CP 0001D! and list of disks."
    So I changed original module and it is work perffect.
    But the problem of stucks I can not solve.
    I am using last firmware 3.06.
  • alexanboalexanbo Junior Member Posts: 282
    I think I might have encountered something similar and it turned out if I only connected pins 2,3,5 it cleared it up.

    I think there's also a technote somewhere that says there could be a problem if both pins 1 and 9 are connected for the NI Series.
  • paradigmpaulparadigmpaul Junior Member Posts: 24
    Arrakis DC6 & Arrakis DC4-6

    Any Help would be most appreciated.

    NI-2000 Serial Port 2->Arrakis DC-6 via VSSC(pins 2,3,5) Any port -all fail
    MVP-7500 -
    CP4 -
    16 dms keypads.

    Any DMS module interface???
    I am using the lastest arrakis module file from the inconcert site.( which has no DMS interface) any one who has some sample code that works and doesnt pend the interpreter due to 'chatty' nature of the the DC6 and the resource overhead for the DMS modules.....

    even with no dms, in code or connected..... Everything seems to be ok , but without fail the arrakis goes offline and usually kluges the serialport on the NI, even after reseting the DC6, the Master needs to be rebooted before it will recognize the device.

    Before I implemented the inconcert module, there was an existing program-this previous code, while brilliant, was rather abstract, and hard to work with. and induced what became known as a reboot downward spiral, perhaps 3-9 times before it was successful.
    However his code used a standard full serial cable with handshaking. and had a DMS implementation that was usable.

    this program proved to be unreliable, failing a number of times in several installations, with only 1 installation (NXC-ME260/NXI) running the program with an arrakis seemingly "bulletproof".

    after digging around i learned that the serial ports on the NI series have a smaller buffer 96k on the UART than the NXE.

    *Should the client invest in a COM2 card? with its larger buffer on the the serial port? would that be a full serial or VSSC3pin ?

    * should I have the tp devices use a different device port for other non variable text functions that are not related to the DC6 (IR->local gear, strings->lutron, AS16 switching? )

    *Should i try to implement the force Zone AutoReporting?
    I had to make some modifications for the genre handling to work correctly but in general, the module worked well for basic connectivity and transport control of the Arrakis. Reese

    * what modifications to the genre handling did you make? when changing different timelines in the module in a effort to stabilise it, the genre fields dd not populate properly with variable text, staggered 7-9 cells between data elements
    since the syntax is slightly different from that used for G3/G4panels.
    Reese
    *Since the system has a G3(cp4) amd G4(mvp-7500) what changes do have to i have to make?

    I Dont know if i my attempts at DMS interface are valid because the thing keeps falling offline.

    I'm about ready to give up and flush this arrakis (actually 2 DC6 installations) and sell them on ebay - one want one? make an offer..;)
Sign In or Register to comment.