Skip to content
Snippets Groups Projects
  1. Mar 04, 2025
  2. Mar 03, 2025
  3. 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
  4. Feb 05, 2025
  5. 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
  6. 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
  7. Jan 13, 2025
  8. Jan 10, 2025
  9. 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
  10. Jan 03, 2025
    • 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
  11. Jul 15, 2024
    • 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
  12. 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
  13. May 27, 2024
Loading