background
Välkommen till mina flygsimulatorsidor!
Home > Mina projekt > Simple Cockpit > HIDMacro

HIDMacro

Programmet är en guldgruva när man väl har lärt sig det. Det är som sagt också gratis.

Hämta hem den sista giltiga versionen och den finns på HIDMacros webb. Öppna zipfilen och kopiera allt innehåll till en folder någonstans var som helst. Förslagsvis skapa en folder som heter HIDMacro och lägg innehållet från zipfilen där. Är FSX korrekt installerat så hittar HIDMacro simulatorn automatiskt.

På HIDMacros webbplats finns också Docs & Tips, Scripting och Forum. Där finns mycket information att hämta.

HIDMacros.exe är den enda fil som skall köras. Programmet som startar är både en scriptgenerator och scriptexecutor. Alla macro och script som man skapar kommer att sparas i filen hidmacros.xml när man avslutar programmet.

Ett extra USB-tangentbord skall nu också anslutas. Det går ju utan extra tangentbord men då har man ju inte så stor nytta av HIDMacros.

När man startar upp HIDMacros för första gången kan det se ut så här:

Den första fliken 'Devices', utav de sju är nu öppen. I det stora fönstret ser vi att 4 komponenter är USB-anslutna och kan nyttjas framöver. Men just nu skall vi bara titta på ett extra keyboard. Det är Kbd1 eller Kbd2. Vilket som är vilket kollar vi om en stund.

Längst ned syns en statusrad med fyra fält.

SC connected visar att programmet är anslutet mot flygsimulator. Står det något annan är det inte anslutet till simulatorn. Då finns det en knapp längst upp till vänster som det står SimConnect på. Tryck på den så skall anslutning ske.

Fält nummer två indikerar om de macro och script som man har skapat är compilerade eller inte. Compilering sker under nästa flik.

Nästa ruta med SimConnect.dll Loaded indikerar just detta. Om den inte är loaded fungerar inte HIDMacros anslutning mot flygsimulatorn. Jag vet inte så mycket om denna dll. Det har alltid fungerat för mej.

Sista rutan med hidmacros.xml talar om vad xml filen heter. Har inte hittat något sätt att ändra detta utan filen tycks alltid heta hidmacros.xml.



Vid nästa flik 'Macros' börjar det bli roligare.

 

Till vänster har vi ett fönster med alla macron som är skapade. Över fönstrer finns ikoner för att skapa nytt macro, radera macro eller finna ett macro som är kopplat till en viss tangent.

Men är Du här för första gången så är arean 'Test Area – last input event' viktig. Här visas alltid den sista tangentnedtryckningen som har gjorts, eller musaktiviteten. Tryck nu på någon tangent på det extra tangentbordet och sedan på det ordinarie tangentbordet. Då visas vilket som är Kbd1 resp Kbd2 samt vilken tangent som Du tryckte på.

Här har ett macro skapats, light, och det tänder och släcker panelbelysningen på flygplanet.

Att skapa ett macro går till så att först trycker man på ikonen 'New', sedan ändrar man namnet till något som passar den funktion man vill att macrot skall ha. Det görs i arean 'Edit Macro' sedan trycker man på knappen 'Scan' och ett stort meddelande kommer upp där Du uppmanas att trycka på den tangent som skall kopplas till macrot.

Macrot skall också beordras att göra någoting. I Action arean väljer vi 'send Simconnect event (FSX)' och med piltangenten till höger öppnar vi listan med alla events. Scrolla nedåt tills Du kommer till i detta fall 'PANEL_LIGHTS_TOGGLE'.

När det är gjort är macrot klart att användas. Tryck nu på tangenten igen, i exemplet här ovan på 'l'. Inget händer för vi är inte connectade. Connect genom att trycka på ikonen SimConnect längst upp till vänster. Flygsimulatorn måste givetvis vara startad och klar för flygning.

Vid ny tryckning på 'l' skall panellyset tändas resp. släckas för varje tryckning. Det skall också synas på strömbrytaren i flygplanet att tändning och släckning sker.

Prova nu och lägg till en tangent för att skifta mellan GPSoch NAV på autopiloten

Så enkelt är det att få till ett tangentbord till och med de funktioner som själv önskar.



Vill man ha mer sofistikerade funktioner får man börja att programmera script själv.

Här krävs det att man har lite programmeringsvana. I följande exempel är scriptet skrivet i VBScript. Under fliken settings finns val för vilket scriptspråk man vill använda. Hur det går till att programmera scripten för nog lite för långt för mej att förklara. Var och en får studera exemplen som finns, bl.a. på HIDmacros webbsida i forumet. Sitter man och pular med det lite grand så löser det sig säkert.

Har man skrivet ett script eller ändrat i ett befintligt så kommer Compileringsindikeringen under fönstret att växla till röd. Då måste man compilera igen. Det görs genom att trycka på knappen 'Compilera' nere till höger.

Macrot 'Minus1' ingår i ett större paket macros där man använder det numeriska tangentbordet för flera saker. Detta finns beskrivet längst ned på sidan 'Scripting' på HIDs webbsite.

Allt som här beskrivs klarar man utan betalversionen av FSUIPC.



Skall allt detta fungera måste HIDMacros.exe köras samtidigt med flygsimulatorn. Det kan man ju göra genom att starta varje program var för sig. En elegantare lösning är att låta FSX starta HIDMacros. Hur detta görs med EXE.xml beskrivs på HIDs webbsite sidan 'Docs & Tips'. Det är lämpligt att i så fall ställa in på detta sätt under fliken 'Settings'.

Om man kör på detta sätt så kanske inte HIDmacros blir connectad mot FSX.

Klicka då på den lilla HIDMacroikonen så öppnas programmet och man får göra en manuell connect. Här ser man också hur innehållet i bufferten visas under en begränsad period.

Nu är det 'bara' att studera exemplen och bestämma hur Du själv vill ha ditt extra tangentbord. De finns ju inget rätt eller fel här. Så här gjorde jag mitt extra tangentbord.

Som synes finns det en hel lediga tangenter kvar. Jag har använt det numeriska tangentbordet i ett större paket för att göra olika inställningar. Först är det två val mellan HDG och CRS. Sedan användes tangenterna runt 5.an för att ställa Heading eller Cursor i 45 graders intervall. 5:an användes för att sätta buggen till aktuell heading. +1 och -1 tangenterna ökar eller minskar buggens setting med 1. +10 och -10 gör motsvarande i 10 graders intervall.

Den röda NUM tangenten gör att alla numeriska tangentnedtryckningar lägger till 0 – 9 till bufferten. Därefter trycker man på önskad röd tangent och man sätter motsvarande värde med det som är lagrat i bufferten. Vad som finns i bufferten visas även i en pratbubbla vid HIDMacroikonen nere i fältet till höger i fönstret. Se bilden här ovan. Värdet i bufferten raderas efter ett antal millisekunder, det som är inställt på settingfliken. Se tredje bilden ovan.

De gröna tangenterna uppe till vänster användes för att flytta focus till andra fönster som användes under flygning. Eftersom de fönstren ofta ligger på samma ställen från gång till annan så flyttar jag även musen till det valda fönstret.

För att flytta fönster och muspekare måste man göra lite scriptprogrammering. Först i det stora fönstret under 'Script' fliken. Där lägger man script som skall vara gemensamma för flera andra script. Sedan i scriptrutan för respektive macro.

 

Först skapar vi ett objekt: Set WshShell = CreateObject("WScript.Shell") som vi sedan använder i resp. macro.

 

 

Därefter i macrots 'Script' fönster anges önskad kod.

WshShell.AppActivate("Plan-G3")

WshShell är objektet vi skapade i det gemensamma scriptfönstret, se bild ovan. .AppActivate är kommandot som aktiverar ett fönster vars namn står inom parantesen och med dubbelfnuttar. ("Plan-G3")

Fönsternamnet som står inom dubbelfnuttarna kan man få fram under fliken 'Script Tool' och sedan 'Window Titles'.


De fönster man öppnar vid sidan om själva flygsimulatorn och även flygsimulatorn brukar ju hamna på samma ställen på skärmen/skärmarna vid varje flygning, Då kan jag också flytta muspekaren till samma ställe. Muspekarens kordinater får man man under fliken 'Mouse Coordinates' till vänster om fliken 'Windows Title' på bilden här ovan. Kordinaterna gäller för hela skärmen så sätt därför muspekaren någonstans på det fönster som den skall till och läs av kordinaterna.

Kommandot för att flytta muspekaren är: HIDMacros.MouseClick 500, 300, 0

500 och 300 är kordinater dit pekaren skall. 0 betyder att pekaren skall flyttas. Detta värde kan vara från 0 till 6 beroende på vad man vill att det skall göras på de angivna kordinaterna. Detta beskrivs på sidan 'Scripting' på HIDMacros webbsite.



Jag använder även en tangent att sända värden till FSUIPC, men mera om detta senare.

Tangenterna är försedda med nya etiketter som motsvarar tangentens funktion. Se nästa kapitel.

Den hidmacros.xml fil som jag har till mitt tangentbord bifogas detta dokument.