1
- ![ CI Status] ( https://github.com/libcsp/libcsp/actions/workflows/build-test.yml/badge.svg )
2
-
3
1
# The Cubesat Space Protocol
4
2
3
+ [ ![ CI Status] ( https://github.com/libcsp/libcsp/actions/workflows/build-test.yml/badge.svg )] ( https://github.com/libcsp/libcsp/actions/workflows/build-test.yml )
4
+ [ ![ Code Coverage] ( https://codecov.io/gh/libcsp/libcsp/branch/develop/graph/badge.svg )] ( https://codecov.io/gh/libcsp/libcsp )
5
+ [ ![ Documentation] ( https://img.shields.io/readthedocs/pip/stable.svg )] ( https:/libcsp.github.io/libcsp )
6
+ [ ![ GitHub version] ( https://badge.fury.io/gh/libcsp%2Flibcsp.svg )] ( https://badge.fury.io/gh/libcsp%2Flibcsp )
7
+ [ ![ License] ( https://img.shields.io/badge/License-MIT-blue.svg )] ( https://opensource.org/licenses/mit )
8
+ [ ![ PyPI version] ( https://badge.fury.io/py/libcsp.svg )] ( https://badge.fury.io/py/libcsp )
9
+ <!-- [](https://github.com/emone/libcsp/actions/workflows/release.yml) -->
10
+
5
11
![ CSP] ( ./doc/_images/csp.png )
6
12
7
13
Cubesat Space Protocol (CSP) is a small protocol stack written in C. CSP
@@ -27,18 +33,18 @@ any master node required. Using a service oriented architecture has
27
33
several advantages compared to the traditional mater/slave topology used
28
34
on many cubesats.
29
35
30
- - Standardised network protocol: All subsystems can communicate with
36
+ - Standardised network protocol: All subsystems can communicate with
31
37
eachother (multi-master)
32
- - Service loose coupling: Services maintain a relationship that
38
+ - Service loose coupling: Services maintain a relationship that
33
39
minimizes dependencies between subsystems
34
- - Service abstraction: Beyond descriptions in the service contract,
40
+ - Service abstraction: Beyond descriptions in the service contract,
35
41
services hide logic from the outside world
36
- - Service reusability: Logic is divided into services with the
42
+ - Service reusability: Logic is divided into services with the
37
43
intention of promoting reuse.
38
- - Service autonomy: Services have control over the logic they
44
+ - Service autonomy: Services have control over the logic they
39
45
encapsulate.
40
- - Service Redundancy: Easily add redundant services to the bus
41
- - Reduces single point of failure: The complexity is moved from a
46
+ - Service Redundancy: Easily add redundant services to the bus
47
+ - Reduces single point of failure: The complexity is moved from a
42
48
single master node to several well defined services on the network
43
49
44
50
The implementation of ` libcsp ` is written
@@ -47,18 +53,18 @@ to have some rather advanced features as well.
47
53
48
54
## Features
49
55
50
- - Thread safe Socket API
51
- - Router task with Quality of Services
52
- - Connection-oriented operation (RFC 908 and 1151).
53
- - Connection-less operation (similar to UDP)
54
- - ICMP-like requests such as ping and buffer status.
55
- - Loopback interface
56
- - Very Small Footprint in regards to code and memory required
57
- - Zero-copy buffer and queue system
58
- - Modular network interface system
59
- - OS abstraction, currently ported to: FreeRTOS, Zephyr, Linux
60
- - Broadcast traffic
61
- - Promiscuous mode
56
+ - Thread safe Socket API
57
+ - Router task with Quality of Services
58
+ - Connection-oriented operation (RFC 908 and 1151).
59
+ - Connection-less operation (similar to UDP)
60
+ - ICMP-like requests such as ping and buffer status.
61
+ - Loopback interface
62
+ - Very Small Footprint in regards to code and memory required
63
+ - Zero-copy buffer and queue system
64
+ - Modular network interface system
65
+ - OS abstraction, currently ported to: FreeRTOS, Zephyr, Linux
66
+ - Broadcast traffic
67
+ - Promiscuous mode
62
68
63
69
## Documentation
64
70
0 commit comments