Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:mervis-ide:30-communication-protocols:10-sscp [2017/06/14 10:23] m.chlupac removed |
en:mervis-ide:30-communication-protocols:10-sscp [2017/11/22 09:56] m.kulvejt [Communication of Values] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== SSCP protocol ====== | ====== SSCP protocol ====== | ||
+ | Mervis controllers support full configuration and communication via SSCP protocol. Detail description of this protocol is available in: {{: | ||
+ | ===== Basic features ===== | ||
+ | |||
+ | * Protocol is defined on application layer | ||
+ | * TCP and serial bus implementations are currently available. UDP is used for autodetection and configuration. | ||
+ | * Simple structure of communicated data packets | ||
+ | * Easy to calculate packet size from header. | ||
+ | * Extra headers and suffixes can be added for different communication layers - inner structure stays untouched. | ||
+ | * Each data packet (except broadcast packets) carries information about destination address (8 bit slave ID). Only controller with that address is expected to respond. | ||
+ | * SSCP can be used for any and all communication tasks | ||
+ | * Communication of statistics, configuration, | ||
+ | * Communication buffer size can be negotiated by client | ||
+ | * Client authentication is required. | ||
+ | * [[en: | ||
+ | * Protocol versioning is supported. Newer version is backward compatible with previous version but usage of deprecated and obsolote methods is not recommended. | ||
+ | |||
+ | ===== Communication of Values ===== | ||
+ | |||
+ | * SSCP protocol supports long memory blocks. If the size of the buffer is not sufficient - multiple reads can be made and atomicity of the operation is guaranteed. | ||
+ | * Every variable is identified by its communication ID. | ||
+ | * Value is communicated as a block of memory. Offset and length can be used to read part of the larger data structure (array, struct, function block, ...) | ||
+ | * Memory data layout follows standard rules of data alignment (1-8 bytes) | ||
+ | |||
+ | ===== .NET SDK ===== | ||
+ | |||
+ | * There is a SDK with .NET libraries. You can download it {{ : |