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
Creating a "wrapper" to Motive as a server
-
- NaturalPoint Employee
- Posts: 720
- Joined: Mon Jan 19, 2015 11:52 am
Re: Creating a "wrapper" to Motive as a server
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
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
Re: Creating a "wrapper" to Motive as a server
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
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
-
- NaturalPoint Employee
- Posts: 720
- Joined: Mon Jan 19, 2015 11:52 am
Re: Creating a "wrapper" to Motive as a server
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
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