Jump to content
The simFlight Network Forums

Verification of sample code required


Padraig
 Share

Recommended Posts

Hi Peter,

I am currently writing software for some modules I have created, which are the ADF, COM, NAV avionics.

I have just finished the ADF coding which works perfect and I am now finalizing the COM radio code, but I have run into some problems unfortunately. The transfer button works flawlessly but I cant seem to write to the standby section of the radio frequency for some reason.The COM module does indeed read what is displayed in FSX.

FS verson: FSX

FSUIPC version: 4.32

FS Service Packs: SP1 & SP2

Here is a section that I used for writing to FS though FSUIPC

uiCOMData = 0;
            uiCOMData |= (InputPacketBuffer[7]<<12);
            uiCOMData |= (InputPacketBuffer[8]<<8);
            uiCOMData |= (InputPacketBuffer[9]<<4);
            uiCOMData |= InputPacketBuffer[10];

            //send COM1 Freq
            FSUIPC_Write(0x034E, 2, &uiCOMData, &dwResult);
            FSUIPC_Process(&dwResult); // Process the request(s)

            uiCOMStandbyData = 0;
            uiCOMStandbyData |= (InputPacketBuffer[3]<<12);
            uiCOMStandbyData |= (InputPacketBuffer[4]<<8);
            uiCOMStandbyData |= (InputPacketBuffer[5]<<4);
            uiCOMStandbyData |= InputPacketBuffer[6];

            //send COM1 stby Freq
            FSUIPC_Write(0x311A, 2, &uiCOMStandbyData, &dwResult);
            FSUIPC_Process(&dwResult); // Process the request(s)

            uiCOMTFRData = 0x0008;    //swap radios COM1


            FSUIPC_Write(0x3123, 1, &uiCOMTFRData, &dwResult);
            FSUIPC_Process(&dwResult); // Process the request(s)

Any help Peter on this matter would be greatly appreciated.

Kind regards

Padraig

Link to comment
Share on other sites

I cant seem to write to the standby section of the radio frequency for some reason.

I suspect the data you are trying to send isn't valid. FSX ignores invalid values. Maybe your frequencies include the leading "1" and your references to characters [3]-[6] should really be [2]-[5], with the ignored "1"s in [1] and [6]? That's my guess.

Please always use the IPC write logging facility to check what is happening. I cannot debug your code here, you need to try using the facilities provided to debug your own programs. If you don't understand the log, show it to me.

Also enable Monitoring on the two COM1 frequency offsets, checking the "normal Log" option. this will then also log the SimConnect calls and responses.

BTW if this is real code, not just some extracts you've put together, it is very inefficient to make three Process calls to do this. You should be sending all the commands (reads and writes) you want in a cycle with one process call.

Regards

Pete

Link to comment
Share on other sites

  • 1 month later...

Hi Peter,

Yes you were right about FSX reading invalid values, the problem was that, I had simply forgot that the NAV, COM, etc, radios only use a limited bandwidth range. The numbers I was trying to operate were not in that range. Also, thanks for the input about the process clean up code. The sample below was simply a rough guideline to get the firmware operating with FSUIPC. The code was cleaned up later on.

Kind regards

Padraig

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • 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.