Home AMX User Forum NetLinx Studio

DSS not recognizing channels

DirectTV is being controlled. On my channel keypad I am able to enter single digit channels, double digit channels and triple digit channels. The only problem is that when entering a triple digit channel and the 2nd digit is the same as the 3rd, it will only send it as a double digit channel.

For example: Channel 123 will work flawlessly and Channel 456 will work flawlessly. Now if you enter channel 122, it will send it as Channel 12. Or if you type in Channel 555 it will send it as Channel 55. Has anybody ran into this issue before?

Comments

  • ColzieColzie Posts: 470
    The pause between your IR pulses is too short. When you enter 1-2-2 the DSS box thinks the 2-2 is just one long 2 instead of two unique digits. If you increase the delay between the transmission of your numbers this problem will go away.
  • thank you for your input. i will look into that.
  • Colzie wrote: »
    The pause between your IR pulses is too short. When you enter 1-2-2 the DSS box thinks the 2-2 is just one long 2 instead of two unique digits. If you increase the delay between the transmission of your numbers this problem will go away.

    okay this is what i have:
    BUTTON_EVENT[dcDSS_BUTTONS]
    {
        PUSH:
        {
            intINDEX = GET_LAST(dcDSS_BUTTONS)   // GET THE ACTUAL BUTTON THAT WAS PRESSED IN THE ARRAY
            SET_PULSE_TIME (2)
            PULSE[dcDSS_IR[intINDEX]]            // PULSE THE IR FUNCTIONS
            SET_PULSE_TIME (5)
            TO[dcDSS_BUTTONS[intINDEX]]        // SEND FEEDBACK TO BUTTON WHILE PRESSED        
        }
    }
    

    how much higher should i set the pulse time?
  • ColzieColzie Posts: 470
    Sorry, I was thinking you were automating the channel selection, as in a favorite the client could press and the channel would be recalled.

    Based on your code, the easiest thing to do would be to change from a PULSE to a TO. This way it would operate just like a handheld remote - as the button is held the IR is emitted. People are very familiar with the timing necessary to operate devices via IR.

    If you do change to TO you don't need to change the pulse times, as that is for (obviously) pulses. In my last post I was referring to the time between pulses, not the actual pulse itself. SET_PULSE_TIME would not help you with the time between pulses.

    If for some reason you don't want to do a TO, you would want to send a stacked pulse
    send_command dvSAT, "'SP', itoa(iCmd)"
    
    this way the user could press three digits and the code would pulse them in order.
  • DHawthorneDHawthorne Posts: 4,584
    You really don't want to use SET_PULSE_TIME. For one thing, it's global, and will change the pulse timing for all your IR ports and your relays. For another, it only adjusts the length of the IR pulse, not the "space" between them.

    You want instead to use the CTON and CTOF send_commands to the IR port. Then, instead of using PULSE (which ignores those values), use the SP send_command to send the IR instead. Check AMX PI for the correct syntax; I'm so much in the habit of just cutting and pasting from project to project, I can never quite remember it exactly, and wind up looking it up myself if I don't have something to copy at hand. These methods allow you to set different values for different devices; I've especially noticed that fiddling with the off time scrambles some devices, so you most definitely don't want to adjust that for any device that doesn't specifically need it.
  • this is what it looks like now:
    BUTTON_EVENT[dcDSS_BUTTONS]
    {
        PUSH:
        {
            intINDEX = GET_LAST(dcDSS_BUTTONS)   // GET THE ACTUAL BUTTON THAT WAS PRESSED IN THE ARRAY
            TO[dcDSS_IR[intINDEX]]                             // PULSE THE IR FUNCTIONS
            TO[dcDSS_BUTTONS[intINDEX]]                 // SEND FEEDBACK TO BUTTON WHILE PRESSED        
        }
    }
    
Sign In or Register to comment.