New Starters - ISISComputingGroup/ibex_developers_manual GitHub Wiki

Welcome to IBEX!

  1. Using the Developer Wiki
    1. Searching the Codebase
  2. Getting Set Up
    1. Using Git
    2. Creating Useful Shortcuts
    3. Office Admin Links
  3. Familiarising with IBEX
    1. Introduction
    2. Components and Technical Concepts
  4. EPICS Introduction
    1. Further EPICS
    2. Input/Output Controller (IOC) Resources
  5. 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:

Wiki Search Results

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!

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.

Here's some useful bits and bobs for how our team operates and the conventions we use in our work.

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:

Further EPICS

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.

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.

You can find CSS at C:\Instrument\Apps\EPICS\CSS\master.