Launcher Controller

As you noted, that was woefully unexplained. The place where I noticed the launcher was in the 'Setup Display' screen, where it appears both as a controller type (with almost nothing to configure) and as the possible name of an element (presumably a 'Single Item') that might be patched to a launcher controller item. So how does everything fit together?
 

This web page has a little bit of documentation on the launcher effect. I have not personally used this effect or controller in a show but if you figure stuff out, I am happy to update the Vixen online help with additional information.
 
This is a snippet of an e-mail conversation I had with the Vixen leads on this effect:

Yes there is a specific Launcher controller. That controller takes the intent from the Launcher effect and translates it to a command line and then shells out and executes it. You can opt to let the command window open, or suppress it. The intent is a StringCommand and comes with pipe and comma delimited text that forms the command and the arguments. I can’t recall the exact form, but the Launcher effect creates it from the effect properties in the proper form.

You are correct, the RDS and Launcher controllers / effects are intended to be used locally and would not export anything useful to FPP because they are string commands. It is probably worth making mention of that on the FPP section under Usage -> General -> Import / Export.
 
I use a dedicated Windows desktop that runs my show and off hours Christmas music through my transmitter. Everything is cat5 driven for now.

I have two Triks controlled channels defined in my setup display so it appears on my sequence editor and Adjustable Preview.
-yes I can run two separate Ledtriks units, I was given the source code(LTC11) to convert to C# and embed into V3 but Ledtriks popularity faded so I edited LTC11 to point to a second .dat file and run LTC11 and LTC12 from separate directories allowing for two unique .dat files

Quick and dirty but it works!

JCB added posts before I sent this but the command line/shell/execute is exactly how I understand this and how I use it.

If you recall how V2 used cell intensity value assigned to a specific .bat file, V3 ignores cell value and each Launcher event contains its own user defined command line data. I just treat the Launcher like a windows Cmd line operation (or as a PowerScript command)
 
OK, thanks. I finally found the 'launch' effect, and I'll play with it when I find my laptop that has the command-line parts of vscode on it.
 
OK, here's where I'm at.

First, I've created a small command-line c++ program using command-line tool (sorry, Martin, that's what I'm used to, and you know how the saying about old dogs goes) that opens a file in my home directory, immediately writes a string to it, then enters a loop writing a short line to that still-open file (using the c/c++ 'select' command to create ~16 mS delays between each write). This program behaves as expected (creating the afore-mentioned file and writing to it) when invoked from the command line (it doesn't need any arguments, nor does it check for them).

When invoked from the scheduler it behaves the same way as a 'startup' entry it behaves the same way, continually running and writing to that file in my Windows home directory.

It behaves differently when invoked from within a sequence. It creates a zero-size file in my home directory, but doesn't appear to write anything to it while the show is running. However, when I stop the show a lot of data appears in the file, what I would have expected to show up along the way.

Nothing seems to happen when I'm running the sequence by itself within the sequence editor (no file created, nothing).

Maybe I need to add something to my program to flush the data, but I'll keep playing with it.
 
Just so that this is not so mysterious, the context is my attempting to make a streaming network more resilient to WiFi packet loss. Since the vixen controller drivers only have access to data for the current pixel frame, I'm thinking of having the Vixen player launch a program (bypassing the controller drivers) that would read previously exported csv files and transmit their data in non-sequential order to my bespoke ESP01 (or later on, ESP32) controllers. This was mentioned in paddler's lag-problem thread in the 'pixels and pixel controllers' forum.
 
There must be some C++ command to tell the Windows OS to update. For example, the Access database engine uses a "flush" command which also has to be followed by a doevents() command to let Windows take the time to do the instant flush. I think that's what you're missing. Without that, it just goes into a Windows cache (it's called the lazy write cache, for obvious reasons...) The downside to this is that there's time involved -- probably a few milleseconds or so. Sorry, it's been several years since I did any C++ work and I can't recall what it is in C++....
 
After eating dinner, writing some posts here, and doing some reading, nothing works the same anymore, if at all. Right now vixen crashes everytime I try to start it after showing a little pop-up that says 'waiting to start next show', or something to that effect. I'm going stop for now and try again tomorrow.
 
I'm just using windows command line functions and .bat files. I did find in the Scheduler - Launcher the command will function line it should. Within a sequence Effect-Launcher I sometimes have to stretch the effect to allow the command to fully execute. I do not know why.
 
After a hiatus I'm back to trying to get this working.

Right now my test program is a small command-line Win32 .exe program written in c++. It doesn't need any command line parameters, and runs for about 12 seconds transmitting a short multicast ipv4 packet every two seconds or so. The recipient of these packets is an ESP-01 that outputs an indication that it has received a packet on an Arduino serial monitor, and responds with a packet of it's own (which is ignored by the program on the PC). This program works fine (i.e. the ESP32 reports that it has received the expected packets) when invoked from a Developer Powershell window (which itseof seems to need to be invoked by the administrator), as well as the Startup program from the Vixen 3.10u1 scheduler.

However, there is no indication that anything happens when it's supposedly launched from by a sequence, either when the sequence is run from the scheduler or from the sequence editor. I took Aurbo's suggestion and extended the launcher effect to an entire 13-second sequence, with no results. One other thing of note is that the sequence had one group with 750 patch-point elements patched to a 750-output generic serial controller (although it wasn't attached to any serial port).
 
Silly question, are you running V3 in Administrator mode?

I seem to recall Ledtriks (LTC11.exe) did not execute within the Launcher unless it was in a .bat file

launcher.jpg

example;
12Days.bat contained the following command line

C:\LTC\LTC_11.exe C:\LTC\12Days.txt

and

12Days.txt contained the following command line parameters

C:\LTC\12Days2p.led
#FDL50
#FRM
#CLS
C:\LTC\snow(2p).led
#FDL50
#FRM
#CLS


It seems illogical but try wrapping your <Win32 .exe program> in a .batch file and try it as shown in the attached image

create a text file = PhilTest.bat
add the executable command = Win32 .exe program name on line 1
save .txt as .bat
 
Thanks, but:

Calling the .exe file from a .bat file had no effect (with or without the 'Win32.exe' at the start of the line. It did, however, work when the .bat file was invoked from a Developer Powershell.

I hadn't been running V3 as administrator, but doing so had no effect.
 
At this point I'm going to set this aside and plan to run from either a Linux or FreeBSD system. I'll see about running from a WSL2 box in a windows machine and directly accessing the systemConfig and sequence files from there. If that doesn't work because I can't get the packets out from there, I'll switch to a standalone Linux/FreeBSD box and access the Vixen files in the Windows box using ftp or some such program.
 
By chance are you storing your project files deep in a directory tree like "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\PhilTest.exe"
Launcher does not like long directory trees from my experience. That is why I use short and shallow directory trees like C:\LTC\LTC_11.exe
 
No - it's one level down in my home directory. Thinking about it on my walk home, I'm going to defer the decision to use a different OS. I have most of the code needed for a custom scheduler that can be tailored to any of the three operating systems that I use, with the only downside to doing it on windows is it's oddly-chosen 64 Hz default system timer.
 
Back
Top