Skip to content
Snippets Groups Projects
  1. Jan 13, 2025
  2. Jan 10, 2025
  3. 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
  4. Jan 08, 2025
  5. Jan 07, 2025
  6. 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
  7. 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
  8. 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
  9. 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
    • Marco Filho's avatar
      Make register ST channel set for correct Hybrid/VMM pair. · d408299e
      Marco Filho authored
      Before this, Any caput to AllST-S record would only set channels values to
      hybrid 0, vmm 0 because of hardcoded values.
      
      This commit makes the vmmST_ an array with epics parameters.
      The function getPair discovers the HYBRID-VMM pair for the parameter
      that was called and sets the correct pair register's values.
      
      Also, records are loaded with .sub files so we don't need to keep repeating
      record names with different numbers.
      
      All have been tested and works.
      d408299e
  10. Jul 12, 2024
    • Marco Filho's avatar
      Add bo record to set every ST channel all at once. · 629d181b
      Marco Filho authored
      Before this, you would need to put array of values into ST-S.
      Now you can simply put 1 or 0 into AllST-S and it will set all channels.
      
      OOPT "on change" field is needed because for some reason without it even
      if you put PINI=NO in all these three ST-S records, it processes on IOC
      initialization, which I don't think is desired.
      629d181b
    • Marco Filho's avatar
      Add initial set channels array · 95201d33
      Marco Filho authored
      Add array of 64 elements. When you put into it, the nth element will
      set the nth ST channel of VMM to the value put to it.
      
      Added writeInt8Array method.
      Added the ST-T aao record.
      Added vmmST parameter to VMM class.
      Removed TO-DO comment that was about adding this functionality.
      95201d33
  11. May 27, 2024
  12. Mar 26, 2024
  13. Mar 22, 2024
  14. Mar 12, 2024
Loading