Creating a "wrapper" to Motive as a server

NatNet, VRPN, TrackD, and Plugins
Post Reply
Avielb
Posts: 5
Joined: Sun Sep 13, 2015 12:09 am

Creating a "wrapper" to Motive as a server

Post by Avielb »

Hi,

We've implemented a client side for our application but until now had to run Motive in the background and through it saving specific rigidbodies, camera properties and other configurations.

We would like to now implement a server side but couldn't find in the NatNet API methods for loading saved rigidBodies and controlling camera properties.

What our options in order to avoid running Motive in the background?

Thanks,
Aviel
steven.andrews
NaturalPoint Employee
NaturalPoint Employee
Posts: 720
Joined: Mon Jan 19, 2015 11:52 am

Re: Creating a "wrapper" to Motive as a server

Post by steven.andrews »

Hello Avielb,

I provided this information in your second forum post, but wanted to be sure the same information was available here.

Motive cannot be made to run in the background as a service. If you need access to some of the core tracking without the interface, you may want to look into the Motive API that installs in the Motive folder. Here, you will find a "Markers" example to show some of the basic functionality that can be accessed with the API. This would require further development on your part, but you can use the API to perform some basic functionality such as launching Motive and loading a project without the use of the Motive UI.

I hope this information is useful to you. If you require any further assistance, please feel free to open a support ticket with us at help.naturalpoint.com

Best regards,
Steven
--
Steven Andrews
OptiTrack | Customer Support Engineer
Avielb
Posts: 5
Joined: Sun Sep 13, 2015 12:09 am

Re: Creating a "wrapper" to Motive as a server

Post by Avielb »

Thank you very much for the response.

I looked into the markers example and tried to exploit it to our application but encountered the following problems:

1. Every project I tried loading resulted with code 3
2. Every rigid body I tried loading resulted with code 2
3. I tried turning on streaming but couldn't find a way to change the streamed IP (I wish to default it to local loop-back). Theoretically, will it stream automatically with the set IP if it was saved in a project I'm loading?

Thanks,
Aviel
steven.andrews
NaturalPoint Employee
NaturalPoint Employee
Posts: 720
Joined: Mon Jan 19, 2015 11:52 am

Re: Creating a "wrapper" to Motive as a server

Post by steven.andrews »

Hello Avielb,

There are two things that cause load failures for projects, rigid bodies, etc.
- The filename is specified incorrectly.
- The file is corrupt or was saved from a future version of the software.

The most likely issue is that the filename is specified incorrectly. We typically recommend that a user name the project: project.ttp and place it at the root directory on drive C. Then attempt to load with the following:

TT_LoadProject( "C:\\project.ttp" );

It's important to use the 'double blackslash' when specifying a filename in C/C++ because \ is a control character. You must also keep in mind whether you have built with multi-byte strings or unicode. The above example is compiled multi-byte. (this setting is in the project settings of your Visual Studio project under general).

The streaming defaults to local loopback, so you can just enable streaming via the API and you should be good to go.

When you need to specify settings that are not available in the API, it is recommended that you set up a project with all the specific settings you want via the UI, then save the project. You can load that project via the API to have those settings set properly.

I hope this information proves to be useful to you.

Best,
Steven
--
Steven Andrews
OptiTrack | Customer Support Engineer
Post Reply