You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »


The timing/bsa package and the bsaDriver module are incharge of all acquisition services, namely : Beam Line Data (BLD), Beam Synchronous Acquisition (BSA), Beam Synchronous Acquisition Service (BSAS) and Beam Synchronous Scalar Service (BSSS) for the super conducting accelerator. 

Timing/bsa package

TBD

Introduction

This contains a list of the capabilities of the module/package i detail. The reader should be able to understand the basic functionalities of this package/module by reading this text.

Package/module file structure

  • AcqServiceYaml.cc/hh : Contains the base class for BSSS and BLD acquisition services. This base class established communication with CPSW, and provides API method to the upper layers to control and acquire data from BLD and BSSS streams.
  • BldYaml.cc/hh : Implements AcqServiceYaml class with 4 Event definitions
  • BsssYaml.cc/hh: Implements AcqServiceYaml class with 9 Event definitions
  • AmcCarrier.cc/hh: 
  • AmcCarrierBase.cc/hh
  • AmcCarrierYaml.cc/hh
  • bld_control.cc
  • bsa_tst.cc
  • bsaapp_tst.cc
  • BsaDefs.ccc/hh
  • BsaField.hh
  • BsasYaml.cc/hh
  • bsayaml_tst.cc
  • cpsw_duo.cc
  • cpsw_tst.cc
  • CpswTemplate.hh
  • cpu_tst.cc
  • Processor.cc/hh
  • ProcessorT.hh
  • RamControl.cc/hh : Defines IRamControl and CRamControlImpl classes. Later on, something called control, waveform1 and waveform2 will be instantiated with IRamControl. Seems like all three have the same memory layout
  • socketAPI.cc/hh : Socket class that opens a socket and sends data over multicast
  • TPG.cc/hh : 
  • TPGMini.cc/hh
  • tpr_stream.cc
  • yaml_tst.cc

YAMLs

The timing/bsa requires paths that will denote the relevant registers/streams/and drams described in the YAML files. The necessary YAML files are as follows

  • BldAxiStream.yaml : used for BLD and BSSS acquisition services


The involved registers are as follows

Register IndexYAML FileStream/Register nameDescription
1

BldAxiStream.yaml







packetSize

Maximum size of packets in 32b words
2

enable

service enable
3

channelMask

Mask of enabled channels
4

currPacketSize

Current size of packet in 32b words
5

currPacketState

Current packet fill state. Relevant to the statemachine filling the packet in the firmware and irrelevant to the software engineer
6

currPulseIdL

Current packet pulseID lower word
7

currTimeStampL

Current packet timestamp lower word
8

currDelta

Current compressed timestamp/pulseID
9

packetCount

Generated packet count
10

paused

Stream paused
11

diagnClockRate

Diagnostic bus clock rate
12

diagnStrobeRate

Diagnostic bus strobe rate
13

eventSel0Rate

Event select0 rate
14

EdefEnable[#EDEFS]

Enable a specific event definition
15

EdefRateLimit[#EDEFS]

Event definition rate limit
16

EdefRateSel[#EDEFS]

Event definition rate select
17

EdefDestSel[#EDEFS]

Event definition destination select












Class(es)/file(es) descriptions

Each file/associated classes will be described here. UML diagrams and text description can be used. A UML cheat sheet can be found here. Instantiation information (if applicable) can be mentioned. Flow diagrams for describing the class operation are also welcome. Everything can be developed in Gliffy. 

Exception handling (if applicable)

Here you can mention if the package/module throws any exceptions, and you can also mention how these exceptions should be handled in upper layers.

Extension (if applicable)

Is the package extendable to add a new function or to modify an existing function? If so, it needs to be mentioned here. 

Exported IOC shell commands, description and parameters (if applicable)

All EPICS shell commands provided should be described here with their input parameters.

PV name list (if applicable)

The PV list goes here. If any other page described some or all PVs, it can be referenced here. The register index can map the PV to the register described in the YAML section above.

bldStream.cpp

Contains functions and structures to read the BLD/BSSS/BSAS stream coming from the firmware and call the registered callback functions with the stream data stored in buffers.

bsaDriver class

Detailing of the static functions available in the file

init_drvList find_drvByNamedRoot

get_drvNode

listener

callbacks


Print last buffer

bldStreamDriver






  • No labels