New Starters - ISISComputingGroup/ibex_developers_manual GitHub Wiki
Welcome to IBEX!
- Using the Developer Wiki
- Getting Set Up
- Familiarising with IBEX
- EPICS Introduction
- Control System Studio
This page is designed to be used as a comprehensive reference to getting started in the Instrument Controls team. Written by new-ish starters, for the newest starters. It's a collection of useful resources which will speed up your onboarding and get you developing.
Using the Developer Wiki
There are many how-to guides in the Developer's manual. If you're searching for a particular nugget of information and can't find the relevant page, double check the results in the 'Wikis' tab:
Being able to use the wiki is as much a skill as learning to use any of our tools. If you're stuck, this can be really useful - try searching for different keywords from your ticket.
Searching the Codebase
Another mode of attack is searching through our codebase for particular code snippets, which is equally useful! You don't need to reinvent the wheel - you can search to see how code has been already written for a similar purpose, find examples of how unfamiliar concepts are used, or see our coding conventions for certain processes. This is also a good way to locate files if you don't know where they live, but know some keywords they may contain!
You can do this by searching in ISISComputingGroup and clicking on the 'Code' tab (as seen above).
Getting Set Up
First off you're going to need all the developer tools we use, a copy of the existing codebase, and the Eclipse GUI for IBEX*.
Don't forget to come back afterwards!
Using Git
We use Git for version control of the codebase. For IBEX-flavoured Git resources, see:
If you're not familiar with it, learn it!
- Github's own Git tutorials
- Friendly git sandbox - the 'remote' tutorials in particular
- Nice intro to Git & version control
Creating Useful Shortcuts
There's a couple files/commands you'll find yourself using a lot. It's handy to create desktop shortcuts for these frequently used links:
EPICSTerm
(The EPICS terminal window where IOCs are built and run)start_ibex_server
stop_ibex_server
These can be found in C:\Instrument\Apps\EPICS
.
Office Admin Links
As a new starter you should add your name and picture to the training slides.
- ISIS Sharepoint - Shared ISIS documents, manuals, meeting minutes etc
- Oracle Login - Book leave, create timesheets
- Flexi Time - If you're on Flexi time and need to view/edit your work history
- Health & Safety Training
Here's some useful bits and bobs for how our team operates and the conventions we use in our work.
- IBEX Processes - Logistics of the day-to-day
- IBEX Project Board - Where our tickets live
- Tickets and their Workflow
- Standards and Conventions
- Useful Tools
Familiarising with IBEX
Introduction
While that's installing, get to know the IBEX components. Get to know EPICS. It's the software environment that IBEX uses to control the ISIS instruments.
Ironically, to get a well-explained overview of what IBEX is, and how to interact with it as a dev, the IBEX User Manual is a really nice place to start. In particular, see:
There are some training materials available that we use to train scientists on IBEX, which is also a nice way to get started:
Components and Technical Concepts
Some pages to read over:
Pages to skim over. Read in detail only when needed:
Every section after this line contains reference information that you do not necessarily have to read before you do your first ticket, but it is where you should take a look when you find out you need to learn new things in order to do your work.
EPICS Introduction
There is much to learn about EPICS and it can be difficult to know what you're looking for. You do not have to read these resources until you get to writing your first IOC. Here are some overviews:
- Old but still good overview - https://epics.anl.gov/docs/GSWE.php
- More recent overview http://www.aps.anl.gov/epics/docs/training.php in particular http://www.aps.anl.gov/epics/docs/USPAS2014.php
- Powerpoint EPICS overview
- Training Course
- Database Principles (what's a record? And more)
- Database Principles II (with examples)
Further EPICS
- State Notation Language 1 State Notation Language 2
- ASYN/Stream Device overview
- YouTube Videos covering the epics.gov.anl slideshows
Input Output Controller Resources
When building an IOC, emulator, or writing tests, much can be learned by looking at existing IOCs: these can be found in C:\Instrument\Apps\EPICS\ioc\master
.
However, there are also several places online to find good sources for learning and referencing.
- Creating & Basics of IOCs - Our guide to creating IOCs and how they work. Lots of useful tips!
- Protocol Files and Record Types - Excellent reference for when you're mixing up your %d's and %f's. Bookmark this one!
- Sequencer - State Notation in IOCs - All about implementing a state machine into an IOC, if needed.
Control System Studio
We use a number of parts of Control System Studio (CSS) in our GUI (Alarms, Databrowser etc.). Most of these resources require little developer interaction apart from creating Operator Interfaces (OPIs) - GUIs, essentially - for the instrument controllers. It can be useful to create a desktop shortcut of this too.
Here's an overview and a get started guide.
- Creating OPIs - An introduction for how we use CSS and to set it up on your computer
- Overview of CS-Studio
- Intro to using CS-Studio
You can find CSS at C:\Instrument\Apps\EPICS\CSS\master
.