Skip to content
Snippets Groups Projects
  1. Mar 05, 2025
  2. Mar 04, 2025
  3. Mar 03, 2025
  4. Feb 10, 2025
    • Marco Filho's avatar
      Reformulate naming convention. Add global configs. · 10df41b2
      Marco Filho authored
      hybrid.sub is created to add hybrid numbers to file, avoiding having to define that in st.cmd file.
      Similar thing is done for VMM chips, since it's always going to be 2 per hybrid.
      
      Add global configuration values. Global PVs should configure all parameters for all VMM FENS.
      Channel global configurations need to connect to asyn port in order to correctly initialize the array record :(
      10df41b2
  5. Feb 05, 2025
  6. Feb 04, 2025
    • Marco Filho's avatar
      Remove channels scanning. · f7f150cd
      Marco Filho authored
      There are 64 channel per parameter, 7 parameters per VMM, 2 VMMs per hybrid, up to
      6 hybrids per FEN, up to 32 FENs per ring and up to 12 rings per RMM.
      
      We can't scan this without saturating the network card interface, so i removed it.
      It's now up to the user to force the read. We do have forwawrd links between the setpoint and
      readback records, however.
      f7f150cd
  7. Jan 28, 2025
    • Marco Filho's avatar
      Remove scan lock from readback parameters · 5fa19367
      Marco Filho authored
      After talking more with the firmware developers, it became clear that we
      can actually read from the registers when VMM is acquiring, we can only
      not Set other parameters.
      
      I still leave this as a commit instead of rebasing/amending to make it
      easily reversible if we need it someday.
      5fa19367
  8. Jan 27, 2025
    • Marco Filho's avatar
      Add processing lock when acquiring · 5dab3e5d
      Marco Filho authored
      Now most pertinent RBV records are not processed when acquisition is
      ongoing.
      A few records like LinkStatus and IsAcquiring are still scanned for
      obvious reasons, but if we find out that this could not be the case, we
      change it.
      
      I still think this should also be treated in the API layer.
      
      ADCVal and AnalogMon should process in the correct order for us to know
      what we are reading.
      
      We use PHAS field to make sure everything is processed after we have
      checked that IsAcquiring is 0.
      5dab3e5d
    • Marco Filho's avatar
      Add scanning. · 8fdce28d
      Marco Filho authored
      Scannig was not added until now because RMMAPI had an issue that made it
      scramble answers from the hardware if too much polling was made. This
      issue was fixed so we add scan now.
      
      In the channels array records, this called for a new record creation.
      This is because we need the asyn:READBACK info tag, which makes the
      readback from hardware and the setpoint record have the same values. So
      I guarantee that the record ending with R is the actual scanned
      parameter. I also removed the forward link from S to RB record to
      guarantee that the latest value we have in $(CH)-S record is still the
      setpoint.
      
      AnalogMon and ADCVal-R have PHAS 0 and 1 respectively to guarantee that
      we know what is the meaning of what we are reading.
      8fdce28d
  9. Jan 13, 2025
  10. Jan 10, 2025
  11. Jan 09, 2025
    • Marco Filho's avatar
      Add enable/disable option. Add all records. · d2922ff9
      Marco Filho authored
      Added enable/disable option, which now requires for all records to be
      instantiated so we can properly communicate.
      
      This particular IOC spits some error messages with the current test
      setup because it only has two hybrids.
      d2922ff9
    • Marco Filho's avatar
      Fix naming convention · 0443c472
      Marco Filho authored
      As noted on st.cmd, instead of naming records <Device>:HybN we will name
      them <Device><N>:<Property> (So the number is actually part of the
      device).
      
      So records with two digits refer to the whole IOC, records with three
      digits refer to hybrid-specific parameters and records with four digits
      refer to VMM3A specific parameters.
      0443c472
  12. Jan 08, 2025
  13. Jan 07, 2025
  14. Jan 03, 2025
    • Marco Filho's avatar
      Add missing PINI · 1a04afb6
      Marco Filho authored
      1a04afb6
    • Marco Filho's avatar
      Add SD registers. · 85fd0868
      Marco Filho authored
      Turns out it wasn't that different from others. All it needs is to
      change a bo record to ao.
      85fd0868
    • Marco Filho's avatar
      MAJOR REFACTOR · 9fcb1f57
      Marco Filho authored
      This commit was done with an inescrupulous "git add ." after several
      radical modifications.
      
      Anyway, the API was radically modified and basically the old way the
      code worked does not make any sense anymore.
      
      The desired architecture is the following: the API is going to be used
      as a class component. Each parameter will be created according to the
      desired number of enabled hybrids.
      
      Each parameter should use one simple API function. No information about
      the VMM or hybrids itself is stored in the VMMTbl class unless extremely
      needed.
      
      This commit leaves a few old parameters that should be removed in the
      future such as ADC_VALUE_VMM1, READ_ADC_VMMS, etc. This is only to serve
      as a reminder to add those later.
      9fcb1f57
  15. Jul 29, 2024
    • Marco Filho's avatar
      Use substitution file to expand channels. · 3eeb2f2b
      Marco Filho authored
      Substitution file is used in module build to set channel names, since that shouldn't change
      too much with time and particular detector.
      
      VMM and Hybrid numbers are left to be changed in the st.cmd file since that can change more often.
      3eeb2f2b
  16. Jul 16, 2024
    • Marco Filho's avatar
      Adapt record names to fir naming pattern · 8b038174
      Marco Filho authored
      Now, for VMM, the pattern is:
      $(R)$(H)$(V)$(C)$(CH)
      
      R: Usually "NDet-VMMHYB-00". No colon after.
      H: Hybrid number in range 0-5
      V: VMM chip number in range 0-1
      C: Colon Between device name and property Should be ":" but is a macro in case anyone
         decides that shouldn't be there anymore.
      CH: Channel/register being set. Can be ST, SL, SC, STH, SM or SMX
      
      Also, to make naming more visible and dynamic, stop using substitutions file.
      8b038174
  17. Jul 15, 2024
    • Marco Filho's avatar
      Add SMX channel · 1369fe9c
      Marco Filho authored
      Same as previous commits.
      Basically add a list of EPICS parameters for each SMX channel and register, for each Hybrid-VMMChip pair.
      List is indexed by Hybrid and VMM number.
      
      Records are created with .sub file to avoid useless code repetition.
      1369fe9c
    • Marco Filho's avatar
      Add SM register · dceed5fc
      Marco Filho authored
      Nothing new, same stuff as the last previous commits.
      dceed5fc
    • Marco Filho's avatar
      Add sth registers · 5ebf7a02
      Marco Filho authored
      5ebf7a02
    • Marco Filho's avatar
      Add SL channel · 28b76f39
      Marco Filho authored
      This commit makes it possible to change all 64 SL registers for a given Hybrid-VMM pair.
      28b76f39
    • Marco Filho's avatar
      Use map to organize registers. Add SC register. · e1c7216e
      Marco Filho authored
      This commit organizes all possible register parameter lists in a map.
      
      This is so findRegister can search each register map from a single data structure
      instead of having to hardcode every new register parameter list in the findRegister function.
      
      Now, to add a new register, developer should only need to:
      
        1 - Create the register parameter list and add it to the map in vmm_tbl.h:39-41
        2 - ... I think that's it(?)
      
      Also, asynPrint should tell which hybrid, vmm and register are being affected by the operation now.
      e1c7216e
    • Marco Filho's avatar
      Make register name dynamic · 4d3389a8
      Marco Filho authored
      ST register is not hardcoded into template file anymore.
      This will make it easier to add new registers, I hope.
      4d3389a8
    • Marco Filho's avatar
      Style: remove excessive comment symbols · f724db59
      Marco Filho authored
      f724db59
Loading