diff --git a/Meetups/22/2024-11-18-minutes.md b/Meetups/22/2024-11-18-minutes.md new file mode 100644 index 0000000..0455cd6 --- /dev/null +++ b/Meetups/22/2024-11-18-minutes.md @@ -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) diff --git a/Meetups/22/2024-11-WoTCG-Meetup22-AguzziKorkan.pdf b/Meetups/22/2024-11-WoTCG-Meetup22-AguzziKorkan.pdf new file mode 100644 index 0000000..41b0d93 Binary files /dev/null and b/Meetups/22/2024-11-WoTCG-Meetup22-AguzziKorkan.pdf differ diff --git a/Meetups/22/2024-11-WoTCG-Meetup22-Scientific_Instrumentation-CALA.pdf b/Meetups/22/2024-11-WoTCG-Meetup22-Scientific_Instrumentation-CALA.pdf new file mode 100644 index 0000000..3b0c663 Binary files /dev/null and b/Meetups/22/2024-11-WoTCG-Meetup22-Scientific_Instrumentation-CALA.pdf differ diff --git a/Meetups/Readme.md b/Meetups/Readme.md index 21eed8c..97e9d01 100644 --- a/Meetups/Readme.md +++ b/Meetups/Readme.md @@ -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