class KioskModel(models.Model): """A version of our kiosks.""" reference = models.SlugField(max_length=16) commercial_name = models.CharField(max_length=32) manufacturer = models.ForeignKey(Manufacturer) family = models.ForeignKey(KioskFamily)
class KioskModel(models.Model): """A version of our kiosks.""" reference = models.SlugField(max_length=16) commercial_name = models.CharField(max_length=32) manufacturer = models.ForeignKey(Manufacturer) family = models.ForeignKey(KioskFamily) class Kiosk(models.Model): """One specific kiosk.""" kiosk_model = models.ForeignKey(KioskModel) firmware_version = models.ForeignKey(FirmwareVersion) customer = models.ForeignKey(Customer) location = models.ForeignKey(InstallationSite) notes = models.TextField()
Get all the Django goodness:
Embedded systems specifics:
Embedded systems specifics:
Security:
=> Some problems might be better solved by dedicated tools (salt, ...)
Critical for operations:
=> Monitoring will be a huge part of your network traffic.
One update every five minutes, for 3000 devices, means 10 updates per second...
In a distributed system:
Where using Django really helps!
Publish data to users:
Send commands to devices:
Single logic for all requests:
# app/processes.py def reserve(user, charge_point): if charge_point.seen_recently and charge_point.unused: user.reservations.create(charge_point=charge_point) charge_point.set_color('blue')
Single logic for all requests:
# app/processes.py def reserve(user, charge_point): if charge_point.seen_recently and charge_point.unused: user.reservations.create(charge_point=charge_point) charge_point.set_color('blue') # app/views/customer.py def reserve(request): # ... if form.is_valid(): processes.reserve(form.customer, form.charge_point)
Single logic for all requests:
# app/processes.py def reserve(user, charge_point): if charge_point.seen_recently and charge_point.unused: user.reservations.create(charge_point=charge_point) charge_point.set_color('blue') # app/views/customer.py def reserve(request): # ... if form.is_valid(): processes.reserve(form.customer, form.charge_point) # ws/charge_point.py def on_card_swipe(charge_point, card): if card.is_active(): processes.reserve(card.owner, charge_point)
Table of Contents | t |
---|---|
Exposé | ESC |
Full screen slides | e |
Presenter View | p |
Source Files | s |
Slide Numbers | n |
Toggle screen blanking | b |
Show/hide slide context | c |
Notes | 2 |
Help | h |