#Automation studio 4.1 update
This allows efficient asynchronous update of each listening component when the pvServer emits the PVs event update. In the data connection layer of the clients components, an event listener that is tied to the PV name is registered on the Socket-IO connection for each instantiation of the component. EPICS CA to the required process variables are established and the PyEpics PV is stored in a list, the connection and value change call backs of the PyEpics CA are used to emit meta-data, connection status and value changes to the read-only and read-write rooms.
![automation studio 4.1 automation studio 4.1](https://www.fileeagle.com/data/2016/08/Screenshot_1_iSpy.jpg)
Depending if authentication is enabled the client will first be authenticated, thereafter the data connection wrapper will emit Socket-IO events to the pvServer requesting access to the EPICS variable.ĭepending on the clients access rights, access is either denied or the socket connection is placed in a Socket-IO room with read-only or read-write privileges but with same name as PV. The client initially makes a Socket-IO connection to the pvServer. It is layered on the Flask and Flask-Socket-IO web application frameworks to serve the EPICS process variables to clients.Ĭommunication between clients and the pvServer occurs between the data connection wrapper in the client components and the pvServer as follows: This is the python process variable server. The microservices that form part of React Automation StudioĪn overview of the system components are give below: 1 and an overview of the system components are give below:įig 1. The microservices that form part of React Automation Studio are shown in Fig. These containerised environments allows for precise versioning of packages used and prevents deployment dependency issues.
![automation studio 4.1 automation studio 4.1](https://images.g2crowd.com/uploads/product/image/social_landscape/social_landscape_0b972283ec93cd3430f8f16db6c498ed/automation-studio.png)
Separate Docker commands exist to load the development and production version. The system has been containerised with Docker and version controlled as a mono-repository using Git.Įach of the Docker containers are deployed as micro services and environment variables can be configured to deploy the system on different ports, or to enable user authentication and authorisation or to serve the application on a unique URL or on the localhost. If you wish to create a standalone AlarmHandler project you should clone this project:
![automation studio 4.1 automation studio 4.1](https://image.slidesharecdn.com/iycnetbrautomationstudioquickstartmasys2asqs-e240-161108184124/95/automation-studio-1-638.jpg)
#Automation studio 4.1 code
This repository pulls in the src from the React Automation Studio repository and acts a standalone boiler plate example project for React Automation Studio without having to delve into the source code of the master repository.