A web console to control nanosatellites
Nahuel Garbezza
Slide 2
Slide 2 text
context
Satellogic builds nanosatellites using open
hardware and software technologies
@CubeBug1 launched, @CubeBug2 to be launched soon
they needed a visual console for improving
the interaction with the satellites
Slide 3
Slide 3 text
context
Console Radio
Satellite
sockets
Slide 4
Slide 4 text
let’s see some of the key aspects of
the project
Slide 5
Slide 5 text
#1: discover the domain
we did test-driven development from the
beginning
a lot of concepts & patterns emerged
Slide 6
Slide 6 text
let’s browse some classes :-)
#1: discover the domain
Slide 7
Slide 7 text
#2: visual sending & reception of
packages
web interface using Seaside components
a lot of JQuery / Ajax
integration with DataTables JQuery plugin
Slide 8
Slide 8 text
#2: visual sending & reception of
packages
demo: let’s see the console running!
Slide 9
Slide 9 text
#3: display charts
timeline charts using Highstock JS library
(bindings with Smalltalk)
Slide 10
Slide 10 text
#3: display charts
Slide 11
Slide 11 text
#4: parse command definitions
code that runs in the satellite is written in C
we used PetitParser to extract the command
definitions
Slide 12
Slide 12 text
#4: parse command definitions
demo:
browse some PetitParser rules
configuration from the web interface
Slide 13
Slide 13 text
#5: let the users write custom scripts
built-in commands are ‘primitives’
console users know Smalltalk so…
we let them write Smalltalk code
scripting support using metaprogramming
Slide 14
Slide 14 text
#5: let the users write custom scripts
demo:
creating and sending scripts from the
console
some technical details
Slide 15
Slide 15 text
conclusions
great opportunity to work on a real project using
Smalltalk
personally, to gain experience on TDD, OO
design and Web development