====== CMotionServer Overview ====== The C-Motion Server (CMS) is a network application that makes real-time hardware data available to multiple client applications using the Visual3D pipeline command language. ==== Contents ==== * [[#Core_Features|1 Core Features]] * [[#3rd_Party_Real-Time_Hardware_Systems|2 3rd Party Real-Time Hardware Systems]] * [[#Visual3D_Pipeline_Commands|3 Visual3D Pipeline Commands]] * [[#Client_Applications|4 Client Applications]] * [[#Common_XML_Motion_Language|5 Common XML Motion Language]] * [[#Connect|5.1 Connect]] ==== Core Features ==== - streaming from multiple real-time mocap hardware sources.\\ - basic 2-D and 3-D data visualization.\\ - pipeline command processing.\\ - connection from multiple clients applications.\\ - common XML mocap language broadcast over TCP and UDP networks.\\ ==== 3rd Party Real-Time Hardware Systems ==== CMS Supports the follow hardware systems: AMTI Gen5 - USB - force plates\\ Bertec AM6x00 - USB - force plates\\ MAC Cortex - TCP/IP - markers and force plates\\ NDI First Principles - TCP/IP - markers\\ Qualisys Track Manager - TCP/IP - markers and force plates\\ Vicon DataStream (Nexus) - TCP/IP - markers and force plates\\ In addition, CMS can treat a C3D file as a hardware system. This is very useful for working with pre-record data. ==== Visual3D Pipeline Commands ==== CMS supports the following subset of Visual3D pipeline commands:\\ \\ Center of Pressure (COP)\\ Center of Mass (COM)\\ First Derivative\\ Force\\ Ground Reaction Force (GRF)\\ Joint Angle\\ Multiply by Constant\\ Subtract Signals\\ ==== Client Applications ==== CMS can talk to multiple client applications at one time over the network. A client connects over TCP/IP on port 12099. This can be done on any platform (e.g., Windows, Mac OS X, Linux, iOS, Android, etc.) using any language of choice (e.g., C, C++, Java, Python, etc.). Example code is provided below. Once connected, a client sends commands (see Common XML Motion Language below) to the server and then waits for a response. CMS responds to client commands with data and status indicators as appropriate. The client then processes and displays the results to end users. ==== Common XML Motion Language ==== === Connect === The first XML command a client must send to CMS is the **connect** command. Syntax:\\ \\ ''%% %%'' ''%% %%'' \\ Data from various hardware systems is collected in the server and then repackaged in a common XML based language. The Server accepts a subset of the standard Visual3D pipeline commands and then applies those commands to the real-time hardware data. The results are then packaged up in a common XML based language and broadcast.