Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
eea8399
feat(create old backend):
JavierRibaldelRio Sep 26, 2026
67f9015
feat: basic setup
JavierRibaldelRio Sep 28, 2026
dbb1c28
wip: new abstraction
JavierRibaldelRio Sep 28, 2026
c771516
wip: meadurement and protections
JavierRibaldelRio Sep 29, 2026
c558a1b
feat(backend): complete core::model with protections, packets and boards
JavierRibaldelRio Sep 30, 2026
db41226
fix: delete docs
JavierRibaldelRio Sep 30, 2026
55c9f87
feat: include mac adress
JavierRibaldelRio Sep 30, 2026
24e78b7
fix(model): rename mod.rs to model.rs
JavierRibaldelRio Sep 30, 2026
e098910
feat(ntp): implementation of the NTP server and its addition as a fea…
pminmic Oct 2, 2026
3f8179a
update: update rust version from 1.85 to 1.98
pminmic Oct 2, 2026
37aa08a
fix: requests from PR, create port const, comment test, and changes i…
pminmic Oct 3, 2026
c48c986
fix: delete NtpAddress and use two functions
pminmic Oct 3, 2026
6b34291
feat: add tracing to new functions
pminmic Oct 3, 2026
e01eadb
fix: change function name, and explain NTP packet values
pminmic Oct 3, 2026
2c15a65
feat: adj
JavierRibaldelRio Oct 6, 2026
1e427d9
Feat(backend): Implementation of protection IDs and TooManyProtection…
Oct 6, 2026
6cf3497
Feat(backend): Implemented ADJ tests.
Oct 6, 2026
2536727
feat: NTP readme
pminmic Oct 7, 2026
e48d73b
Feat(backend): Added Protection PacketKind. Made load_board public so…
Oct 8, 2026
2c69cd6
fix(backend, model): add missing type message
JavierRibaldelRio Oct 8, 2026
3b7275e
docs(backend, adj): correction to docs
JavierRibaldelRio Oct 8, 2026
fc40b4f
feat: use serde
JavierRibaldelRio Oct 8, 2026
d4524ad
feat(backend, adj):include board id inside ach packet
JavierRibaldelRio Oct 8, 2026
cdf6397
docs(backend, adj): update docs
JavierRibaldelRio Oct 8, 2026
719c108
feat: adj final version
JavierRibaldelRio Oct 8, 2026
b6c3874
feat(adj & model): add port
JavierRibaldelRio Oct 8, 2026
bb2c605
fix(adj): use adj id to read data from info
JavierRibaldelRio Oct 8, 2026
bc84621
fix(model adj): remove adj readme from test folder
JavierRibaldelRio Oct 9, 2026
db66b30
docs(backend, model): mistaken comment
JavierRibaldelRio Oct 9, 2026
14c222f
fix(backend, adj): change ip as an string to a Ip Addr
JavierRibaldelRio Oct 9, 2026
ae145fe
Feat(backend): Created readMe for model crate. Half way done.
Oct 9, 2026
8cae754
Feat(backend): Final model Readme
Oct 9, 2026
579fc56
Feat(backend): Created ADJ crate README
Oct 9, 2026
0f42fd9
fix(backend, adj/model): remove mesuraments for orders (partial reafa…
JavierRibaldelRio Oct 9, 2026
9451b98
feat(backend, prtotocol): update protocol
JavierRibaldelRio Oct 9, 2026
dba85ba
feat(backend, protocol): main structure
JavierRibaldelRio Oct 9, 2026
42f7c1e
docs: minor changes and clarifications
pminmic Oct 10, 2026
c2b9b87
docs: add tracing use to readme
pminmic Oct 10, 2026
ab39194
fix(backend, adj): remove acta comunicaciones
JavierRibaldelRio Oct 10, 2026
4ea86f2
fix(backend, adj): make adj::raw not a public module
JavierRibaldelRio Oct 10, 2026
80b7c70
Merge pull request #649 from Hyperloop-UPV/backend/model
JavierRibaldelRio Oct 10, 2026
4520ef1
Merge branch 'new-backend' into backend/sntp
JavierRibaldelRio Oct 10, 2026
4f122d8
Merge pull request #646 from Hyperloop-UPV/backend/sntp
JavierRibaldelRio Oct 10, 2026
db3a160
fix(backend, ntp): add port form `model` at `ntp`
JavierRibaldelRio Oct 10, 2026
bb6f5a5
Feat(backend, protocol): Implemented Order Encoding.
Oct 10, 2026
9a097fd
Feat(backend, protocol): Changed byte encoding in Order.rs to Little-…
Oct 10, 2026
553e3dd
feat(backend, protocol): function that returns the number of bytes th…
JavierRibaldelRio Oct 11, 2026
0edcd3a
fix(backend, adj): add methods to ADJID to separate get messurement …
JavierRibaldelRio Oct 11, 2026
a44ab1f
chore(github): remove template issues
JavierRibaldelRio Oct 10, 2026
2607edb
chore(repo): configure recomended extension
JavierRibaldelRio Oct 10, 2026
04a4c01
chore(repo, backend): configure debugger
JavierRibaldelRio Oct 10, 2026
424749d
chore(repo): configure lint
JavierRibaldelRio Oct 10, 2026
d8cade5
chore: set up repo for vscode
JavierRibaldelRio Oct 10, 2026
dfcbcc0
chore: rust
JavierRibaldelRio Oct 10, 2026
83cde99
chore(workflows): rust tests
JavierRibaldelRio Oct 10, 2026
edd0f8c
chore(.gitignore): exclude vscode settings
JavierRibaldelRio Oct 10, 2026
bb210e7
test: workflow
JavierRibaldelRio Oct 10, 2026
d5e7e4b
Feat(backend, protocol): Removed todos and left as comments. Implemen…
Oct 12, 2026
144b31b
Merge branch 'backend/protocol' of https://github.com/Hyperloop-UPV/s…
Oct 12, 2026
e8180bd
Feat(backend, protocol): used new function to retrieve the width of a…
Oct 12, 2026
9670fae
Feat(backend, protocol): Removed todos and left as comments. Implemen…
Oct 12, 2026
abf0e44
Feat(backend, protocol): used new function to retrieve the width of a…
Oct 12, 2026
c3b2939
Feat(backend, protocol): Refactored to merge data.rs and order.rs to …
Oct 12, 2026
d9d2b4d
Feat(backend, protocol): Created tests for data_order.rs.
Oct 12, 2026
71258e5
Feat(backend, protocol): Created ReadMe for the protocol directory.
Oct 12, 2026
60dfd9c
Feat(backend, protocol): Refactored to merge data.rs and order.rs to …
Oct 12, 2026
e658715
Feat(backend, protocol): Created tests for data_order.rs.
Oct 12, 2026
8218e74
Feat(backend, protocol): Created ReadMe for the protocol directory.
Oct 12, 2026
b615ec8
fix(backend, model): use phantom type to diferenciate betwen orders a…
JavierRibaldelRio Oct 12, 2026
fc7216b
fix(backend, protocol): changes due to unification of data_order
JavierRibaldelRio Oct 12, 2026
45642f8
fix(backend, protocol): implement partial eq manually for decode err…
JavierRibaldelRio Oct 12, 2026
7f63644
docs(backend, protocol): update docs
JavierRibaldelRio Oct 12, 2026
5a99aa4
fix(backend, protocol): format
JavierRibaldelRio Oct 12, 2026
3e13e09
fix(backend, protocol): remove duplicated data_order exportation
JavierRibaldelRio Oct 12, 2026
618e696
fix(backend, model): include kind
JavierRibaldelRio Oct 12, 2026
d47baea
feat(backend, protocol): implement boolean
JavierRibaldelRio Oct 12, 2026
87c0159
fix(backend, protocol): solve issues and add comments
JavierRibaldelRio Oct 12, 2026
cbcbfd9
Merge branch 'backend/protocol' into backend/protocol-Javier-Ribal
JavierRibaldelRio Oct 12, 2026
1a2127f
feat(backend, protocol): protection
JavierRibaldelRio Oct 12, 2026
7e632fb
feat(backend, protection): optional id
JavierRibaldelRio Oct 12, 2026
5719787
fix(backend, adj-model): read messages id as a proper package
JavierRibaldelRio Oct 12, 2026
e3aa05e
fix(backend, adj, model): define messages packets in the same way as …
JavierRibaldelRio Oct 12, 2026
cfa789c
feat(backend, protocol): allow index to index packets
JavierRibaldelRio Oct 12, 2026
cc65fbe
feat(backend, protocol): messages decode & encode
JavierRibaldelRio Oct 12, 2026
2a11b67
fix(backend, protocol): remove duplicated function
JavierRibaldelRio Oct 12, 2026
80d34b3
feat(backend, protocol): tcp decode
JavierRibaldelRio Oct 12, 2026
8d7b6b5
refactor(backend): change PacketKind for Pakcet .type
JavierRibaldelRio Oct 13, 2026
c88661d
Merge pull request #659 from Hyperloop-UPV/backend/protocol-Javier-Ribal
JavierRibaldelRio Oct 14, 2026
3c7e77e
Merge branch 'new-backend' into backend/protocol
JavierRibaldelRio Oct 14, 2026
6a8e05a
Merge pull request #657 from Hyperloop-UPV/backend/protocol
JavierRibaldelRio Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .github/ISSUE_TEMPLATE/bug.md

This file was deleted.

17 changes: 0 additions & 17 deletions .github/ISSUE_TEMPLATE/feature.md

This file was deleted.

17 changes: 0 additions & 17 deletions .github/ISSUE_TEMPLATE/task.md

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/rust-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Rust Tests

on:
pull_request:
paths:
- "backend/**"
- ".github/workflows/rust-tests.yaml"

jobs:
test:
name: Test (${{ matrix.crate }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
crate: [software-core, station]
steps:
- uses: actions/checkout@v4

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo
uses: Swatinem/rust-cache@v2
with:
workspaces: backend

- name: Run tests
working-directory: backend
run: cargo test --package ${{ matrix.crate }}
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# Monorepo / IDE
node_modules/
.turbo/
.vscode/
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/tasks.json
.DS_Store
*.code-workspace

Expand Down
9 changes: 9 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"recommendations": [
"rust-lang.rust-analyzer",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"ms-python.python",
"tamasfe.even-better-toml"
]
}
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug Backend (Rust)",
"program": "${workspaceFolder}/backend/target/debug/station",
"args": [],
"cwd": "${workspaceFolder}/backend/crates/station",
"preLaunchTask": "Build Backend (Rust)",
"sourceLanguages": ["rust"]
}
]
}
28 changes: 28 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,33 @@
"editor.codeActionsOnSave": {
"source.fixAll.rust-analyzer": "explicit"
}
},
"rust-analyzer.linkedProjects": ["backend/Cargo.toml"],
"rust-analyzer.check.command": "clippy",
"rust-analyzer.check.extraArgs": ["--all-targets"],

// ESLint: each frontend/* package has its own flat eslint.config.js
"eslint.workingDirectories": [{ "mode": "auto" }],

// Python: blcu-programming is the only Python project, venv created by
// its postinstall script (blcu-programming/scripts/setup.mjs)
"python.defaultInterpreterPath": "${workspaceFolder}/blcu-programming/.venv/bin/python",

// Keep VS Code from indexing/watching generated and vendored trees
"files.watcherExclude": {
"**/node_modules/**": true,
"**/target/**": true,
"**/dist/**": true,
"**/.venv/**": true,
"**/.venv-build/**": true,
"**/.turbo/**": true
},
"search.exclude": {
"**/node_modules": true,
"**/target": true,
"**/dist": true,
"**/.venv": true,
"**/.venv-build": true,
"**/.turbo": true
}
}
187 changes: 187 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Testing View",
"type": "shell",
"command": "pnpm",
"args": ["dev", "--filter", "testing-view"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Run Competition View",
"type": "shell",
"command": "pnpm",
"args": ["dev", "--filter", "competition-view"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Run Flashing View",
"type": "shell",
"command": "pnpm",
"args": ["dev", "--filter", "flashing-view"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Run Logging View",
"type": "shell",
"command": "pnpm",
"args": ["dev", "--filter", "logging-view"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Run ADJ View",
"type": "shell",
"command": "pnpm",
"args": ["dev", "--filter", "adj-view"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Run Backend (Rust)",
"type": "shell",
"command": "cargo",
"args": ["run", "--package", "station"],
"options": {
"cwd": "${workspaceFolder}/backend"
},
"problemMatcher": ["$rustc"],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Run Python (BLCU Programming)",
"type": "shell",
"command": "pnpm",
"args": ["dev", "--filter", "blcu-programming"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Build App",
"type": "shell",
"command": "pnpm",
"args": ["run", "build"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"group": "build"
},
{
"label": "Build Backend (Rust)",
"type": "shell",
"command": "cargo",
"args": ["build", "--package", "station"],
"options": {
"cwd": "${workspaceFolder}/backend"
},
"problemMatcher": ["$rustc"],
"group": "build"
},
{
"label": "Test App",
"type": "shell",
"command": "pnpm",
"args": ["run", "test"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"group": "test"
},
{
"label": "Test Backend (Rust)",
"type": "shell",
"command": "cargo test ${input:rustTestScope} ${input:rustTestFilter}",
"options": {
"cwd": "${workspaceFolder}/backend"
},
"problemMatcher": ["$rustc"],
"group": "test"
},
{
"label": "Clippy Backend (Rust)",
"type": "shell",
"command": "cargo",
"args": ["clippy", "--workspace", "--all-targets", "--", "-D", "warnings"],
"options": {
"cwd": "${workspaceFolder}/backend"
},
"problemMatcher": ["$rustc"],
"group": "test"
},
{
"label": "Format Backend (Rust)",
"type": "shell",
"command": "cargo",
"args": ["fmt", "--all"],
"options": {
"cwd": "${workspaceFolder}/backend"
},
"problemMatcher": [],
"group": "none"
}
],
"inputs": [
{
"id": "rustTestScope",
"type": "pickString",
"description": "¿Qué crate del backend querés testear?",
"options": [
{ "label": "Todo el workspace", "value": "--workspace" },
{ "label": "software-core", "value": "-p software-core" },
{ "label": "station", "value": "-p station" }
],
"default": "--workspace"
},
{
"id": "rustTestFilter",
"type": "promptString",
"description": "Filtro de test/módulo dentro del crate elegido (ej. adj::tests, vacío = todos)",
"default": ""
}
]
}
25 changes: 5 additions & 20 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,7 @@
log
trace.json

/target
/bin

# Test coverage
*testfile

# Build artifacts
/bin/
backend
trace.json

# Test data
*.out
c.out

# Logs
cmd/logger/
cmd/cmd
cmd/adj
/logger/
# Backend runtime output
/logger/
*.log
*.csv
Loading
Loading