> ## Documentation Index
> Fetch the complete documentation index at: https://docs.farmtrace.co.za/llms.txt
> Use this file to discover all available pages before exploring further.

# Transports and operations

> Map BLE and USB protocol details to the named operations used by Dsync.

Device Kit keeps the physical transport separate from the operation a field workflow wants to perform. The profile maps one to the other.

## BLE

BLE profiles describe services and characteristics. A characteristic can expose read, write, or notification behavior and can represent data as raw bytes, a structured value, or a bitmask. The profile can also describe byte order, scaling, units, and response matching for structured values.

## USB

USB profiles describe logical channels and their framing. Depending on the supported device, a channel can use line-oriented or raw framing and can carry the payloads required by its operations.

## Named operations

Operations belong to a component and carry the protocol details needed to execute them. A workflow should ask for a meaningful operation name such as a measurement, status read, or command rather than constructing a BLE characteristic or USB channel request itself.

| Operation behavior                | Use it for                                                                     |
| --------------------------------- | ------------------------------------------------------------------------------ |
| Read                              | Retrieve a value or status from the device.                                    |
| Write                             | Send a text or structured command payload.                                     |
| Raw write                         | Send a payload represented as hexadecimal bytes when the protocol requires it. |
| Notification or response handling | React to data emitted by the device after an operation.                        |

<Info>
  The exact operation names and payload formats are profile-specific. If an operation is missing, check the active profile and component before treating the issue as a transport failure.
</Info>

## Verification sequence

1. Confirm the device is matched to the expected profile.
2. Confirm the session reports the expected transport as connected.
3. Test a read that should be safe and observable.
4. Test a write only when the device and operating procedure allow it.
5. Confirm the returned value or notification before using it in a larger workflow.

For a complete failure checklist, see [Device Kit troubleshooting](/device-kit/troubleshooting).
