Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meetup 22 Resources #180

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
142 changes: 142 additions & 0 deletions Meetups/22/2024-11-18-minutes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Meeting Minutes

## Info

:date: **Date:** 18 November 2024

### :bust_in_silhouette: Participants

- Ege Korkan
- Cristiano Aguzzi
- Luca Barbato
- Vignesh Vaidyanathan
- Anna Schmidt
- Dr. Pasha Shabalin
- Simone Tassi
- Kunihiko Toumura
- Jadyn D'mello
- Daniel Peintner
- Michael Koster
- Richard Bowman
- Oscar Juina
- Lorenzo Gigli
- Richard Kuntschke

## Meetup

### Introduction

Ege: Welcome to the 22nd meetup!

### News

Cris: the week after we will have WoT week a physical event dedicated to WoT.
Cris: We have office hours
Cris: let us know if you want to present something!

#### WoT Week

Cris: We will see each other from 25-29 November in Munich. Two venues, Siemens and Microsoft.

Cris: During the event we will host a Plugfest event an interoperability hackathon!

Cris: Wednesday it is demo time, you can show your WoT solution.

Cris: let us know if you want to join!

### Meetup Presentation

Vignesh: I work at CALA. We accelerate lasers to measure ions. It is remotely controlled due to high power laser or radiation.

Vignesh: You can measure the pulse or the cross section. Which allows you to get physical characteristics. So there are data analysis steps as well.

Vignesh: Data acquisition is IoT in the end.

Vignesh: High power lasers by stretching, reducing the frequency and then amplifying. In the end, it is compressed, where you get a high power pulse.

Vignesh: All these steps use custom built components. The whole setup cannot be bought.

> Vignesh shows the UI with different cameras and controls.

Vignesh: Here we can use WoT to work with the integration time value in the UI.

Vignesh: When we look at the devices, e.g. an oscilloscope, it has properties like time resolution. Actions like start acquisition. Events like measurement points.

Vignesh: However, those devices also have state machines. When a measurement is happening, you cannot the trigger value of a camera. 1 out of 4 cameras can do that.

> Vignesh shows the code part of Hololinked

Vignesh: from the code, we can autogenerate the TD.

> Vignesh shows property, action and event generation.

Vignesh: We can add state information. You can tell if an action is allowed in a state or not.

Vignesh: This is also reflected in the UI.

Vignesh: One important thing is to correlate the timing of different measurements.

Vignesh: Another part is how we can synchronize GUIs. Say, one user starts measurement from one PC.

Vignesh: GUI information about the state is also very important and it is device specific. So we can notify the other clients about state changes.

Vignesh: You can use the context API of frameworks like React or Svelte.

Vignesh: That is it for today. I can get questions now.

### Question

Cris: Is the last event implementation built on top of MQTT?

Vignesh: It is on ZMQ. You don't have to define multiple socket. Messaging contract is different.

Vignesh: We don't have a ZMQ binding though. It is interesting and the WebThing Protocol can be used by over ZMQ.

Vignesh: Images need to be a separate frame though.

Cris: What if you encode the image in JSON with base64 then you don't need another frame.

Vignesh: I also could not get nice image manipulation in JS so I use the python qt for that.

Richard: How do you handle big arrays like numpy?

Vignesh: You can pre-encode it in zeromq. You can dump the memory on the message quite easily.

Richard: Is there a standard way in msgpack (or JSON or whatever) to serialize a big numeric array? I'm wondering if there's something that's not numpy-specific?

Vignesh: Python's own parser was much more performant than numpy. C++ and JSON.

Ege: How is the state information conveyed to the Consumer?

Vignesh: there is a property but the machine itself is in my head. I hope that the standards can help.

Cris: You can also show different TDs per state, as long as there aren't so many states

Vignesh: I also do a lot of time-critical processing. Like 1ms time intervals are important.

Richard: I'm also curious how "dynamic" a thing description is allowed to be - I've sometimes assumed I can parse it once when I set up my client then assume it won't change: is that a bad idea?

Cris: there are some use cases to ask for dynamic TDs but they are not that developed yet. So you are doing correctly.

Ege: What does it mean to delete a property btw?

Vignesh: I want to free up the memory. I can either write an empty array or send a DELETE request.

Ege: So it is more like resetting

Cris: Or clearing.

Vignesh: I also fire a property update when there is a write.

Ege: How do you do async actions?

Vignesh: You can add `synchronous:False` which starts a thread but you cannot do anything with that thread.

Ege: Maybe you can combine the devices you are bringing with the openflexure microscope we have.

Richard: It would cool to test if the UI can control the microscope backend. I also have a new implementation that is almost ready. You can use a new OS image.

## :envelope_with_arrow: Feedbacks

- State machine modeling is missing.
- Long running actions is done differently between two implementations (hololinked vs openflexure)
Binary file not shown.
Binary file not shown.
10 changes: 10 additions & 0 deletions Meetups/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ This readme contains the links to minutes, presentation files and the recordings

Note: Presentation files use the pattern `YEAR-MONTH-WoTCG-EVENTNAME-PRESENTERNAME.FILETYPE`.

## Meetup 22

- Name: Scientific Instrumentation and Control with WoT
- Presenter(s): Vignesh Venkata Subramanian
- Date: 18 November 2024
- [Presenter Slides](./22/2024-11-WoTCG-Meetup22-Scientific_Instrumentation-CALA.pdf)
- Intro Slides: [Google Slides](https://docs.google.com/presentation/d/1ZorsPNGiC3qEeLarrggwyB6G3rgmRz42_vEz5s8icq8/edit?usp=sharing) | [PDF](./22/2024-11-WoTCG-Meetup22-AguzziKorkan.pdf)
- [Video](https://youtu.be/k2KMKd2ZVq0)
- [Minutes](./22/2024-11-18-minutes.md)

## Meetup 21

- Name: Web of Things for every thing
Expand Down