poniedziałek, 17 kwietnia 2017

Running LabVIEW from PowerShell

Recently I was in a need to run LabVIEW VI from PowerShell while using Jenkins. The Jenkins part is pretty straightforward - you only need to install the PowerShell plugin for Jenkins and then you can run PowerShell command as a build step.

Running a VI from PS is simple, as long as you don't need to pass any commands. First of all, to make life easier add the LabVIEW executable path to the PATH environmental variable, and then just use:
Start LabVIEW C:\path\toYour\file.vi
but if you need to passy any commandline arguments to the VI (which was really important for me) trying to run the following command:
Start LabVIEW C:\path\toYour\file.vi -- arg1 arg2
resulted in an error, as LabVIEW could not find files arg1 nor arg2. To pass the exact command to the LabVIEW with arguments you have to make a clever use of apostrohes an quotation marks:
Start LabVIEW "C:\path\toYour\file.vi -- arg1 arg2"
If you want to get the commands from some variables things start to be even more complicated and you will have to use both - quotation marks and apostrophes in order to make something like:
Start LabVIEW "' + C:\path\toYour\file.vi -- arg1=" + $arg1 + " arg2=" + $arg2 + " logpath=" + $logpath + '.txt"
What I was doing was using Invoke-Expression from PS to run the command above, as it was easier than constructing the same command several times:
$code = 'Start LabVIEW "' + C:\path\toYour\file.vi -- arg1=" + $arg1 + " arg2=" + $arg2 + " logpath=" + $logpath + '.txt"'
Invoke-Expression $code
Why? mainly because you can e.g. use the Invoke-Expresson remotely on several machines over network etc. But this is totally different part of the story.

LabVIEWwise, parsing of the command line arguments is really simple, especially that I used the contruction of argument_name=argument_value, so I was able to parse them and get the values pretty straighforwards using a single case structure.

czwartek, 13 kwietnia 2017

Dublet część kolejna


Kontynuuję szycie dubletu, skrojonego jeszcze w zeszłym roku - w zasadzie jestem już bliżej niż dalej finiszu. Pozostało mi jeszcze skończenie i wszycie drugiego, lewego rękawa oraz wykończenie krawędzi i zrobienie zapięcia dubletu.

Dublet wyszedł bardzo dopasowany - tak jak miało być, bo w końcu dublety, jak widać na ikonografii, są dosyć dopasowane. Jedyny problem miałem ze spasowaniem rękawów, co zaowocowało wstawieniem dodatkowych klinów, dzięki czemu udało się je poszerzyć w ramionach i dopasować do wygodnych podkrojów. 

Oprócz oczywistych rzeczy, w ramach wykończenia muszę doszyć wewnętrzną część stójki. Pomyślałem sobie, że najwygodniej będzie, aby była ona podszyta także od wnętrza wełną, tak więc zostanie doszyty taki fragment do wnętrza kołnierza.

 


 Dubletu zapinany będzie na lewą stronę - widać na prawej pole listwę lnianego wzmocnienia pod dziurki do zapinania guzików. Tego rodzaju wzmocnienia są często spotykane w ubraniach pozbawionych w ogóle podszewki (por. znaleziska z Londynu).

Fakt, że dublet zapinany jest na nietypową stronę, ma swoje potwierdzenie w zabytkach jak i w ikonografii tego rodzaju i innych ubiorów - nie było to więc w średniowieczu nieistniejące rozwiązanie.
Pourpoint Karola VI
(koniec XIV wieku)
Włochy 1420r.
W przypadku szytego przeze mnie dubletu miało to charakter... przypadkowy. Nawet nie pomyłkowy, tylko po prostu na etapie wszywania wzmocnień pod dziurki dla guzików uznałem, że jedna ze stron lepiej się nadaje do wykonania dziurek i tak postanowiłem zrobić, skoro źródła potwierdzają, iż takie ubiory występowały.