Home AMX User Forum AMX General Discussion

Virtual remote control on PC for testing stuff like IR on an NI?

Does anything like a virtual remote-control looking remote for PC exist to test IRs, vdevs, other stuff on an NI?

Using on, off, pulse in the console is slow. Emulate / control requires me to change numbers and therefore is slow. IREdit is somewhat capable but you still have to scroll and select, and on/off is double-click, vs hold and release.

Basically, I can write a virtual remote control - user-configurable but by default using AMX standard channels - to test IR files loaded on an NI, vdevs and other stuff. Could also come in handy for configuring things that you don't have a user UI setup button exposed, or without even using a touchpanel. If something like this doesn't exist, would anyone be interested in use of one if I wrote one this weekend?

Comments

  • truetrue Posts: 307
    Well, I started one with wxLua, not really knowing what I was getting myself into...and after getting most of the code working, I find out that I can't get mouse up/down events on buttons. I don't know a thing about wxWidgets other than what I've been messing with today and I can't find anything that would tell me a solution, so...

    Here's a screenshot of the initial layout. My idea (and what is possible now) is to have multiple layouts, including user-definable ones. I figure that this default would work for most of us though.
  • PhreaKPhreaK Posts: 966
    Nice one true!

    As an extension to this I've been thinking about a duet module controller / monitor to assist with debugging. It would be relatively trivial to create a module which could search for services advertised by other duet modules currently loaded and report this back to a control app. That way the app's interface could show all loaded modules and present a dynamic interface based on the service type of the module you select (ie. com.amx.duet.devicesdk.Switcher). This would allow the display of any relevant interaction options and state info based on the interface definition of the selected module.

    Now if only I could find a way to dynamically instantiate modules via the web interface without requiring a dynamic device to be defined on the NetLinx side. That way this could be a bolted on to an operational system without code modification and rebooting, or even access to the source code, and removed once you're done; again without rebooting.
  • truetrue Posts: 307
    I don't deal with Duet whatsoever. So I don't really know :( I'm only writing this because I needed to configure an AppleTV, didn't have the remote, and wasn't intending to run it IR, so I had to manually pulse commands - this makes it a little easier...

    All this does right now is connects via telnet and sends commands (as seen to the left). User/pass isn't supported right now. I have config working for setting master IP or hostname and setting D:P:S and changed operation to on/off style quick pulse, since I can't see a way of getting around wxWidgets limitation of only reporting when a button has successfully been pressed (vs monitoring mouse button up/down state) without basically mapping regions of the UI. I'm not familiar with wxWidgets (or wxLua) and only basically familiar with Lua so I don't really know of a way around this right now. It doesn't help I don't do much programming that has a GUI on it.

    I'm finishing up adding a manual channel pulse, then I can have people test this.

    EDIT: Here it is, tell me if it works or not.

    EDIT 2: Phew, nobody downloaded it. I'll be uploading a version that DOES support on/off events properly here shortly (I hope, fixing a big bug that came due to this). -- HAVE IT NOW, try it out, let me know if it is completely broken or not. Requires telnet to be enabled on the master and telnet authentication has to be off.
  • Jimweir192Jimweir192 Posts: 502
    Why don't you just use the PC version of iridium and you can test anything you want any way you want to just using a TP4 file.
  • truetrue Posts: 307
    Jimweir192 wrote: »
    Why don't you just use the PC version of iridium and you can test anything you want any way you want to just using a TP4 file.

    Because I asked if anything existed and got no answer. Though the forums are slow, the use of something like this matters more than waiting for an answer. Had I not done anything, this thread probably would've been ignored...
    Because it's not open source.
    Because it's not cross platform (namely, I see no Linux support).
    Because it costs a ridiculous amount of money for something as simple as testing. Even if I was being paid at inflated rates, I still spent less money in time writing a simple test environment and anyone can make their own using wxGlade or any other xrc UI editor. Sadly, I wrote this for free. :/

    So that's why.

    For what it's worth, I just tested it and it doesn't seem to work...(edit: seems to be linefeed issue) and I didn't copy the source to myself this morning for use on my dev notebook. Maybe I'll fix it tomorrow :/
  • Jimweir192Jimweir192 Posts: 502
    You could use a G3 webpanel if you are in a rush! Iridium is free to debs (1 copy).

    As for Linux and open source - exacty which AMX tools are either?

    Another choice would be the iPhone app AMXlinx which can do what you ask for ?12,
  • truetrue Posts: 307
    Jimweir192 wrote: »
    You could use a G3 webpanel if you are in a rush! Iridium is free to debs (1 copy).

    As for Linux and open source - exacty which AMX tools are either?

    Another choice would be the iPhone app AMXlinx which can do what you ask for ?12,
    Re: G3 webpanel (or any touchpanel for that matter), that will require code changes. I would rather directly control. I don't have an iPhone.

    And actually, AMX uses a lot of open source stuff (and doesn't abide by the software licenses either, but that's another matter), but it is true that the dev tools aren't open, which is frustrating. But should I dismiss open tools just because some are closed?
  • BrallenBrallen Posts: 25
    true wrote: »
    And actually, AMX uses a lot of open source stuff (and doesn't abide by the software licenses either, but that's another matter),

    Like what?
  • a_riot42a_riot42 Posts: 1,624
    true wrote: »
    Because I asked if anything existed and got no answer.

    I so rarely use control/emulate a device that any app to replace it would be more effort than its worth IMHO. Usually when I am using that dialog box its in conjunction with the code in question so opening a separate app doesn't appeal to me. Plus there are some tricks you can do with conrol/emulate that prove useful once in a while that might be hard to replicate.

    If you have free time and want to write a module, my recommendation would be to write one that does regular expressions. I have been meaning to do this for a while but haven't got round to it. But a module that essentially did the type of regex that you can do in Perl I would find extremely useful.
    Paul
  • viningvining Posts: 4,368
    a_riot42 Quote:
    Originally Posted by true
    Because I asked if anything existed and got no answer.

    I so rarely use control/emulate a device that any app to replace it would be more effort than its worth IMHO. Usually when I am using that dialog box its in conjunction with the code in question so opening a separate app doesn't appeal to me. Plus there are some tricks you can do with conrol/emulate that prove useful once in a while that might be hard to replicate.

    If you have free time and want to write a module, my recommendation would be to write one that does regular expressions. I have been meaning to do this for a while but haven't got round to it. But a module that essentially did the type of regex that you can do in Perl I would find extremely useful.
    Paul
    What? Once wasn't enough! :)
  • truetrue Posts: 307
    a_riot42 wrote: »
    I so rarely use control/emulate a device that any app to replace it would be more effort than its worth IMHO. Usually when I am using that dialog box its in conjunction with the code in question so opening a separate app doesn't appeal to me. Plus there are some tricks you can do with conrol/emulate that prove useful once in a while that might be hard to replicate.
    I agree that there isn't much use for this, and use would be rare, but when it's needed or wanted - don't have the remote for the device? don't have UI? need to set it up? ok! easy to do - it comes in handy.
    a_riot42 wrote: »
    If you have free time and want to write a module, my recommendation would be to write one that does regular expressions. I have been meaning to do this for a while but haven't got round to it. But a module that essentially did the type of regex that you can do in Perl I would find extremely useful.
    Paul
    I'm regex's beeotch. I suck at writing them, I don't know why :( but it sounds like a VERY good idea for something to write.
  • truetrue Posts: 307
    Brallen wrote: »
    Like what?

    Not an exhaustive list:
      Full-blown Linux system in MAX devices. (various)
      Linux kernel in most (all?) Modero touchpanels.(GPLv2)
      Other software in Modero touchpanels. (MPLv1.1, GPLv2)

    For at least the Moderos, there is no mention whatsoever of the GPL license, and as such, they are actively violating it. I'm talking with AMX right now about this issue. I...don't expect to get anywhere with it, which is sad. But if you want to continue this discussion, please start another thread.

    Regarding the actual remote software that this thread is about, I'll have another release with (hopefully) fixed command sending up in a few minutes.
  • a_riot42a_riot42 Posts: 1,624
    vining wrote: »
    a_riot42 Quote:

    What? Once wasn't enough! :)

    Not when you are using our ever reliable office network :(
    Paul
  • PhreaKPhreaK Posts: 966
    A NetLinx regex parser would be full of awesome. Maybe another project for the common libraries?
  • truetrue Posts: 307
    PhreaK wrote: »
    A NetLinx regex parser would be full of awesome. Maybe another project for the common libraries?
    I was thinking that too :)
  • truetrue Posts: 307
    OK, updated version here; let me know if it works or doesn't work. (Things that are broken: Options don't work; edit the config file manually. Pulse type setting doesn't work; not implemented.)

    EDIT: Tested this morning; it appears to work fine. Controlled a cable box without issue.
  • truetrue Posts: 307
    It doesn't look like there is much public interest in this. I've done a few things, like improved the UI and made it customizable (change button text and AMX channels, make your own UIs if you're brave, initial multiple UI support, etc), added send command/string, ... I am intending to extend this to be more usable than it currently is, but as it is now, it is mostly usable enough for me. I don't know who else is interested though.

    Again, I understand this is really a niche debug tool but some people may have a use for a computer-based application that resembles a remote control (or a grid of buttons for a switcher, or whatever other UIs will be made) to debug code or manually control devices. If you do or think you may in the future need something like this, speak up; otherwise, I won't continue to develop it.
  • truetrue Posts: 307
    Alright, last version for a while until I hear of interest or until I am interested in hacking on it. It doesn't require you to touch a config file anymore. All the host settings are changed within the GUI.

    Maybe I'll just start on the regex parser. (sigh)
  • Spire_JeffSpire_Jeff Posts: 1,917
    I don't have need for this often, but there have been a couple of times when developing something that this would have come in handy. I will try to give it a go this week, but I am WAY behind on some code I need to finish and this week is shaping up to be very busy :(

    I will definitely get to it tho.

    Jeff
  • truetrue Posts: 307
    Keep in mind if you don't like my channel assignments for whatever reason, you can change them by editing buttons.txt in the /ui/<ui to edit>/ folder. (If you want to know more details about this, check the readme.) I also just got done with a 10x10 grid of buttons. Also going to make an 8x8, 16x16, 18x18 for the next release, as well as a remote with DVD transports on it.

    Edit: Adding the switchable UI code was easier than I thought. Here it is. All I have is the cable-type remote and the 10 by 10 grid. Something else I think I'll add is a global channel offset. I've got lots of "for the future" thoughts but again I doubt interest is high enough to warrant that much development.

    Edit 2: Seems to be a bug with the addition of lfs. I just got it on another system but not the development system. I'll try to figure it out.
  • jjamesjjames Posts: 2,908
    Want to know what'd be REALLY handy?

    G4Panel Preview to be able to connect to a master . . . hmmmm. It's been something I've been working on (in my "spare" time) but haven't gotten far at all.
  • truetrue Posts: 307
    jjames wrote: »
    Want to know what'd be REALLY handy?

    G4Panel Preview to be able to connect to a master . . . hmmmm. It's been something I've been working on (in my "spare" time) but haven't gotten far at all.
    ^ This. Different tool but certainly more useful.
  • truetrue Posts: 307
    New version. Have 10x10grid, 16x16 switcher, 48x48 switcher and cable-style remote control UIs. Other than unimplemented features, let me know what bugs you find. (I've used this tool twice so far - finding more and more uses for it)

    Also, the bug where lfs wasn't being loaded is fixed.
  • feddxfeddx Posts: 183
    I will look this over this weekend True. This seems like a good start to a project that I could have used once or twice.

    And regardless of the seeming lack of interest, I'll bet those of us that replied in this thread are NOT the only ones who could/will use this.

    Thanks again. and keep on keeping on.
Sign In or Register to comment.