ZStar .NET library FreeFallEventEnableAll(UInt EnableMask);

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

ZStar .NET library FreeFallEventEnableAll(UInt EnableMask);

ソリューションへジャンプ
2,726件の閲覧回数
Epokh
Contributor I

Hi guys,

I was coding an application to detect the freefall condition of the zstar node modifying the pre-existing ZStarLib_example.

 

The code is quite simple:

 //Event that occur if a free fall condition is detected
            theZStar.OnFreeFall+=new ZStar3.OnFreeFallHandler(theZStar_OnFreeFall);

Now the problem is that I need to enable:

  theZStar.FreeFallEventEnableAll(1);

I have put a 1 and is working, but I would like to know how the EnableMask is defined.

Is it a kind of bitmask where every bit is the index address of every ZStar node?

 

        void theZStar_OnFreeFall(object sender, byte sensor)
        {
            // Are these data from our sensor 0
            if (sensor == 0)
            {       // Update labels with values of actual acceleration for all axes
                lb_Status.Text = "FreeFall!";
                MessageBox.Show("Fall detected!", "ZStarLib", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

 

 

Is it possible to get the source code also of the DemoApplication so that a developer can see how all the functions are used?

ラベル(1)
0 件の賞賛
返信
1 解決策
1,199件の閲覧回数
Gargy
NXP Employee
NXP Employee

Hi,

I red your queations and answers are very simple. I first case the bit mask for all common fuction is in format 16-bit unsigned integer and each bit represents one sensor.

 

And for buttons - button are stored in Buttons property in sensor class. There are used only first three bits to store last state of buttons. To update this property burst read or full read must be done.

Example of code to read button status:

 

cb_ZstarBtn1.Checked = ((theSensor.Buttons & 0x01) == 0) ? false : true;
cb_ZstarBtn2.Checked = ((theSensor.Buttons & 0x02) == 0) ? false : true;
cb_ZstarBtn3.Checked = ((theSensor.Buttons & 0x04) == 0) ? false : true;

 

Have a nice day

元の投稿で解決策を見る

0 件の賞賛
返信
4 返答(返信)
1,199件の閲覧回数
Epokh
Contributor I

Hi there I'm also unable to find the documentation for the definition of the byte mask relative to the Buttons property of the ZStar class.

I only managed so far to detect the first button:

ZStar.Buttons & 1

but the others are not correct

ZStar.Buttons & 2

ZStar.Buttons & 4

is the source code of the ZLib available in some way?

cheers.

 

0 件の賞賛
返信
1,200件の閲覧回数
Gargy
NXP Employee
NXP Employee

Hi,

I red your queations and answers are very simple. I first case the bit mask for all common fuction is in format 16-bit unsigned integer and each bit represents one sensor.

 

And for buttons - button are stored in Buttons property in sensor class. There are used only first three bits to store last state of buttons. To update this property burst read or full read must be done.

Example of code to read button status:

 

cb_ZstarBtn1.Checked = ((theSensor.Buttons & 0x01) == 0) ? false : true;
cb_ZstarBtn2.Checked = ((theSensor.Buttons & 0x02) == 0) ? false : true;
cb_ZstarBtn3.Checked = ((theSensor.Buttons & 0x04) == 0) ? false : true;

 

Have a nice day

0 件の賞賛
返信
1,199件の閲覧回数
Epokh
Contributor I

Hi Gargy,

thanks a lot it works.

Can you also explain to me how to use the GSelect method?

For instance I have the sensor whose sensibility is 2g 4g 8g.

When I get the GSelectList it gives me an integer=3.

Then suppose i want to select 8g i was thinking just to put 3,

but the method returns me an invalid operation.

I suppose there should be another byte mask but I cannot find it:

i tried 0x01, 0x03,0x02,0x04 but it didn't work.

 

Cheers.:robothappy:

 

0 件の賞賛
返信
1,199件の閲覧回数
Gargy
NXP Employee
NXP Employee

Hi ,

 you are near, but not exactly right. The GSelect List returns the count of g ranges of current connected sensor. And if you get 3 for MMA7456L device, that library supports 3 ranges!!

Index - range

0 - 8g

1 - 2g

2 - 4g

 

This order is not random but it reflect the order in datasheet for each accelerometer.

 

Good Luck

0 件の賞賛
返信