The FT300 demo already proves that the installed Windows development package can acquire continuous measurements. The remaining task is to identify the package’s supported C# access method, read one complete six-axis sample, and publish that sample atomically as the application’s latest value. The available evidence does not specify an API, assembly, transport, units, sample rate, or method name, so do not substitute guessed identifiers.
Define the Required FT300 Data Contract
Treat each measurement as one six-value record rather than six independent variables. This prevents a consumer from combining force values from one acquisition cycle with moment values from another.
| Field | Required handling |
|---|---|
| Fx, Fy, Fz | Copy from the same received sample. |
| Mx, My, Mz | Copy from that identical sample. |
| Units and sign convention | Obtain from the installed package documentation or demo configuration; the evidence does not define them. |
| Timestamp or sequence | Use only if the supplied interface exposes one; no identifier is provided. |
Select the Supported C# Access Path
Inspect the installed Windows development package for its API documentation, C# examples, managed assemblies, or an explicitly documented external interface. Use the interface that feeds the working demo when the package exposes it. Do not guess a library name, network port, command, packet layout, or function signature.
If the package contains no C# binding, first determine what interface it officially exposes to applications. That missing fact controls whether Visual Studio must reference a managed assembly, call a native library through interop, or communicate through another documented mechanism.
Implement Latest-Sample Acquisition
- Create a Visual Studio C# project compatible with the installed development package and add only the references and dependencies named by that package.
- Initialize the FT300 connection by following the same documented configuration used by the functioning demo.
- Start the package’s continuous acquisition mechanism and obtain a complete sample containing Fx, Fy, Fz, Mx, My, and Mz.
- Copy all six values into one snapshot, then replace the application’s previous snapshot in one synchronized operation.
- Expose a read operation that returns a copy of the current snapshot. Do not let readers access a buffer while the acquisition path is updating it.
- Report connection, initialization, and read failures explicitly instead of returning an old sample as if it were current.
The specific callback, polling call, and data type must come from the installed package. The evidence confirms continuous demo acquisition but does not establish whether the supported application interface is callback-based or polling-based.
Verify the C# Result
Run the demo and the C# application under equivalent sensor conditions, then compare all six displayed values while applying controlled loads in different directions. Confirm that each axis changes consistently, that moments are not mapped into force fields, and that the application continues replacing its snapshot rather than retaining the first record.
Before using the data for control or logging, verify the units, coordinate frame, sign convention, update behavior, and stale-data handling against the package documentation. These properties cannot be derived from the field names alone.
FAQ
How do I read Fx, Fy, Fz, Mx, My, and Mz from an FT300 in C#?
Use the application interface documented in the installed Windows development package, acquire one complete six-axis record, and copy all six fields into a synchronized latest-sample snapshot. The evidence does not provide the required assembly or API method name.
Can I copy the FT300 demo data directly into Visual Studio?
The working demo confirms continuous acquisition, but it does not prove that its displayed values are directly accessible to another process. Identify the supported API or external interface in the development package instead of reading the demo window.
How do I confirm that the latest FT300 sample is valid?
Compare all six C# values with the demo under equivalent conditions, verify axis mapping and documented units, and reject or flag data after a connection or read failure. Update the six values as one record so they always represent the same acquisition cycle.