Jump to content
The simFlight Network Forums

Doubts after 2 weeks of FSUIPC & LUA scripting


Recommended Posts

Good morning,

After 2 weeks programming my first diy panel I have some doubts. I've read and searched inside the FAQ and official documentation but it seems not explained or maybe I didn't look so well, so excuse me in case of repetition.

1) Is there a way to read the single bit? For example in the offset 0D0C I can set taxi lights with writeUB or setbitsUB but how can I read it's status?

2) Looping. I understood event.com and event.offset are a sort a silent looping activated only when "something" happens. In case I want to read for example every 2 seconds a set of variable, the event.timer is the best way?

3) I see in some topics minor release update for the 7 version. Where to find the latest?

Thanks for your help.

Link to post
Share on other sites
4 hours ago, Federico said:

1) Is there a way to read the single bit? For example in the offset 0D0C I can set taxi lights with writeUB or setbitsUB but how can I read it's status?

0x0D0C is a 16 bit word if you want to get all the lights. 2 function examples below, "getTaxiLights1" is run by the timer,  "getTaxiLights2" is run on first load & anytime there is a change at offset 0x0D0C. The last is the preferable method.

function getTaxiLights1(time)
	tL = ipc.readUW(0x0D0C)
	tL = logic.And(tL, 8) -- Taxi lights are on bit 3, therefore the mask is 8
	if tL == 8 then
		-- Taxi Lights are on
	else
		-- Taxi Lights are off
	end
end

function getTaxiLights2(offset, value)	
	value = logic.And(value, 8)  -- Taxi lights are on bit 3, therefore the mask is 8
	if value == 8 then
		-- Taxi Lights are on
	else
		-- Taxi Lights are off
	end
end


event.timer(2000, "getTaxiLights1") -- call function #1 every 2 seconds
event.offset(0x0D0C, "UW", "getTaxiLights2")  -- call function #2 whenever 0x0D0C changes, also on first load

Hope this helps,
Roman

  • Thanks 1
Link to post
Share on other sites
4 hours ago, Federico said:

3) I see in some topics minor release update for the 7 version. Where to find the latest?

The latest official release is always available from www.fsuipc.com, and also from 

 

Interim releases are published to forum topics for testing by the person who reported an issue or requested a new feature. You can also download and try these if you like, or wait for the official release that usually follows within a few days or weeks.

  • Thanks 1
Link to post
Share on other sites
On 1/20/2021 at 7:42 AM, Federico said:

1) Is there a way to read the single bit? For example in the offset 0D0C I can set taxi lights with writeUB or setbitsUB but how can I read it's status?

If you read or write the whole value you are getting and setting 8 lights.

To get notified of a single bit change, like the 08 (2^3) bit, use

event.offsetmask(0X0D0C, 8, "UB", "function name")

To SET one bit (or more) use ipc.setbitsUB. There are also functions to clear a bit (or more): ipc.clearbitsUB, and to change/toggle one or more bits: ipc.togglebitsUB.

All these would be more efficient than reading/writing the complete value and using the Logic library functions for these basic things.

It really is worth your while browsing the Lua Library document so you can see what is available.

Pete

 

  • Like 1
Link to post
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...
×
×
  • 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.