Jump to content
The simFlight Network Forums

hm

Members
  • Posts

    95
  • Joined

  • Last visited

Everything posted by hm

  1. Hi, Well maybe the thoughts behind the concept of the DLL were good, but it is now like searching for a tree in the woods. One of these all resembling trees will be the good one, but which one? The site I mentioned was only an example; there are many others like dll-downloads.com etc. That's the reason why my boot/system disk is still FAT. I can boot up with a DOS diskette and still have access to all the directories on the Windows system and replace files which would not possible if Windows was running. Hugo
  2. Hi, Type the name of the DLL in "Google" and it will you search sites. One of this sites is most probably: http://www.dll-files.com There you can download the DLL (and a lot of others). Now you have to unzip the dll to the right map. Hugo
  3. Fabrizio, Can't you list the portion of your button programming that's not working ? Hugo
  4. First topic on this forum, scroll down, you will find the latest test version there (s) :wink: Regards, Hugo
  5. Hi Pete, Thank you for having taken the time for this extensive explanaition. I will write a small utility program that allows to expand my "own dummy instruction" in the FSUIPC.INI to a series of offset set instructions. Best regards, Hugo
  6. Well, thats the thing I don't understand. If I take the same example: 13=CU(F+0,13)0,6,(code for'give message'),Gear is up If I analyse it, I could write it like this, however, I am not really sure about the syntax right now : 13=CU(F+0,13)0,6,Cx01003380,x43 14=CU(F+0,13)0,6,Cx01003381,x65 15=CU(F+0,13)0,6,Cx01003382,x61 16=CU(F+0,13)0,6,Cx01003383,x72 17=CU(F+0,13)0,6,Cx01003384,x20 18=CU(F+0,13)0,6,Cx01003385,x69 19=CU(F+0,13)0,6,Cx01003386,x73 20=CU(F+0,13)0,6,Cx01003387,x20 21=CU(F+0,13)0,6,Cx01003388,x75 22=CU(F+0,13)0,6,Cx01003389,x70 23=CU(F+0,13)0,6,Cx0100338A,x00 24=CU(F+0,13)0,6,Cx020032FA,x0002 where x43,x65...x70,x00 are the codes for the null terminated string "Gear is up" and a selection of a 2 second display time or much shorter by a Dword settings: 13=CU(F+0,13)0,6,Cx03003380,x72616543 raeG 14=CU(F+0,13)0,6,Cx03003384,x20736920 si 15=CU(F+0,13)0,6,Cx03003388,x00007075 pu 16=CU(F+0,13)0,6,Cx020032FA,x0002 Seemes that feasible? Hugo
  7. Pete, AVSIM says on his home page: Peter Dowson announces that AdvDisplay version 2.14 is now available. Pete notes, "This includes a minor change, but it is essential for compatibility with a new facility in FSUIPC 3.51 (soon to be released) allowing applications to select 'white on green' messages in FS." Sorry, about the misunderstanding of the statement. I thaught about something with button programming like: 13=CU(F+0,13)0,6,(code for 'give message'), Gear is up And if the condition is true the message "Gear is up" would appear on the screen. Well, I have to wait for it, the basic stone is allready there :wink: Regards, Hugo
  8. Hi Pete Your announcement on AVSIM regarding FSUIPC : ... "allowing applications to select 'white on green' messages in FS..." and I thaught this was impossible? :lol: I hope we can do it via "button programming and conditions also :wink: ". Best regards, Hugo :wink:
  9. Hi, Probably, you can find something here: Jose Oliveira has written some interesting applications (even Pete has made one available at his download pages, http://www.schiratti.com) and you can download some of his sources here: http://jcboliveira.flysplash.org/ Regards, Hugo
  10. Hi chief, First you have to know which buttons are the hat buttons on the joystick. Most likely one of 31 to 39 is the button for UP, let us say 36. Ok open now with notepad the FSUIPC.INI file. Go to the end and check if there is a [buttons] section, if not add the rule "[buttons]" to the end. Next you have to decide which of the other buttons on your joystick will serve as "shift" in combination with the HAT button. Don't add any other command to this button, because it would executed when you would use it together with the hat button. Now assume we will do it with button "5" (if the buttons on your joystick are numbered from 1 to ..., then the program number of the button is on one less, button 0 is button 1 on the joystick, button 1 is button "2" on the joystick etc., number 5 in the program will be numbered "6" on the joystick). Place the next 2 rows below the [buttons] rule. If there is allready a button section, adapt the numbering before the "=" sign. 0=CP(-0,5)0,36,K8,9 1=CP(+0,5)0,36,K53,9 These two rules define: When 5 (joystick 0, button 5) is up ( - ) and button 36 of joystick 0 goes down, generate BACKSPACE( 8 ) with SHIFT( 1 ), when 5 is down (+) and button 36 goes down, generate "5" with "SHIFT". The shift code (1) has to be combined with "Normal" which is 8, so the code becomes 8+1 = 9 "CP" is the command: "P" = pulse but for the button definition after the "()" in this case 0,36 (button 36 of joystick 0), "C" stands for compound or condition. This condition is defined between the "()" in the first rule "-0,5", meaning if button 5 of joystick 0 is up; in the second rule: "+0,5": if the button is down. Next K8,9 generates a key with code 8, that's a backspace, the next ",9" (8+1) defines that it is together with a shift key. K53 is the code for a "5" key and again ",9" defines together a shift key That's all. Remember you have to remove the programming of the "hat 36" and "5" button in FS self. Hugo
  11. Hi Pete, It seems that I have still a long way to go before I can call me a windows programmer :roll: . Thanks, Hugo
  12. Hi, I try to build the FSUIPC application beneeth with VC 5.0, but I have two problems: First the linker asks for an entry "_main", I don'know how I can solve that. secondly I want to give some time to other applications too, so I need some call to let this program sleep for a 500 msec; How can I do that. Has someone a solution for me? Thanks in advance Hugo * UIPCmess Displays a scrolling message on the wind screen */ #include #include #include "FSUIPC_User.h" char *pszErrors[] = {"Okay", "Attempt to Open when already Open", "Cannot link to FSUIPC or WideClient", "Failed to Register common message with Windows", "Failed to create Atom for mapping filename", "Failed to create a file mapping object", "Failed to open a view to the file map", "Incorrect version of FSUIPC, or not FSUIPC", "Sim is not version requested", "Call cannot execute, link not Open", "Call cannot execute: no requests accumulated", "IPC timed out all retries", "IPC sendmessage failed all retries", "IPC request contains bad data", "Maybe running on WideClient, but FS not running on Server, or wrong FSUIPC", "Read or Write request cannot be added, memory for Process is full"}; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { DWORD dwResult; int i, len; char message[128]; byte regByte, count, countP = -1; short mode = -1; BOOL rCountOk = TRUE, fullReg = TRUE; FILE *messFile; if (FSUIPC_Open(SIM_ANY, &dwResult)) { /* Okay, we're linked, and already the FSUIPC_Open has had an initial exchange with FSUIPC, check if it is a full registered version */ if (!FSUIPC_Read(0x330C, 1, &regByte, &dwResult) || !FSUIPC_Process(&dwResult) || !(regByte & 4)) fullReg = FALSE; if (fullReg) { /* Open the message file */ if (messFile = fopen ("FSmess.def", "rt")) { do { /* Okay, do a loop and check every 500 msec for a change of the counter value */ if (FSUIPC_Read(0x66FF, 1, &count, &dwResult) && FSUIPC_Process(&dwResult)) { /* Read the user reserved space at 0x66FF. We have used this to store the status counter of the Button Programming */ if (count != countP) { countP = count; /* Set pointer to the begin of the file */ fseek (messFile, 0l, SEEK_SET); /* Read the number of records, equal to count */ for (i = 0; i < count; i++) fgets (message, 128, messFile); len = strlen(message) - 1; message [len] = '\0'; /* Put the message on the screen */ if (FSUIPC_Write(0x3380, len, message, &dwResult)) { /* Make it scrolling for 1 sec */ if (FSUIPC_Write(0x32FA, 2, &mode, &dwResult)) /* Process the requests */ FSUIPC_Process(&dwResult); else MessageBox (NULL, pszErrors[dwResult], "UIPCmess: Failed to write to 0x32FA", 0); } else MessageBox (NULL, pszErrors[dwResult], "UIPCmess: Failed to write message 0x3380", 0); } } /* wait 500 msec */ /* wait (500); */ } while (1); } else MessageBox (NULL, "Cannot open the message file \"FSmess.def\"", "UIPCmess", 0); } else MessageBox (NULL, "Full registered version is necessary", "UIPCmess", 0); } else MessageBox (NULL, pszErrors[dwResult], "UIPCmess: Failed to open link to FSUIPC", 0); FSUIPC_Close(); return 0 ; }
  13. Hi Pete, I have gone 5 times through the many pages of the offset list in "FSUIPC for Programmers" but couldn't find the test word for a full registered FSUIPC :-(. Finaly I found it in the "version history", version 3.03. It is 0x330C, bit 2^1. Would you be so kind to adapt the "FSUIPC for Programmers" manual :wink: . Best regards Hugo
  14. Hi Pete, Well I have the impression that you are pointing at me. Well why I am thinking that the button program is not working? Because some buttons are programmed in the general button section and in a specific airplane button section with toggle commands. Whats happening when you call twice a toggle command? Yes... nothing ;-). hm
  15. Hi Piotr, I think the problem is not that the output is three characters and too fast, but that FSUIPC only sents 1 character, because the same programming rule is read 3 times in the same scan. IMHO FSUIPC works probably likewise as follows: it reads first all conditions (input) and sets internal flags etc.w.o.w. the character is "flagged for output", next it makes the "outputs", and thus the charecter is outputted, during one scan. These scans are happening 40 times in a second (Poll Interval = 25 msec), but because you have made the programming in "pulse" mode, the output is only valid during one scan. Hugo
  16. Hi David, To my best knowledge, FSUIPC doesn't support via key programming the stand alone entries of left and/or right shift, alt or control keys, but only in combination with others. I am afraid, you can't achive the thing you want to do with FSUIPC. Best regards, Hugo
  17. Wow, David, you have given me some ideas. I also looking for a method to schedule some message depending on some button or flag condition. It would be nice if Pete would provide some control to launch a message like 40=CP(F+14,3)(F+14,2)0,11,Cx????3380,"Message" 41=CP(F+14,2)(F-14,3)0,10,Cx01003384,-1 where rule 40 would store a C string in the consecutive memory cells, starting from the given address. and rule 41 (allready provided) to launch the (scrolling) message with a control and a duration parameter (here 1 second, 0 = eternal) Hugo
  18. Hi Pete, Nice idea to add an error indication to the button and key programming if something goes wrong, but... this version also changes the layout of the file, namely all button programming lines are grouped together followed by all the comment lines that were defined in these lines to explain what was going on. Originally the file looked like this: ; ; Flag 10 follows key (-6 & -7) ; 2=CU(-0,7)0,6,C1003,10 3=CU(-0,6)0,7,C1003,10 ; ; Flag 11 follows key (+6 & -7) ; 4=CP(-0,7)0,6,C1004,10 5=CP(-0,7)0,6,C1003,11 6=CU(F+0,11)0,6,C1004,11 ; ; Flag 12 follows key (-6 & +7) ; 7=CP(-0,6)0,7,C1004,10 8=CP(-0,6)0,7,C1003,12 9=CU(F+0,12)0,7,C1004,12 ; ; Flag 13 follows key (+6 & +7) ; 10=CP(F+0,11)0,7,C1004,11 ; reset flag 11 11=CP(+0,6)0,7,C1003,13 ; 6 and 7 down set flag 13 12=CU(F+0,13)0,7,C1004,13 ; . . . After a run of fsuipc 3.47 the ini file will have this layout, also all comments that were defined in the row of a button programming are disappeared too. No error was found however ;) : 0=CU(-0,7)0,6,C1003,10 1=CU(-0,6)0,7,C1003,10 2=CP(-0,7)0,6,C1004,10 3=CP(-0,7)0,6,C1003,11 4=CU(F+0,11)0,6,C1004,11 5=CP(-0,6)0,7,C1004,10 6=CP(-0,6)0,7,C1003,12 7=CU(F+0,12)0,7,C1004,12 8=CP(F+0,11)0,7,C1004,11 9=CP(+0,6)0,7,C1003,13 10=CU(F+0,13)0,7,C1004,13 11=CP(F+0,12)0,6,C1004,12 12=CP(+0,7)0,6,C1003,13 13=CU(F+0,13)0,6,C1004,13 14=CR(F+0,10)0,0,C65588,0 15=CP(F+0,10)0,1,C65570,0 16=CR(F+0,10)0,2,C65607,0 17=CR(F+0,10)0,3,C65615,0 18=CP(F+0,10)0,4,C65758,0 19=CP(F+0,10)0,5,C65759,0 20=CP(F+0,11)0,0,K192,9 21=CP(F+0,11)0,1,C65751,0 22=CR(F+0,11)0,2,C65771,0 23=CR(F+0,11)0,3,C65769,0 24=CP(F+0,11)0,5,C65589,0 25=CP(F+0,12)0,1,C65858,0 26=CR(F+0,12)0,2,C65777,0 27=CR(F+0,12)0,3,C65775,0 28=CP(F+0,12)0,4,K83,8 29=CP(F+0,12)0,5,K83,9 30=CP(F+0,13)(F-0,31)0,0,C66224,0 31=CP(F+0,13)(F+0,31)0,0,K112,11 32=CU(F+0,13)0,0,C1005,31 33=CP(F+0,13)0,1,C66293,0 34=CP(F+0,13)0,2,C66244,0 35=CP(F+0,13)0,3,C66243,0 ; ; Flag 10 follows key (-6 & -7) ; ; ; Flag 11 follows key (+6 & -7) ; ; ; Flag 12 follows key (-6 & +7) ; ; ; Flag 13 follows key (+6 & +7) ; ; ; Greetings, Hugo
  19. Hi David, Something I found in a cockpit builders forum and which looks very promessing: http://www.mindaugas.com/products/MJoy16-C1/ Regards, Hm
  20. Hi, However, written in C, you can find some examples here: http://jcboliveira.flysplash.org/frame1.html Hope they will help you. hm
  21. Hi Pete I installed the test version and the breaks are OK now. Thanks. hm
  22. Who know how to display a message in the scrolling text bar like EFIS does? Pete, this would be a nice feature for FSUIPC... like button or key programming but not to execute a command but to display a message. Thanks hm
  23. Hi Pete, Can I have the interim version too? Because the break command via button programming is working in a very strange way ( I have the impression that only one break command is allowed at one engine trottle setting, you have to move the trottle before another break command is allowed) Thanks in advance hm h/dot/marien/at/telenet/dot/be
  24. hi Pete, I am not typing as fast as you are, so I seem to be a parrot :lol: hm
  25. Hi, Here is why: The first 2 rules are forming a binary counter, the begin state is for flag 11 and 12 both 0. This state isn't detected as long as the button wasn't pushed. The first time you hit the button , the state of flag 11 becomes "on", flag 12 stays "off". This is the very first state that is detected. At the second push flag 11 changes his state and becomes "off", but flag 12 becomes "on". At the third push flag "11" changes his state again to be "on" and flag 12 stays "on". At the fourth push, however, both flags are becoming "off". (In computer terms: you have an overflow, if you had a third flag, this flag would become "on" and it would change his state every fourth push) Next the cycle restarts at the fifth push: flag 11 changes his state to "on", flag 12 stays off ... Therefore the correction is in the sequence order: [buttons] 1=P1,27,C1005,11 2=CP(F-0,11)1,27,C1005,12 3=CP(F+0,11)(F-0,12)1,27,K119,11 4=CP(F-0,11)(F+0,12)1,27,K120,11 5=CP(F+0,11)(F+0,12)1,27,K121,11 6=CP(F-0,11)(F-0,12)1,27,K121,11 I suppose that the brake settings are working like a real old antique array radio buttons where only one button could be active; you could switch from one button to an other ( to select the wave lengths (long, short, very short, and FM) :), at the same time the radio was switched on but if you pushed the active button again, the whole array buttons and the radio was switched off :). Therefore the same command is executed in state 3 (1/1) and 4 (0/0). hm
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.