Cargo options
1. Central BuckitUp
One BuckitUp device. Many sensors (at least one per checkpoint)
Checkpoint deploy
- Checkpoint creates a user for itself into system and stores keys on its hard drive
Route start
- Anyone creates a room with truck number
- Invites checkpoints into the room
Checkpoint algo
- Driver pushes the button.
- Truck number is recognised. Sensor lights in-progress LED.
- Sensor uses API to find room by truck number.
- Sensor finds the key of the room in chats (can be background job)
- Sensor writes image and weight info to the room.
- Sensor turns off in-progress LED, Driver is free to go.
graph TD;
b(BuckitUp)
subgraph Checkpoint_1
s1(Sensor)
end
subgraph Checkpoint_2
s2(Sensor)
end
subgraph Checkpoint_N
sn(Sensor)
end
b -.- Checkpoint_1
b -.- Checkpoint_2
b -.- Checkpoint_N
Pros:
- no or minimal driver actions
-
no USB drive handling = no
cargo_db
drive type - no special room handling
Cons:
- outage of central chat blocks the process
- network outage blocks the process
- requires permanent network connection
- relies on truck number recognition
Left to do
- BuckitUp: minimal API
- Sensor: truck number recognition
- Sensor: API client
- Sensor: weigh and camera
- Sensor: progress indication
2. Smart Sensor and BuckitUp per Checkpoint
Sensor and BuckitUp can be on same or separate devices.
In this case we replacing centralizerd network with USB drive to transfer data. Also flash drive gives us truck number.
Checkpoint deploy
- Checkpoint creates a user for itself into system and stores keys on its hard drive
- Sensor url and public key stored in BuckitUp admin panel
Route start
- Starter creates special room with truck number
- Invites checkpoints into the room
- Cargo USB gets written with track room and chevkpoint invitations into the room
- Driver takes USB drive
Checkpoint algo
- Driver inserts USB drive at checkpoint
- BuckitUp recognizes cargo USB drive and notifies sensor with room and peer name sent invitation
- Sensor lights in-progress LED.
- Sensor finds the key of the room in chat
- Sensor writes image and weight info to the room.
- BuckitUp finds new info in a room and unmounts flash drive.
- Sensor turns off in-progress LED
- Driver takes USB drive.
graph TD;
d{{USB drive}}
subgraph Checkpoint_1
b1(BuckitUp) <-->
s1(Sensor)
end
subgraph Checkpoint_2
b2(BuckitUp) <-->
s2(Sensor)
end
subgraph Checkpoint_N
bn(BuckitUp) <--> sn(Sensor)
end
d -.- Checkpoint_1
d -.- Checkpoint_2
d -.- Checkpoint_N
Pros:
- no network needed
- decentralised, stable and copied over checkpoints
Cons:
- driver needs to insert USB drive
Left to do
- BuckitUp: minimal API
- BuckitUp: roomstarting
-
BuckitUp:
cargo_db
handling - BuckitUp: sensor configuration
- Sensor: API client
- Sensor: weigh and camera
- Sensor: progress indication
3. Simple Sensor and BuckitUp per Checkpoint
In this case Sensor provides simple interface to get weight info and camera image. It is likely to be run on one device.
Sensor should provide HTTP or CLI interface.
Checkpoint deploy
- Checkpoint creates a user for itself and stores it in adminDB
- Sensor url or command stored in BuckitUp admin panel
Route start
- Starter creates special room with truck number
- Invites checkpoints into the room
- Cargo USB gets written with track room and checkpoint invitations into the room
- Driver takes USB drive
Checkpoint algo
- Driver inserts USB drive at checkpoint
- BuckitUp recognizes cargo USB drive
- BuckitUp lights in-progress LED.
- BuckitUp finds the key of the room in chat
- BuckitUp requests image and weight info from Sensor.
- BuckitUp writes sensor data into the room.
- BuckitUp unmounts flash drive.
- BuckitUp turns off in-progress LED
- Driver takes USB drive.
graph TD;
d{{USB drive}}
subgraph Checkpoint_1
b1(BuckitUp) --o
s1(Sensor)
end
subgraph Checkpoint_2
b2(BuckitUp) --o
s2(Sensor)
end
subgraph Checkpoint_N
bn(BuckitUp) --o sn(Sensor)
end
d -.- Checkpoint_1
d -.- Checkpoint_2
d -.- Checkpoint_N
Pros:
- no network needed
- decentralised, stable and copied over checkpoints
- no API needed
Cons:
- driver needs to insert USB drive
Left to do
- BuckitUp: roomstarting
-
BuckitUp:
cargo_db
handling - BuckitUp: sensor configuration
- BuckitUp: sensor data retrieving
- Sensor: weigh and camera
- BuckitUp: progress indication
4. BuckitUp per Checkpoint
Everything done in BuckitUp system.
Checkpoint deploy
- Checkpoint creates a user for itself and stores it in adminDB
- Camera url and weigh config stored in BuckitUp admin panel
Route start
- Starter creates special room with truck number
- Invites checkpoints into the room
- Cargo USB gets written with track room and checkpoint invitations into the room
- Driver takes USB drive
Checkpoint algo
- Driver inserts USB drive at checkpoint
- BuckitUp recognizes cargo USB drive
- BuckitUp lights in-progress LED.
- BuckitUp finds the key of the room in chat
- BuckitUp gets weight info and camera image and writes them into the room.
- BuckitUp unmounts flash drive.
- BuckitUp turns off in-progress LED
- Driver takes USB drive.
graph TD;
d{{USB drive}}
subgraph Checkpoint_1
b1(BuckitUp)
end
subgraph Checkpoint_2
b2(BuckitUp)
end
subgraph Checkpoint_N
bn(BuckitUp)
end
d -.- Checkpoint_1
d -.- Checkpoint_2
d -.- Checkpoint_N
Pros:
- no network needed
- decentralised, stable and copied over checkpoints
- no API needed
- no external script needed
Cons:
- driver needs to insert USB drive
Left to do
- BuckitUp: roomstarting
-
BuckitUp:
cargo_db
handling - BuckitUp: sensor configuration
- BuckitUp: sensor data retrieving
- BuckitUp: weigh and camera
- BuckitUp: progress indication