diff --git a/src/components/SiteSpecificVersions.js b/src/components/SiteSpecificVersions.js index 02b947f..9b18e50 100644 --- a/src/components/SiteSpecificVersions.js +++ b/src/components/SiteSpecificVersions.js @@ -28,16 +28,6 @@ const StyledDownloadButton = styled.a` const SiteSpecificVersions = () => { return ( - -

DESY

- - CSS DESY KRYO - -

ESS

{ + return ( + + ) +} + +export default UpcomingEvents diff --git a/src/components/collaboration.js b/src/components/collaboration.js index da4386d..7224f0d 100644 --- a/src/components/collaboration.js +++ b/src/components/collaboration.js @@ -153,7 +153,7 @@ const Collaboration = ({ style }) => { /> { -

- Control System Studio is a collection of tools and applications to monitor and operate +

+ Control System Studio is a collection of tools and applications to monitor and operate large scale control systems, such as the ones in the accelerator community. Phoebus is the current implementation of CS-Studio.

+

Policy

+

+ Through a strategy of continuous improvement and teamwork, the Control System Studio Collaboration is dedicated + to supplying control system tools for machine and experiment operator interfaces, automation and + service integration to enable our users to achieve their scientific objectives. +

+

The foundation for achieving our commitment is based on:

+
    +
  • Understanding and meeting the requirements of our users,
  • +
  • continuously improving all processes related to the Control System Studio product,
  • +
  • effectively utilizing the creative talents in the collaboration,
  • +
  • and meeting statutory, regulatory, and other requirements.
  • +
+

Objectives

+
    +
  • 90% User satisfaction from registered sites with a site representative.
  • +
  • 90% Developer satisfaction from registered sites with a site representative.
  • +

Meet Our Team

@@ -110,7 +128,7 @@ const About = () => { ISIS
@@ -229,6 +247,16 @@ const About = () => { + +

Lingran Xiao

+ Site Representative + Advanced Photon Source (ANL) +
    +
  • + +
  • +
+

Tynan Ford

Site Representative @@ -239,27 +267,67 @@ const About = () => {
+ +

Dominic Oram

+ Site Representative + Diamond Light Source (DLS) +
    +
  • + +
  • +
+
+
+
+

Community Resources

+

Matrix Chat

+

+ Join the CS-Studio Chat at + #cs-studio:epics-controls.org. +

+

+ You can follow the instructions on + EPICS Chat + to set up an account and get started. +

+

Github Discussion

+

+ Participate in our discussions on + GitHub - Control System Studio + . +

+

Contact

- User Level Questions:{" "} + For User Level Questions contact us through the {" "} EPICS Tech-Talk Mailing list + >EPICS Tech-Talk Mailing list.

-

Developer Level Questions: cs-studio-core@lists.sourceforge.net

-

Report Bugs/Problems: If you want to Report Bugs/Problems, you can use our GitHub Issue Tracker

+ >GitHub Issue Tracker. +

diff --git a/src/pages/applications.js b/src/pages/applications.js index 7e22877..9e30cfa 100644 --- a/src/pages/applications.js +++ b/src/pages/applications.js @@ -1,12 +1,18 @@ import React from "react" import { useStaticQuery, graphql } from "gatsby" import { GatsbyImage } from "gatsby-plugin-image" +import styled from 'styled-components' import Layout from "../components/layout" import SEO from "../components/seo" import Container from "../components/container" import Banner from "../components/banner" +const Highlight = styled.span` + color: #00293f; + font-weight: bold; +` + const About = () => { const images = useStaticQuery(graphql`{ banner: file( @@ -73,44 +79,39 @@ const About = () => {

Display Builder

- Display Builder is an operator interface panel builder for CS-Studio Phoebus. + Display Builder is an operator interface panel builder for CS-Studio Phoebus. Driven by changes in computer graphics technology and trends, EPICS operator interface tools tend to undergo fundamental transformations every 10 years, recently accelerating. - The Display Builder aims to minimize these transitions. It is in large part backwards - compatible with the original CS-Studio BOY tool and there are converter tools - for EDM and MEDM displays. + The Display Builder aims to minimize these transitions. It is in large parts backwards + compatible with the original CS-Studio BOY tool and there are converter tools available for EDM and MEDM displays.

Key features include:

  • - Heavy use of threading. Display files are loaded in background - threads, related displays are loaded in parallel, plot images are - prepared in separate threads, scripts are executed off the user - interface thread. + Heavy use of threading. Display files are loaded in background threads, + related displays are loaded in parallel, plot images are prepared in separate threads, + scripts are executed off the users interface thread.
  • - Large number of single-purpose widgets. For example, an{" "} - Ellipse - for static graphics, an LED that changes between on/off - states based on a PV, and a Multi State LED that - changes between more than two PV states. Widgets with specific - purposes are more obvious not only to the end user but also to tools - which translate between display file formats. + Large number of single-purpose widgets. + Widgets with specific purposes are more obvious, + not only to the end user but also to tools which translate between display file formats. + Exmaple widgets are an Ellipse for static graphics, a LED that changes between on/off + states based on a PV, and a Multi State LED that changes between more than two PV states.
  • - The PV layer supports EPICS Channel Access, PV Access, local PVs, + EPICS Support. The PV layer supports EPICS Channel Access, PV Access, local PVs, simulated PVs, but also other protocols like MQTT. The data flow is controlled using the Reactive Extensions for Java.
  • - Model, Representation, Runtime and Editor are strictly separate + Modularization. Model, Representation, Runtime and Editor are strictly separate modules, allowing each to evolve separately.
  • - The Representation is based on JavaFX, the most modern Java GUI - library, but as mentioned the representation is fundamentally - separate from the model and runtime. In principle, we could replace - the graphics library, and a proof-of-concept had indeed been + The Representation is based on JavaFX, the most modern Java GUI + library, but as mentioned the representation is fundamentally separate from the model and runtime. + In principle, we could replace the graphics library, and a proof-of-concept had indeed been implemented based on SWT.
@@ -119,24 +120,26 @@ const About = () => { style={{ maxWidth: `100%` }} />
-

The Display Builder file format is saved with the .bob extension and is "compact XML" similar to this:

+

The Display Builder file format is saved with the .bob extension and is "compact XML" similar to this:

           
-            {`
-  100
-  200
-  Hello
-`}
+          {`
+            
+            100
+            200
+            Hello
+            
+          `}
           
         

- Such an XML format can be read and written by many tools, simplifying - the programmatic generation of displays. The minimal nature without - any direct references to the display builder will simplify future + These XML files can be read and written by many tools, simplifying the programmatic generation of displays. + The minimal nature without any direct references to the display builder will simplify future moves to the next greatest EPICS display tool.

- A purely web based tool called Display Builder Web Runtime (DBWR) + A purely web based tool called Display Builder Web Runtime + (DBWR) utilizes the same XML format and is available for viewing Display Builder files in a web browser. This allows CS-Studio Phoebus screens to be viewed within the application and on a web browser without any changes to the underlying .bob file. @@ -146,10 +149,10 @@ const About = () => {

Alarm Table

- The Alarm Table application displays the current state of alarms in the control system. - Its interface will show all current alarms and give operators helpful information on what - each alarm means and the steps needed to address the issue. Alarms can be acknowledged, - which moves them to a separate table of acknowledged alarms. + The Alarm Table application displays the current state of alarms in the control system. + Its interface will show all current alarms and provide operators with helpful information on the meaning of + each alarm and the required steps needed to address the issue. + Alarms can be acknowledged, moving them to a seperate table.

{

Alarm Log

- In order for the alarm system to be effective and functional, proper configuration - and periodic tuning is essential. While the Alarm Table displays the current state - of the control system alarms, the Alarm Log Table gives users a view of past alarm events. - The user interface allows users to effectively search, filter, and parse through the archived - alarm messages which can help to better understand past events and better configure the Alarm Server for the future. + In order for the Alarm System to be effective and functional, proper configuration and periodic tuning is essential. + Rather than displaying pending Alarms in the Alarm Table, the Alarm Log Table provides a list of past alarm events. + The user interface allows users to effectively search, filter, and parse through the archived alarm messages + which can help to better understand past events and better configure the Alarm Server for the future.

{

Channel Table

- The Channel Table application features a search box that queries the control system directory - service for a list of channels that match certain conditions, such as physical functionality - or location. Queries will result in a list of PVs that match the filter along with various + The Channel Table application features a search box that queries + the Control System Directory Service for a list of channels that match certain conditions, + such as physical functionality or location. + Queries will result in a list of PVs that match the filter along with various PV metadata including the IOC Name, Host Name, Record Type, Description, and PV Status. - Channel Table also provides mechanisms to create new metadata, allowing for different + Channel Table also provides mechanisms to create new metadata, allowing for different perspectives of the same set of channel names.

{

Data Browser

- The Data Browser is a trending tool for displaying both live and archived control system - data in a Strip-Chart type plot. Data Browser plots are saved as .plt files and contain - the configuration of the specific plot so they can be easily reopened later and integrated + The Data Browser is a trending tool for displaying both live and archived Control System data + in a Strip-Chart type plot. Data Browser plots are saved as .plt files and contain + the configuration of the specific plot so they can be easily reopened later and be integrated with Display Builder displays.

- The current data on the plot can also be easily captured in a snapshot image or exported directly - into spreadsheet or Matlab formats. Users can annotate the plots to highlight important events - and the snapshot images can be quickly attached to Logbook entries, emailed to other users, or saved locally. + The current data on the plot can either be captured in a snapshot image or + exported directly into spreadsheet or Matlab formats. + Users can annotate the plots to highlight important events and the snapshot images can be quickly attached to Logbook entries, + emailed to other users, or saved locally.

{

Log Entry Table / Send to Logbook

- CS-Studio Phoebus contains a pluggable framework which allows applications to - create and view log entries to several different implementations of Logbook - services including Olog, Olog-ES, ELOG, and SNS operations logbook. + CS-Studio Phoebus contains a pluggable framework which allows applications to create and view log entries + to several different implementations of Logbook services including Olog, Olog-ES, ELOG, and SNS operations logbook.

- The Log Entry Table displays log entries and any attached files that might be - included while also letting users search for specific log entries that match their - filtered query. Many other applications integrate with the Logbook by including a - “Send to Logbook” button which allows for the quick creation of an entry. - The log entry menu also easily lets users attach images of the current CS-Studio - window or Data Browser snapshot. + While displaying log entries and all attached files, + the Log Entry Table also allows useres to search for specific log entries that match their filters. + + Other applications can integrate the Logbook by including a “Send to Logbook” button, + allowing the user to quickly create a new entry. + Through the log entry menu users may attach screenshots of the current CS-Studio window or Data Browser snapshot.

{

Probe

- The Probe tool allows users to quickly view the current value and status of a control system signal. - The current alarm state, last update timestamp, and any PV meta-data are shown. Users can also - use Probe to update the value of the PV by clicking into the Value box and typing the new value. + The Probe tool allows users to quickly view the current value and status of a Control System Process Value. + The current alarm state, last update timestamp, and any PV meta-data are shown. + Users can also use Probe to update the value of the PV by clicking into the Value box and typing the new value.

{ /> {/** Save & Restore */}
-

Save And Restore

+

Save and Restore

- The save & restore application is used to take a “snapshot” of a user-defined list of PV values. - Typical use case is to save the configuration of a subsystem when it has been tuned to a wanted state. - Snapshot data can be used to restore the PV values in order to put the subsystem back to the same state. + The Save and Restore application is used to take a “snapshot” of a user-defined list of PV values, + saving the configuration to a file, containing values of a subsystem that has been tuned to a wanted state. + Snapshot data can be used to restore the PV values in order to put the subsystem back to the same state. In the client application users may modify values or exclude PVs prior to restore.

- Snapshots may also be combined to let a restore operation process a larger set of PVs. + Snapshots may also be combined to run a single restore operation, processing a larger set of PVs.

{

Scan Editor / Scan Monitor

- The Scan Editor application is the interface for creating the logic for a specific scan. - It gives a drag and drop interface for adding commands such as conditional branches, - wait calls, step loops, and calling scripts. Once the logic is completed and submitted, - the scan is run on a central server. + The Scan Editor application is the interface for creating the logic for a specific scan. + It provides a drag and drop interface for adding commands such as conditional branches, wait calls, step loops, and calling scripts. + Once the logic is completed and submitted, the scan is run on a central server.

- The Scan Monitor tool shows which scans are running and a history of completed scans. + The Scan Monitor tool shows which scans are running and a history of completed scans.

{ const images = useStaticQuery(graphql`{ @@ -21,23 +22,18 @@ const About = () => { -

How to Contribute

- Phoebus & CS-Studio development is hosted on Github. You will need a Github - account. + Phoebus & CS-Studio development is entirely hosted on GitHub if you want to participate you will need a GitHub account. - -

CS-Studio Phoebus

+

CS-Studio Phoebus

  • - The most complete documentation for developers, including how to - build and set up various IDE's for development of Phoebus, is the{" "} + The most complete beginner documentation for developers, including build information + and instructions for setting up various IDE's for the development of Phoebus, is the{" "} - docbook - + > Guidebook .
  • @@ -46,95 +42,64 @@ const About = () => { href="https://github.com/ControlSystemStudio/phoebus" target="_blank" rel="noopener noreferrer" - > - Phoebus Github repository - + > Phoebus GitHub repository .
- -

CS-Studio Eclipse

-
    -
  • - The most complete documentation for developers, including how to - import into Eclipse and build CS-Studio, is the{" "} - - docbook - - . -
  • -
  • - The source code is located in the{" "} - - CS-Studio Github repository - - . -
  • -
- -

Fork us on Github

+

Fork us on GitHub

All contributions are accepted as Pull Requests on{" "} - Github - + > GitHub .

-

Attend Meetings

+ +

Contribute a new patch, plugin or fix a bug

  • - We use Google Hangouts to share our progress and discuss issues. -
  • -
  • Meetings are posted (viewable after being added to group)
  • -
  • - Minutes are posted to{" "} + When starting with a new patch, make sure to - Google Docs - + > create an issue + corresponding to the work you are about to do. This helps keep track of new developments.
  • -
  • We meet the first Wednesday of each month (9am EST)
  • -
  • Project groups meet once a week when actively developing
  • -
-

Reporting Problems

-

- When in doubt or have a question, you should{" "} +

  • Create a branch starting from one of the active branches and develop on the new branch.
  • +
  • Plug-ins may be part of 'core', 'applications', or a site's specific product. Typically, new plugins are added to a feature, in order to be added to a product.
  • +
  • + If you are unsure where to place your new plugin or if you have a general question, you can{" "} - open a ticket - + > create an issue . -

    +
  • +
  • + Submit a pull request + . +
  • +
  • There will be a short discussion, we will help you to get your patch merged.
  • + +

    Development Guidelines

    • - For the code conventions we are using, see{" "} + For the code conventions we are using {" "} - Coding Guidelines - + > Coding Guidelines .
    • @@ -143,54 +108,32 @@ const About = () => { href="https://github.com/ControlSystemStudio/cs-studio/wiki/DevelopmentGuidelines" target="_blank" rel="noopener noreferrer" - > - Development Guidelines - + > Development Guidelines .
    -

    Contribute a patch

    + +

    Attend Regular Meetings

      +
    • Monthly Meeting on the first Wednesday of the month (9am EST).
    • +
    • Project groups meet once a week when actively developing.
    • +
    • We use Google Hangouts to share our progress and discuss issues.
    • +
    • Meetings are posted there, visible after being added to the group.
    • - Open a ticket corresponding to the work you are about to do. This - helps keep track of new developments. -
    • -
    • - Create a branch starting from one of the active branches and develop - on the new branch. -
    • -
    • + Minutes are posted to{" "} - Submit a pull request - -
    • -
    • - There should be some discussion and we will help you to get your - patch merged. + > Google Docs + .
    -

    New Plug-ins

    -

    - Plug-ins may be part of 'core', 'applications', or a site's specific - product. Ask if you are unsure of the best location. New plugins are - typically added to a feature in order to be installed in a product. -

    -

    - Use the Bundle-Vendor property of the manifest file of each plug-in - (also visible in Eclipse in Overview/General Information/Provider) to - record the author/maintainer in the following form: -

    -

    - {`Name Surname [[Name Surname |,]] - Site`} -

    -

    - For example:{" "} - {`Gabriele Carcassi , Kunal Shroff - Brookhaven National Lab`} -

    + +

    Upcoming Events

    + +
    +
    ); diff --git a/src/pages/docs.js b/src/pages/docs.js index c002bf1..d454d7b 100644 --- a/src/pages/docs.js +++ b/src/pages/docs.js @@ -44,7 +44,7 @@ const About = () => { - + {

    Notices are emailed to the core email list

    -

    Policy

    -

    - Through a strategy of continuous improvement and teamwork, the Control - System Studio Collaboration is dedicated to supplying control system - tools for machine and experiment operator interfaces, automation and - service integration to enable our users to achieve their scientific - objectives. -

    -

    The foundation for achieving our commitment is based on:

    -
      -
    • understanding and meeting the requirements of our users,
    • -
    • - continuously improving all processes related to the Control System - Studio product, -
    • -
    • - effectively utilizing the creative talents in the collaboration, -
    • -
    • and meeting statutory, regulatory, and other requirements.
    • -
    -

    Objectives

    -
      -
    • - 90% User satisfaction from registered sites with a site - representative -
    • -
    • - 90% Developer satisfaction from registered sites with a site - representative -
    • -
    +
    ); diff --git a/src/pages/download.js b/src/pages/download.js index ac994d2..c0dc364 100644 --- a/src/pages/download.js +++ b/src/pages/download.js @@ -13,6 +13,11 @@ import SiteSpecificVersions from "../components/SiteSpecificVersions" import { dlInfo } from "../utils/downloadinfo" +const Highlight = styled.span` + color: #00293f; + font-weight: bold; +` + const Flex = styled.div` display: flex; flex-direction: column; @@ -177,6 +182,23 @@ const Download = () => { )} +

    Qickstart Guide

    +

    + Build: After downloading, you can follow the + build instructions + on GitHub. +

    +

    + Run: For instructions on how to run Phoebus, you can have a look at the + Guidebook . +

    +

    Site Specific Versions

    diff --git a/src/pages/index.js b/src/pages/index.js index d5e0a04..857c6ac 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -104,18 +104,19 @@ const IndexPage = () => {

    Control System Studio

    - Control System Studio is a collection of tools and applications to monitor and operate - large scale control systems, such as the ones in the accelerator community. + Control System Studio is a collection of tools and applications to + monitor and operate large scale control systems, such as the ones in the accelerator community.

    -

    Phoebus is a pure java/javafx based implementation which uses java - feature like SPI and modules to provide the same extensible and modular achitecture. This is the - current implementation of CS-Studio. The original implementation of - CS-Studio is based on the eclipse RCP framework which provided - an extensible and pluggable architecture. +

    + Phoebus, the current implementation of CS-Studio, is a pure java/javafx based implementation + which uses features like SPI and modules to provide the same extensible and modular achitecture. + The original implementation of CS-Studio is based on the Eclipse RCP framework + which provided an extensible and pluggable architecture.

    -

    The Phoebus and CS-Studio products are developed and - maintained by a collaboration between many laboratories and universities. +

    + The Phoebus and CS-Studio products are developed and maintained + by a collaboration between many laboratories and universities.

    @@ -133,9 +134,10 @@ const IndexPage = () => {

    - With an extensible data connection layer it is possible to use Phoebus & CS-Studio - with multiple control systems and data sources. Currently, the community supports - the EPICS channel access and pvAccess protocols along with MQTT. + With an extensible data connection layer it is possible + to use Phoebus and CS-Studio with multiple control systems and data sources. + Currently, the community supports the EPICS Channel Access + and pvAccess protocols along with MQTT. The use of well defined SPI's allows for CS-Studio applications to be used with multiple site specific services.

    @@ -169,11 +171,11 @@ const IndexPage = () => { />

    - A WYSIWYG editor makes it possible to develop production quality controls and - monitoring user interfaces easily. - The CS-Studio Phoebus framework provides support for developing multi-threading applications - along with providing features like rate limiting and aggregation ensuring performance and scalablity of - user developed screens. + A WYSIWYG editor makes it possible to develop production quality controls + and monitoring user interfaces easily. + The framework provides support for developing multi-threading applications + along with providing features like rate limiting and aggregation, + ensuring performance and scalablity of user developed screens.

    @@ -193,12 +195,10 @@ const IndexPage = () => {

    - The Databrowser is a trending tool. It aggregates live and - archived data to plot values over a user-defined time range. - Databrowser plots may be created from any OPI visual component - associated with a control system process value (PV). Additional - features include extensive plot styling capabilities as well as - import/export of data in several formats. + The Databrowser is a trending tool. + It aggregates live and archived data to plot values over a user-defined time range. + Databrowser plots may be created from any OPI visual component associated with a Control System Process Value (PV). + Additional features include extensive plot styling capabilities as well as import/export of data in several formats.

    { const images = useStaticQuery(graphql`{ banner: file( @@ -25,108 +31,128 @@ const About = () => { imageFluid={images.banner.childImageSharp.gatsbyImageData} text="Services" /> - + {/** Alarm Services **/}

    Alarm Services

    There are three services which combine to make up a complete solution for control system alarm handling. - The core service is the Alarm Server which is based on Zookeeper and Kafka. - The Alarm Server contains user-defined alarm configurations persisted in Zookeeper. - These will list PVs of interest organized in a tree hierarchy to arbitrary depth. - Configuration files also contain additional information consumed by the alarm views, +

    +

    Alarm Server

    +

    + The core service is the Alarm Server which is based on Zookeeper and Kafka. + The Alarm Server contains user-defined alarm configurations persistent in Zookeeper. + These alarm configurations will list PVs of interest, organized in a tree hierarchy to arbitrary depth. + These files also contain additional information needed by the Alarm Views, e.g. guidance texts or links to control displays. The Alarm Server will send real time messages to clients via Kafka data streams.

    +

    Alarm Logger

    - The second service is the Alarm Logger which is based on ElasticSearch and keeps a history - of all alarm messages and events which can be searched and filtered by clients. - Lastly, the Alarm Configuration Logger keeps track of any changes made to the configurations - in the Alarm Server and versions these changes in a git repository. + The second service is the Alarm Logger which is based on ElasticSearch + and keeps an archive of all alarm messages and events which can be searched and filtered by clients. + It is especially useful to discover alarm patterns, create statistical reports or debug the alarm system. +

    - - Read more - Alarm Server + + Read more (Alarm Logging Service Documentation)

    +

    Alarm Configuration Logger

    - - Read more - Alarm Logger - + The third service is the Alarm Configuration Logger, a simple service to log all changes + made to the Alarm Server Configuration and version control them with a git repository. + It will also map the Alarm Configuration Tree into a directory structure for a better overview.

    - Read more - Alarm Configuration Logger + Read more (Alarm Configuration Logging Documentation) + +

    + {/** Archiver Appliance **/} +
    +

    Archiver Appliance

    +

    + The EPICS Archiver Appliance is an implementation of an archiver for EPICS control systems + that aims to archive millions of PVs and is supported by CS-Studio for the Data Browser. + Communication will make use of the PB/HTTP protocol and can be configured accordingly. +

    +

    + + Read more (EPICS Archiver Appliance Documentation)

    {/** Channel Finder */}

    Channel Finder Service

    - The Channel Finder service is a simple directory service which gives clients the ability to search - for channel names and associated meta-data with complex queries. Backed by ElasticSearch, the directory - data consists of a set of Channels, with an arbitrary set of Properties (name-value pairs), and an arbitrary - set of Tags (names). These channels can be then queried based on the channel name, property value and tags. + The Channel Finder service is a simple directory service which gives clients the ability + to search for channel names and associated meta-data with complex queries. + Backed by ElasticSearch, the directory data consists of a set of channels + with an arbitrary set of properties (name-value pairs), and an arbitrary set of tags (names). + These channels can be then queried based on the channel name, property value and tags.

    - Read more + Read more (Channel Finder Documentation)

    {/** Logbook Service**/}
    -

    Logbook Service

    +

    Logbook Service (Olog)

    - The Logbook Service (OLOG) is an electronic logbook which allows for the creation and retrieval of log entries. - The service was developed to address the needs of operators, engineers, and users of large scientific facilities. - Since these log entries are stored in Elasticsearch, the service also supports a powerful search API. - Search criteria include log entry title and body or its meta-data (author, date, tags, properties), or both. + The Logbook Service Olog is an electronic logbook which allows + for the creation and retrieval of log entries. + The service was developed to address the needs of operators, engineers, and users of large scientific facilities. + Since these log entries are stored in ElasticSearch, the service also supports a powerful search API. + Search criteria can include log entry title and body and its meta-data (author, date, tags, properties).

    - For basic formatting the log entry body is authored using Markdown, which is converted by clients to HTML. - Attachments of any kind may be added to log entries. These are persisted in MongoDB by the service. - Attachments can be searched by type. Clients will render thumbnail previews of image attachments. + For basic formatting the log entry body is authored using Markdown, which is converted by clients to HTML. +

    +

    + Attachments of any kind may be added to log entries which are presistently stored in MongoDB by the service. + Additionally attachments can be searched by type and the clients will render thumbnail previews of attached image.

    - Read more + Read more (Olog Documentation)

    {/** Save & Restore */}
    -

    Save & Restore Service

    +

    Save and Restore Service

    - The save-and-restore service implements service as a collection of REST endpoints. - These can be used by clients to manage configurations (aka save sets) and snapshots, - to compare snapshots and to restore PV values from snapshots. This service is a Spring Boot-based - application using Elasticsearch for data persistence. + The Save-and-restore service implements service as a collection of REST endpoints. + These can be used by clients to manage configurations (aka save sets) and snapshots, + to compare snapshots and to restore PV values from snapshots. This service is based on the Spring Boot + application using Elasticsearch for data persistence.

    - Read more + Read more (Save-and-restore Documentation)

    {/** Scan */}

    Scan Server

    - The scan system can automate experiments by running scans on a central server. - For example, it can move a motor from some start position to an end position in certain steps, - waiting at each step until experiment data has been taken. A scan can - consist of several nested loops. For example, at each step of moving - the "horizontal" position of a sample, an inner loop can vary the - "vertical" position of the sample to perform a 2-dimensional scan of - the sample surface. As another example, an outer loop may vary the - sample temperature while inner loops vary the sample position. + The Scan system can automate experiments by running scans on a central server. + Scans can be defined in a precise way, defining start and endpoint, + the number of steps to take and can also be configured to wait for the experimental data to be recieved before proceeding. +

    +

    + One scan can even consist of several nested loops, giving you the possibility to perform a 2-dimensional scan of a sample surface + with nesting a "vertical position" loop inside every step of your "horizontal position" loop.

    - By running the scans on a central server, there are less worries that a script gets - canceled accidentally on a client machine and all the logs and history of scans can - be easily accessed by system experts. + Running the scripts on a central server can minimize conflicts or failure, + while making logs and history easily accessible by system experts.

    - Read more + Read more (Scan system Documentation)