Home AMX User Forum AMX General Discussion

Another Idiot Question

OK, now that I'm spamming the boards with newb questions I probably owe an explanation. I've programmed AXcess stuff before and I've been updating and modifying existing AXcess card carges and Axcent 3's in my facility for a while. We wanted to add some functionality so that I could control the systems from other rooms, and I called our dealer to ask some questions. Our dealer told me that the best way to do it would be to buy several NI-700s and slave the old card cages and axcent 3's to the 700s, that way we'd be able to keep 90% of the existing wiring in place. I took his advice and did just that.

He neglected to mention 2 things. 1, the Netlinx controllers (obviously) use a completely different language. This has thrown me for a loop. I've started the process to get the funds to go take a programming class I so desperately need, but unfortunately I have a deadline for getting this first system re-operational, and its before I can get to a class. I've scaled back my design significantly, but I've run into two problems.

1) While I can make an Axcent3 slave to the NI700 just fine, my ancient AXF-BP card frame doesn't appear to like the command "SET BASE DEVICE NUMBER." Someone on here mentioned that you should be able to slave a card cage, and my dealer told me I could as well, but I can't figure out how. The manual for the AXC-EM Master card I have mentions nothing about this . . . .

2) While I can make the IR ports on the Axcent 3 and the NI700 work beautifully (thanks to some help from this board), I'm having trouble converting the old Axcess code for the RS232 stuff. I'm hoping to control a Polycom VSX6000, a Sony Plasma, and an Extron switcher via 232. I haven't had a chance to try the Polycom or the Plasma, but the switcher isn't responding to anything I'm sending it. My original plan didn't have me doing this much new programming, I was under the impression it would be a fairly simple process to just load the code to a new box.

I've included the original Axcess code below . . .


SWITCHER=3

DEFINE_CALL 'SWITCHAUDIO' (I,O)
{
SEND_STRING SWITCHER,"ITOA(I)'*'ITOA(O)'$'"
}

DEFINE_CALL 'SWITCHVIDEO' (I,O)
{
SEND_STRING SWITCHER,"ITOA(I)'*'ITOA(O)'%'"
}


PUSH [TP,17]
{
CALL 'SWITCHAUDIO'(4,2)
CALL 'SWITCHVIDEO'(4,2)
}


I didn't write that but I've modified it several times as we've changed the wiring of the room, and its always worked just fine. I've read the manual from Extron about programming it and I understand everything that is going on in the Axcess version. However, when I try to convert it to Netlinx, I get it to compile, but the switcher simply doesn't switch . . . I've read AMX's technote on converting Axcess to Netlinx, and I THINK I've followed everything when I try the conversion, but it doesn't appear to be working. I dont really know enough about it to tell you any more but I'll happily answer any clarifying questions you need to ask.

For what its worth, I realize most of you guys have all taken the classes and probably aren't here just to answer the questions of people too lazy or cheap to do so, and I appreciate whatever help you're able to give me. Like I said, I'm hoping to take the classes myself and avoid needing help on such basic issues in the future, and I hope you're able to help me out of this jam I've gotten myself into in the first place.

Jeff

Comments

  • Jeff wrote:
    1) While I can make an Axcent3 slave to the NI700 just fine, my ancient AXF-BP card frame doesn't appear to like the command "SET BASE DEVICE NUMBER." Someone on here mentioned that you should be able to slave a card cage, and my dealer told me I could as well, but I can't figure out how. The manual for the AXC-EM Master card I have mentions nothing about this . . . Jeff

    The card frame will function, but you need to make sure there is no AXC-EM installed. The dip switches on the card frame continue to work as they did before.
    Jeff wrote:
    2) While I can make the IR ports on the Axcent 3 and the NI700 work beautifully (thanks to some help from this board), I'm having trouble converting the old Axcess code for the RS232 stuff. I'm hoping to control a Polycom VSX6000, a Sony Plasma, and an Extron switcher via 232. I haven't had a chance to try the Polycom or the Plasma, but the switcher isn't responding to anything I'm sending it. My original plan didn't have me doing this much new programming, I was under the impression it would be a fairly simple process to just load the code to a new box. Jeff

    My guess is that you need to set the baud rate for the NI-700 comm ports. Reference the Send_Commands for setting the baud. These are inserted in an Online Data_Event.
  • DHawthorneDHawthorne Posts: 4,584
    I can't answer how to change the base device for the cardframe, maybe someone else can chime in.

    But the problem with your switcher is the device number. For NetLinx,it must be in the Device:port:system format, not a simple 3.

    Under DEFINE_DEVICE, put your SWITCHER = line, but instead of just 3, make it - 5001:3:0; where 5001 is the device number of the chassis running the serial port (5001 is the default for an NI), and the 3 the actual port. If it's a port on your cardframe, the first number will be the base device number + the card port number, less one. So, if you make the base device 200, the first card is device 200, second 201, etc. The port number will be 1 for all single port cards, and a multi-port card like an IR card would be the number of the port you are using. The system number can be left at 0, which is the shortcut for "this system;" you only need change that if you have more than one master linked together.
  • A lazy reply

    Gday Jeff,

    I had the same issue as you when first transitioning from Axcess to Netlinx, as I'm sure many others have as well. Have a look at http://www.amxforums.com/showthread.php?t=1142 for some tips (including mine on string declarations :p)

    You will find the BASE DEVICE NUMBER dipswitches on the AXC-S card in the cardframe. http://www.amx.com/techdocs/0312640.pdf (From the http://www.amx.com/techcenter/manuals.asp page.) The Axcent3 (& 3Pro) implement the BASE number via software rather than hardware.

    Yours,
    Roger McLean
    Swinburne University
    Australia
  • Jeff wrote:
    DEFINE_CALL 'SWITCHAUDIO' (I,O)
    {
    SEND_STRING SWITCHER,"ITOA(I)'*'ITOA(O)'$'"
    }
    


    I think you also need to add some comma's to this... Netlinx is a little picker about that:
    Define_Call 'SWITCHAUDIO' (I,O)
    {
    Send_String SWITCHER,"Itoa(I),'*',Itoa(O),'$'"
    }
    
  • In order to make a cardframe a slave, you do need a slave card like Roger said above. This will allow you to set dip switch settings to set the base device number.

    Also, like Dave said, you cannot set the baud rate through the define_start section. So you will have to create data_events in order setup your RS232 ports.

    BTW, axcess ports do not support the TSET BAUD command.
  • JeffJeff Posts: 374
    Just in case nobody has ever told you, you guys are all awesome.

    I got to work at 8:10. Its 8:41, I've fixed both problems that I spent all day on yesterday.

    As it turns out I had figured out all the netlinx code correctly, I just didn't post it because I figured having you look at the stuff that I knew worked was the best way to do it. I'd messed up the code as well, in my 90 some odd attempts to make it work. And it turns out that the baud rate was the issue. I put in a SET BAUD send_command, and bam, it works perfectly.

    Somehow I never even looked at the server card in the cardframe to realize it had base device dipswitches . . . oops?

    Regardless, the entire situation now appears to be working. I'll be able to get this room up and running within the next 2 weeks, and that makes me much calmer than I was yesterday. I appreciate it immensely, and again, you guys are awesome. Thanks so much.

    Jeff
Sign In or Register to comment.