Skip to content

Commit d3bbd7b

Browse files
committed
Added basic/template github actions.
1 parent 4bb48a6 commit d3bbd7b

File tree

5 files changed

+127
-0
lines changed

5 files changed

+127
-0
lines changed

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# .github/workflows/ci.yml
2+
name: CI
3+
4+
on:
5+
push:
6+
branches: [ main ]
7+
pull_request:
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
rust: [stable, beta, nightly]
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Install Rust
19+
uses: actions-rs/toolchain@v1
20+
with:
21+
toolchain: ${{ matrix.rust }}
22+
override: true
23+
24+
- name: Cache Cargo
25+
uses: actions/cache@v4
26+
with:
27+
path: |
28+
~/.cargo/registry
29+
~/.cargo/git
30+
target
31+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
32+
33+
- name: Build
34+
run: cargo build --verbose
35+
36+
- name: Test
37+
run: cargo test --verbose

.github/workflows/docs.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# .github/workflows/docs.yml
2+
name: Docs
3+
4+
on:
5+
push:
6+
branches: [ main ]
7+
8+
permissions:
9+
contents: write
10+
pages: write
11+
id-token: write
12+
13+
jobs:
14+
docs:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Install Rust
20+
uses: actions-rs/toolchain@v1
21+
with:
22+
toolchain: stable
23+
override: true
24+
25+
- name: Build docs
26+
run: cargo doc --no-deps --release
27+
28+
- name: Upload docs artifact
29+
uses: actions/upload-pages-artifact@v3
30+
with:
31+
path: target/doc
32+
33+
deploy:
34+
needs: docs
35+
runs-on: ubuntu-latest
36+
environment:
37+
name: github-pages
38+
url: ${{ steps.deployment.outputs.page_url }}
39+
steps:
40+
- name: Deploy to GitHub Pages
41+
id: deployment
42+
uses: actions/deploy-pages@v4

.github/workflows/lint.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# .github/workflows/lint.yml
2+
name: Lint
3+
4+
on: [push, pull_request]
5+
6+
jobs:
7+
lint:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
12+
- name: Install Rust
13+
uses: actions-rs/toolchain@v1
14+
with:
15+
toolchain: stable
16+
components: clippy, rustfmt
17+
override: true
18+
19+
- name: Run rustfmt
20+
run: cargo fmt -- --check
21+
22+
- name: Run clippy
23+
run: cargo clippy -- -D warnings
121 KB
Loading

docs/specification/specification_overview.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,28 @@ An additional companion specification exists related to OPC-UA:
2424

2525
- **OPCUA POWERLINK Companion Specification**
2626
- OPCUA POWERLINK Companion Specification RELEASE 1.0.pdf
27+
28+
## Highlights
29+
30+
> What follows are notes taken from the specification itself. All images found in this section were sourced from the original specification.
31+
32+
POWERLINK provides mechanisms to achieve the following:
33+
34+
1. Transmit time-critical data in precise isochronous cycles. Data exchange is based on a publish/subscribe relationship. Isochronous data communication can be used for exchanging position data of motion applications of the automation industry.
35+
2. Synchronise networked nodes with high accuracy.
36+
3. Transmit less time-critical data asynchronously on request. Asynchronous data communication can be used to transfer IP-based protocols like TCP or UDP and higher layer protocols such as HTTP, FTP,…
37+
38+
POWERLINK manages the network traffic in a way that there are dedicated time-slots for isochronous and asynchronous data. The mechanism is called Slot Communication Network Management (SCNM). SCNM is managed by one particular networked device – the Managing Node (MN) – which includes the MN functionality. All other nodes are called Controlled Nodes (CN).
39+
40+
POWERLINK is based on the ISO/OSI layer model and supports Client/Server and Producer/Consumer communications relationships.
41+
42+
The POWERLINK communication profile is based on CANopen communication profiles DS301 and DS302.
43+
44+
The advantages of POWERLINK result from protecting the POWERLINK RTE network segment from regular office and factory networks. POWERLINK provides a private Class-C IP segment solution with fixed IP addresses.
45+
46+
**Reference model**:
47+
[Reference Model](reference_model.png)
48+
49+
### Application layer
50+
51+
The Application Layer comprises a concept to configure and communicate real-time-data as well as the mechanisms for synchronisation between devices. The functionality the application layer offers to an application is logically divided over different service objects (see SDO) in the application layer. A service object offers a specific functionality and all related services.

0 commit comments

Comments
 (0)