EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: Re: setInteger64Param
From: "Gofron, Kazimierz via Tech-talk" <tech-talk at aps.anl.gov>
To: Mark Rivers <rivers at cars.uchicago.edu>, Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Fri, 26 Aug 2022 18:16:19 +0000
Hi Mark,

There is no typo in the INP field, that I can see. The record loads without undefined macro in ioc.
I am using Ubuntu 20.04
===============

epics> dbpr testErrors:Int64In 2
ACKS: NO_ALARM      ACKT: YES           ADEL: 0             AFTC: 0            
AMSG:               ASG :               BKPT: 00            DESC:              
DISA: 0             DISP: 0             DISS: NO_ALARM      DISV: 1            
DTYP: asynInt64     EGU :               EVNT:               FLNK: CONSTANT      
HHSV: NO_ALARM      HIGH: 0             HIHI: 0             HOPR: 0            
HSV : NO_ALARM      HYST: 0            
INP : INST_IO @asyn(PORT1,0,1)INT64_VALUE                   LCNT: 0            
LLSV: NO_ALARM      LOLO: 0             LOPR: 0             LOW : 0            
LSV : NO_ALARM      MDEL: 0             NAME: testErrors:Int64In                
NAMSG:              NSEV: NO_ALARM      NSTA: NO_ALARM      PACT: 0            
PHAS: 0             PINI: NO            PRIO: LOW           PUTF: 0            
RPRO: 0             SCAN: I/O Intr      SDIS: CONSTANT      SDLY: -1            
SEVR: NO_ALARM      SIML: CONSTANT      SIMM: NO            SIMS: NO_ALARM      
SIOL: CONSTANT      SSCN: <nil>         STAT: NO_ALARM      SVAL: 0            
TIME: <undefined>   TPRO: 0             TSE : -2            TSEL: CONSTANT      
UDF : 0             UDFS: INVALID       VAL : 0            
===========
I have different:
TIME: <undefined>
TSE : -2
======================



From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, August 26, 2022 1:59 PM
To: Gofron, Kazimierz <kgofron at bnl.gov>; Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: RE: setInteger64Param
 

That version of base is fine.

 

Is there a typo in your INP field, or an undefined macro?

 

Did you check for error messages in iocInit?

 

You can test an int64In record by doing the following in asyn:

 

cd asyn/iocBoot/ioctestErrors

 

../../bin/linux-x86_64/testErrors st.cmd

 

epics> dbpr testErrors:Int64In 2

ACKS: NO_ALARM      ACKT: YES           ADEL: 0             AFTC: 0

AMSG:               ASG :               BKPT: 00            DESC:

DISA: 0             DISP: 0             DISS: NO_ALARM      DISV: 1

DTYP: asynInt64     EGU :               EVNT:               FLNK: CONSTANT

HHSV: NO_ALARM      HIGH: 0             HIHI: 0             HOPR: 0

HSV : NO_ALARM      HYST: 0

INP : INST_IO @asyn(PORT1,0,1)INT64_VALUE                   LCNT: 0

LLSV: NO_ALARM      LOLO: 0             LOPR: 0             LOW : 0

LSV : NO_ALARM      MDEL: 0             NAME: testErrors:Int64In

NAMSG:              NSEV: NO_ALARM      NSTA: NO_ALARM      PACT: 0

PHAS: 0             PINI: NO            PRIO: LOW           PUTF: 0

RPRO: 0             SCAN: .1 second     SDIS: CONSTANT      SDLY: -1

SEVR: NO_ALARM      SIML: CONSTANT      SIMM: NO            SIMS: NO_ALARM

SIOL: CONSTANT      SSCN: <nil>         STAT: NO_ALARM      SVAL: 0

TIME: 2022-08-26 12:54:22.190808469     TPRO: 0             TSE : 0

TSEL: CONSTANT      UDF : 0             UDFS: INVALID       VAL : 0

 

In this case the int64In record is working fine.  What do you see?

 

Mark

 

 

From: Gofron, Kazimierz <kgofron at bnl.gov>
Sent: Friday, August 26, 2022 12:49 PM
To: Mark Rivers <rivers at cars.uchicago.edu>; Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: tech-talk at aps.anl.gov
Subject: Re: setInteger64Param

 

Hi Mark,

 

 

kgofron@kgofron-HP-Z6-G4-Workstation:/epics/src/RHEL8/base$ git branch

* (HEAD detached at R7.0.6)

  7.0

 


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, August 26, 2022 1:46 PM
To: Gofron, Kazimierz <kgofron at bnl.gov>; Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: RE: setInteger64Param

 

Hi Kaz,

 

dbpr shows a problem for both the ai and int64In records:

 

NSTA: LINK          

PACT: 1

SEVR: INVALID

STAT: UDF

TIME: <undefined>  

UDF : 1

 

The NSTA field (New Alarm Status) is LINK.  This means there is something wrong with the input link.

 

What version of EPICS base are you using?

 

Mark

 

 

From: Gofron, Kazimierz <kgofron at bnl.gov>
Sent: Friday, August 26, 2022 12:32 PM
To: Mark Rivers <rivers at cars.uchicago.edu>; Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: tech-talk at aps.anl.gov
Subject: Re: setInteger64Param

 

Hi Mark,

 

record(ai, "$(P)$(R)StartTime_RBV"){

  field(DTYP, "asynInt64")

  field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME")

  field(SCAN, "I/O Intr")

}

--------

epics> dbpr TPX3-TEST:cam1:StartTime_RBV 2

ACKS: NO_ALARM      ACKT: YES           ADEL: 0             AFTC: 0            

AMSG:               AOFF: 0             ASG :               ASLO: 1            

BKPT: 00            DESC:               DISA: 0             DISP: 0            

DISS: NO_ALARM      DISV: 1             DTYP: asynInt64     EGU :              

EGUF: 0             EGUL: 0             EOFF: 0             ESLO: 1            

EVNT:               FLNK: CONSTANT      HHSV: NO_ALARM      HIGH: 0            

HIHI: 0             HOPR: 0             HSV : NO_ALARM      HYST: 0            

INP : INST_IO @asyn(TPX3,0,1)TPX3_START_TIME                LCNT: 0            

LINR: NO CONVERSION LLSV: NO_ALARM      LOLO: 0             LOPR: 0            

LOW : 0             LSV : NO_ALARM      MDEL: 0            

NAME: TPX3-TEST:cam1:StartTime_RBV      NAMSG:              NSEV: INVALID      

NSTA: LINK          PACT: 1             PHAS: 0             PINI: NO            

PREC: 0             PRIO: LOW           PUTF: 0             ROFF: 0            

RPRO: 0             RVAL: 0             SCAN: Passive       SDIS: CONSTANT      

SDLY: -1            SEVR: INVALID       SIML: CONSTANT      SIMM: NO            

SIMS: NO_ALARM      SIOL: CONSTANT      SMOO: 0             SSCN: <nil>        

STAT: UDF           SVAL: 0             TIME: <undefined>   TPRO: 0            

TSE : 0             TSEL: CONSTANT      UDF : 1             UDFS: INVALID      

VAL : 0            

--------------

Parameter 293 type=asynInt64, name=TPX3_START_TIME, value=1661466046253, status=0       

=====================

=====================

 

record(int64in, "$(P)$(R)StartTime_RBV"){

  field(DTYP, "asynInt64")

  field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME")

  field(SCAN, "I/O Intr")

}

-------------------------

epics> dbpr TPX3-TEST:cam1:StartTime_RBV 2

ACKS: NO_ALARM      ACKT: YES           ADEL: 0             AFTC: 0            

AMSG:               ASG :               BKPT: 00            DESC:              

DISA: 0             DISP: 0             DISS: NO_ALARM      DISV: 1            

DTYP: asynInt64     EGU :               EVNT:               FLNK: CONSTANT      

HHSV: NO_ALARM      HIGH: 0             HIHI: 0             HOPR: 0            

HSV : NO_ALARM      HYST: 0            

INP : INST_IO @asyn(TPX3,0,1)TPX3_START_TIME                LCNT: 0            

LLSV: NO_ALARM      LOLO: 0             LOPR: 0             LOW : 0            

LSV : NO_ALARM      MDEL: 0             NAME: TPX3-TEST:cam1:StartTime_RBV      

NAMSG:              NSEV: INVALID       NSTA: LINK          PACT: 1            

PHAS: 0             PINI: NO            PRIO: LOW           PUTF: 0            

RPRO: 0             SCAN: Passive       SDIS: CONSTANT      SDLY: -1            

SEVR: INVALID       SIML: CONSTANT      SIMM: NO            SIMS: NO_ALARM      

SIOL: CONSTANT      SSCN: <nil>         STAT: UDF           SVAL: 0            

TIME: <undefined>   TPRO: 0             TSE : 0             TSEL: CONSTANT      

UDF : 1             UDFS: INVALID       VAL : 0            

-------------------------

Parameter 293 type=asynInt64, name=TPX3_START_TIME, value=1661466046253, status=0

=====================


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, August 26, 2022 1:18 PM
To: Gofron, Kazimierz <kgofron at bnl.gov>; Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: RE: setInteger64Param

 

Please send the output of:

 

dbpr TPX3-TEST:cam1:StartTime_RBV 2

 

both when the record type is ai and int64in.

 

Mark

 

 

From: Gofron, Kazimierz <kgofron at bnl.gov>
Sent: Friday, August 26, 2022 12:12 PM
To: Mark Rivers <rivers at cars.uchicago.edu>; Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Cc: tech-talk at aps.anl.gov
Subject: Re: setInteger64Param

 

Hi Mark and Torsten,

 

The parameter 293 has the value set correctly. However, PV is 0.

---------

Parameter 293 type=asynInt64, name=TPX3_START_TIME, value=1661466046253, status=0

--------

kgofron@HP-Z6-G4$ caget TPX3-TEST:cam1:StartTime_RBV

TPX3-TEST:cam1:StartTime_RBV   0

==================

 

The behavior is same if I explicitly use 1661466046253LL

setInteger64Param(ADTimePixStartTime,       1661466046253LL);

---------------------

Behavior is same if I use int64in

record(int64in, "$(P)$(R)StartTime_RBV"){

  field(DTYP, "asynInt64")

  field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME")

  field(SCAN, "I/O Intr")

}

 

=============================

epics> asynReport 1 TPX3

TPX3 multiDevice:No canBlock:Yes autoConnect:Yes

    enabled:Yes connected:Yes numberConnects 1

    nDevices 0 nQueued 0 blocked:No

    asynManagerLock:No synchronousLock:No

    exceptionActive:No exceptionUsers 1 exceptionNotifys 0

    traceMask:0x1 traceIOMask:0x2 traceInfoMask:0x1

2022/08/26 12:41:19.235 ADTimePix::report reporting to external log file

 -------------------------------------------------------------------

 Connected Device Information

 Image Width           ->      512

 Image Height          ->      512

 -------------------------------------------------------------------

 

Port: TPX3

  Timestamp: 2022/08/26 12:34:48.194

  Input EOS[0]:

  Output EOS[0]:

Parameter list 0

Number of parameters is: 299

Parameter 0 type=string, name=PORT_NAME_SELF, value=TPX3, status=0

Parameter 1 type=string, name=ADCORE_VERSION, value=3.11.0, status=0

Parameter 2 type=string, name=DRIVER_VERSION, value=0.1.0, status=0

Parameter 3 type=string, name=MANUFACTURER, value=ASI, status=0

Parameter 4 type=string, name=MODEL, value=Tpx3, status=0

Parameter 5 type=string, name=SERIAL_NUMBER, value=41000039, status=0

Parameter 6 type=string, name=SDK_VERSION, value=2.3.6, status=0

Parameter 7 type=string, name=FIRMWARE_VERSION, value=18052510, status=0

Parameter 8 type=asynInt32, name=ACQUIRE, value=0, status=0

Parameter 9 type=asynInt32, name=ACQUIRE_BUSY, value=0, status=0

Parameter 10 type=asynInt32, name=WAIT_FOR_PLUGINS, value=0, status=0

Parameter 11 type=asynInt32, name=ARRAY_SIZE_X, value=512, status=0

Parameter 12 type=asynInt32, name=ARRAY_SIZE_Y, value=512, status=0

Parameter 13 type=asynInt32, name=ARRAY_SIZE_Z, value=0, status=0

Parameter 14 type=asynInt32, name=ARRAY_SIZE, value=524288, status=0

Parameter 15 type=asynInt32, name=ARRAY_NDIMENSIONS, value=0, status=0

Parameter 16 type=asynInt32, name=ARRAY_DIMENSIONS, value is undefined

Parameter 17 type=asynInt32, name=DATA_TYPE, value=3, status=0

Parameter 18 type=asynInt32, name=COLOR_MODE, value=0, status=0

Parameter 19 type=asynInt32, name=UNIQUE_ID, value=0, status=0

Parameter 20 type=asynFloat64, name=TIME_STAMP, value=0, status=0

Parameter 21 type=asynInt32, name=EPICS_TS_SEC, value=0, status=0

Parameter 22 type=asynInt32, name=EPICS_TS_NSEC, value=0, status=0

Parameter 23 type=asynInt32, name=BAYER_PATTERN, value=0, status=0

Parameter 24 type=string, name=CODEC, value is undefined

Parameter 25 type=asynInt32, name=COMPRESSED_SIZE, value is undefined

Parameter 26 type=asynInt32, name=ARRAY_COUNTER, value=13, status=0

Parameter 27 type=string, name=FILE_PATH, value=, status=0

Parameter 28 type=asynInt32, name=FILE_PATH_EXISTS, value is undefined

Parameter 29 type=string, name=FILE_NAME, value=, status=0

Parameter 30 type=asynInt32, name=FILE_NUMBER, value=0, status=0

Parameter 31 type=string, name=FILE_TEMPLATE, value=%s%s_%3.3d.dat, status=0

Parameter 32 type=asynInt32, name=AUTO_INCREMENT, value=0, status=0

Parameter 33 type=string, name=FULL_FILE_NAME, value is undefined

Parameter 34 type=asynInt32, name=FILE_FORMAT, value is undefined

Parameter 35 type=asynInt32, name=AUTO_SAVE, value is undefined

Parameter 36 type=asynInt32, name=WRITE_FILE, value=0, status=0

Parameter 37 type=asynInt32, name=READ_FILE, value=0, status=0

Parameter 38 type=asynInt32, name=WRITE_MODE, value is undefined

Parameter 39 type=asynInt32, name=WRITE_STATUS, value=0, status=0

Parameter 40 type=string, name=WRITE_MESSAGE, value=, status=0

Parameter 41 type=asynInt32, name=NUM_CAPTURE, value is undefined

Parameter 42 type=asynInt32, name=NUM_CAPTURED, value=0, status=0

Parameter 43 type=asynInt32, name=CAPTURE, value=0, status=0

Parameter 44 type=asynInt32, name=DELETE_DRIVER_FILE, value is undefined

Parameter 45 type=asynInt32, name=FILE_LAZY_OPEN, value is undefined

Parameter 46 type=asynInt32, name=CREATE_DIR, value=0, status=0

Parameter 47 type=string, name=FILE_TEMP_SUFFIX, value=, status=0

Parameter 48 type=string, name=ND_ATTRIBUTES_FILE, value=, status=0

Parameter 49 type=asynInt32, name=ND_ATTRIBUTES_STATUS, value=1, status=0

Parameter 50 type=string, name=ND_ATTRIBUTES_MACROS, value=, status=0

Parameter 51 is undefined, name=ARRAY_DATA

Parameter 52 type=asynInt32, name=ARRAY_CALLBACKS, value=1, status=0

Parameter 53 type=asynInt32, name=POOL_MAX_BUFFERS, value is undefined

Parameter 54 type=asynInt32, name=POOL_ALLOC_BUFFERS, value=5, status=0

Parameter 55 type=asynInt32, name=POOL_FREE_BUFFERS, value=2, status=0

Parameter 56 type=asynFloat64, name=POOL_MAX_MEMORY, value=0, status=0

Parameter 57 type=asynFloat64, name=POOL_USED_MEMORY, value=2.5, status=0

Parameter 58 type=asynInt32, name=POOL_EMPTY_FREELIST, value is undefined

Parameter 59 type=asynInt32, name=NUM_QUEUED_ARRAYS, value=0, status=0

Parameter 60 type=asynFloat64, name=GAIN, value=1, status=0

Parameter 61 type=asynInt32, name=BIN_X, value=1, status=0

Parameter 62 type=asynInt32, name=BIN_Y, value=1, status=0

Parameter 63 type=asynInt32, name=MIN_X, value=0, status=0

Parameter 64 type=asynInt32, name=MIN_Y, value=0, status=0

Parameter 65 type=asynInt32, name=SIZE_X, value=512, status=0

Parameter 66 type=asynInt32, name=SIZE_Y, value=512, status=0

Parameter 67 type=asynInt32, name=MAX_SIZE_X, value=512, status=0

Parameter 68 type=asynInt32, name=MAX_SIZE_Y, value=512, status=0

Parameter 69 type=asynInt32, name=REVERSE_X, value=0, status=0

Parameter 70 type=asynInt32, name=REVERSE_Y, value=0, status=0

Parameter 71 type=asynInt32, name=FRAME_TYPE, value=0, status=0

Parameter 72 type=asynInt32, name=IMAGE_MODE, value=1, status=0

Parameter 73 type=asynInt32, name=NEXPOSURES, value=1, status=0

Parameter 74 type=asynInt32, name=NEXPOSURES_COUNTER, value=0, status=0

Parameter 75 type=asynInt32, name=NIMAGES, value=10, status=0

Parameter 76 type=asynInt32, name=NIMAGES_COUNTER, value=6, status=0

Parameter 77 type=asynFloat64, name=ACQ_TIME, value=0.1, status=0

Parameter 78 type=asynFloat64, name=ACQ_PERIOD, value=0.2, status=0

Parameter 79 type=asynFloat64, name=TIME_REMAINING, value=0, status=0

Parameter 80 type=asynInt32, name=STATUS, value=0, status=0

Parameter 81 type=asynInt32, name=TRIGGER_MODE, value=4, status=0

Parameter 82 type=asynInt32, name=SHUTTER_CONTROL, value=0, status=0

Parameter 83 type=asynInt32, name=SHUTTER_CONTROL_EPICS, value is undefined

Parameter 84 type=asynInt32, name=SHUTTER_STATUS, value=0, status=0

Parameter 85 type=asynInt32, name=SHUTTER_MODE, value=0, status=0

Parameter 86 type=asynFloat64, name=SHUTTER_OPEN_DELAY, value=0, status=0

Parameter 87 type=asynFloat64, name=SHUTTER_CLOSE_DELAY, value=0, status=0

Parameter 88 type=asynFloat64, name=TEMPERATURE, value=25, status=0

Parameter 89 type=asynFloat64, name=TEMPERATURE_ACTUAL, value is undefined

Parameter 90 type=asynInt32, name=READ_STATUS, value is undefined

Parameter 91 type=string, name=STATUS_MESSAGE, value=, status=0

Parameter 92 type=string, name=STRING_TO_SERVER, value=, status=0

Parameter 93 type=string, name=STRING_FROM_SERVER, value=, status=0

Parameter 94 type=string, name=TPX3_FW_TIMESTAMP, value=2022/01/05 11:07, status=0

Parameter 95 type=string, name=TPX3_DETECTOR_TYPE, value=Tpx3, status=0

Parameter 96 type=asynInt32, name=TPX3_HTTP_CODE, value=200, status=0

Parameter 97 type=string, name=TPX3_SERVER_NAME, value=http://localhost:8080, status=0

Parameter 98 type=asynFloat64, name=TPX3_LOCAL_TEMP, value=40, status=0

Parameter 99 type=asynFloat64, name=TPX3_FPGA_TEMP, value=40, status=0

Parameter 100 type=asynFloat64, name=TPX3_FAN1_SPEED, value=0, status=0

Parameter 101 type=asynFloat64, name=TPX3_FAN2_SPEED, value=0, status=0

Parameter 102 type=asynFloat64, name=TPX3_BIAS_VOLT_H, value=11.9751, status=0

Parameter 103 type=string, name=TPX3_CHIP_TEMPS, value=[11,89,89,89], status=0

Parameter 104 type=string, name=TPX3_VDD, value=[1.5,0.0004,0.6], status=0

Parameter 105 type=string, name=TPX3_AVDD, value=[1.5,0.0004,0.6], status=0

Parameter 106 type=asynInt32, name=TPX3_HEALTH, value=0, status=0

Parameter 107 type=string, name=TPX3_IFACE, value=Spidr, status=0

Parameter 108 type=string, name=TPX3_CHIPID, value=41000039, status=0

Parameter 109 type=string, name=TPX3_SW_VER, value=19081915, status=0

Parameter 110 type=string, name=TPX3_FW_VER, value=18052510, status=0

Parameter 111 type=asynInt32, name=TPX3_PEL_CNT, value=262144, status=0

Parameter 112 type=asynInt32, name=TPX3_ROWLEN, value=2, status=0

Parameter 113 type=asynInt32, name=TPX3_NUM_CHIPS, value=4, status=0

Parameter 114 type=asynInt32, name=TPX3_NUM_ROWS, value=512, status=0

Parameter 115 type=asynInt32, name=TPX3_MPX_TYPE, value=6, status=0

Parameter 116 type=string, name=TPX3_BOARDS_ID, value=41000039, status=0

Parameter 117 type=string, name=TPX3_BOARDS_IP, value=127.0.0.10, status=0

Parameter 118 type=asynInt32, name=TPX3_BOARDS_PORT, value=8192, status=0

Parameter 119 type=string, name=TPX3_BOARDS_CH1, value="Id":680,"Name":"W0002_H10", status=0

Parameter 120 type=string, name=TPX3_BOARDS_CH2, value="Id":681,"Name":"W0002_I10", status=0

Parameter 121 type=string, name=TPX3_BOARDS_CH3, value="Id":682,"Name":"W0002_J10", status=0

Parameter 122 type=string, name=TPX3_BOARDS_CH4, value="Id":683,"Name":"W0002_K10", status=0

Parameter 123 type=asynInt32, name=TPX3_ACQ_MODES, value=63, status=0

Parameter 124 type=asynFloat64, name=TPX3_CLOCK_READ, value=125, status=0

Parameter 125 type=asynInt32, name=TPX3_PULSE_CNT, value=2147483647, status=0

Parameter 126 type=asynFloat64, name=TPX3_PULSE_HIGHT, value=1, status=0

Parameter 127 type=asynFloat64, name=TPX3_PULSE_PERIOD, value=34.3597, status=0

Parameter 128 type=asynFloat64, name=TPX3_TIME_MAX, value=34.3597, status=0

Parameter 129 type=asynFloat64, name=TPX3_TIME_MIN, value=8e-09, status=0

Parameter 130 type=asynFloat64, name=TPX3_TIME_STEP, value=8e-09, status=0

Parameter 131 type=asynFloat64, name=TPX3_CLOCK, value=125, status=0

Parameter 132 type=asynInt32, name=TPX3_FAN1PWM, value=0, status=0

Parameter 133 type=asynInt32, name=TPX3_FAN2PWM, value=0, status=0

Parameter 134 type=asynInt32, name=TPX3_BIAS_VOLT_R, value=12, status=0

Parameter 135 type=asynInt32, name=TPX3_BIAS_ENBL, value=1, status=0

Parameter 136 type=string, name=TPX3_CHAIN_MODE, value=NONE, status=0

Parameter 137 type=asynInt32, name=TPX3_TRIGGER_IN, value=0, status=0

Parameter 138 type=asynInt32, name=TPX3_TRIGGER_OUT, value=0, status=0

Parameter 139 type=string, name=TPX3_POLARITY, value=Positive, status=0

Parameter 140 type=string, name=TPX3_TRIGGER_MODE, value=AUTOTRIGSTART_TIMERSTOP, status=0

Parameter 141 type=asynFloat64, name=TPX3_EXPOSURE_TIME, value=0.1, status=0

Parameter 142 type=asynFloat64, name=TPX3_TRIGGER_PERIOD, value=0.2, status=0

Parameter 143 type=asynInt32, name=TPX3_NTRIGGERS, value=10, status=0

Parameter 144 type=string, name=TPX3_DET_ORIENTATION, value=UP, status=0

Parameter 145 type=asynInt32, name=TPX3_PERIPH_CLK80, value=0, status=0

Parameter 146 type=asynFloat64, name=TPX3_TRIG_DELAY, value=0, status=0

Parameter 147 type=string, name=TPX3_TDC, value="PN0123","PN0123", status=0

Parameter 148 type=asynFloat64, name=TPX3_GL_TIMESTAMP_INT, value=0, status=0

Parameter 149 type=asynInt32, name=TPX3_EXT_REF_CLOCK, value=0, status=0

Parameter 150 type=asynInt32, name=TPX3_LOG_LEVEL, value=1, status=0

Parameter 151 type=asynInt32, name=TPX3_CHIP0_CP_PLL, value=128, status=0

Parameter 152 type=asynInt32, name=TPX3_CHIP0_DISCS1OFF, value=8, status=0

Parameter 153 type=asynInt32, name=TPX3_CHIP0_DISCS1ON, value=128, status=0

Parameter 154 type=asynInt32, name=TPX3_CHIP0_DISCS2OFF, value=8, status=0

Parameter 155 type=asynInt32, name=TPX3_CHIP0_DISCS2ON, value=128, status=0

Parameter 156 type=asynInt32, name=TPX3_CHIP0_IKRUM, value=10, status=0

Parameter 157 type=asynInt32, name=TPX3_CHIP0_PIXELDAC, value=230, status=0

Parameter 158 type=asynInt32, name=TPX3_CHIP0_PREAMPOFF, value=8, status=0

Parameter 159 type=asynInt32, name=TPX3_CHIP0_PREAMPON, value=128, status=0

Parameter 160 type=asynInt32, name=TPX3_CHIP0_TPBUFFERIN, value=128, status=0

Parameter 161 type=asynInt32, name=TPX3_CHIP0_TPBUFFEROUT, value=128, status=0

Parameter 162 type=asynInt32, name=TPX3_CHIP0_PLL_VCNTRL, value=128, status=0

Parameter 163 type=asynInt32, name=TPX3_CHIP0_VPREAMPNCAS, value=128, status=0

Parameter 164 type=asynInt32, name=TPX3_CHIP0_VTP_COARSE, value=128, status=0

Parameter 165 type=asynInt32, name=TPX3_CHIP0_VTP_FINE, value=256, status=0

Parameter 166 type=asynInt32, name=TPX3_CHIP0_VFBK, value=128, status=0

Parameter 167 type=asynInt32, name=TPX3_CHIP0_VTH_COARSE, value=6, status=0

Parameter 168 type=asynInt32, name=TPX3_CHIP0_VTH_FINE, value=216, status=0

Parameter 169 type=string, name=TPX3_CHIP0_ADJUST, value is undefined

Parameter 170 type=asynInt32, name=TPX3_CHIP1_CP_PLL, value=128, status=0

Parameter 171 type=asynInt32, name=TPX3_CHIP1_DISCS1OFF, value=8, status=0

Parameter 172 type=asynInt32, name=TPX3_CHIP1_DISCS1ON, value=128, status=0

Parameter 173 type=asynInt32, name=TPX3_CHIP1_DISCS2OFF, value=8, status=0

Parameter 174 type=asynInt32, name=TPX3_CHIP1_DISCS2ON, value=128, status=0

Parameter 175 type=asynInt32, name=TPX3_CHIP1_IKRUM, value=10, status=0

Parameter 176 type=asynInt32, name=TPX3_CHIP1_PIXELDAC, value=247, status=0

Parameter 177 type=asynInt32, name=TPX3_CHIP1_PREAMPOFF, value=8, status=0

Parameter 178 type=asynInt32, name=TPX3_CHIP1_PREAMPON, value=128, status=0

Parameter 179 type=asynInt32, name=TPX3_CHIP1_TPBUFFERIN, value=128, status=0

Parameter 180 type=asynInt32, name=TPX3_CHIP1_TPBUFFEROUT, value=128, status=0

Parameter 181 type=asynInt32, name=TPX3_CHIP1_PLL_VCNTRL, value=128, status=0

Parameter 182 type=asynInt32, name=TPX3_CHIP1_VPREAMPNCAS, value=128, status=0

Parameter 183 type=asynInt32, name=TPX3_CHIP1_VTP_COARSE, value=128, status=0

Parameter 184 type=asynInt32, name=TPX3_CHIP1_VTP_FINE, value=256, status=0

Parameter 185 type=asynInt32, name=TPX3_CHIP1_VFBK, value=128, status=0

Parameter 186 type=asynInt32, name=TPX3_CHIP1_VTH_COARSE, value=6, status=0

Parameter 187 type=asynInt32, name=TPX3_CHIP1_VTH_FINE, value=253, status=0

Parameter 188 type=string, name=TPX3_CHIP1_ADJUST, value is undefined

Parameter 189 type=asynInt32, name=TPX3_CHIP2_CP_PLL, value=128, status=0

Parameter 190 type=asynInt32, name=TPX3_CHIP2_DISCS1OFF, value=8, status=0

Parameter 191 type=asynInt32, name=TPX3_CHIP2_DISCS1ON, value=128, status=0

Parameter 192 type=asynInt32, name=TPX3_CHIP2_DISCS2OFF, value=8, status=0

Parameter 193 type=asynInt32, name=TPX3_CHIP2_DISCS2ON, value=128, status=0

Parameter 194 type=asynInt32, name=TPX3_CHIP2_IKRUM, value=10, status=0

Parameter 195 type=asynInt32, name=TPX3_CHIP2_PIXELDAC, value=251, status=0

Parameter 196 type=asynInt32, name=TPX3_CHIP2_PREAMPOFF, value=8, status=0

Parameter 197 type=asynInt32, name=TPX3_CHIP2_PREAMPON, value=128, status=0

Parameter 198 type=asynInt32, name=TPX3_CHIP2_TPBUFFERIN, value=128, status=0

Parameter 199 type=asynInt32, name=TPX3_CHIP2_TPBUFFEROUT, value=128, status=0

Parameter 200 type=asynInt32, name=TPX3_CHIP2_PLL_VCNTRL, value=128, status=0

Parameter 201 type=asynInt32, name=TPX3_CHIP2_VPREAMPNCAS, value=128, status=0

Parameter 202 type=asynInt32, name=TPX3_CHIP2_VTP_COARSE, value=128, status=0

Parameter 203 type=asynInt32, name=TPX3_CHIP2_VTP_FINE, value=256, status=0

Parameter 204 type=asynInt32, name=TPX3_CHIP2_VFBK, value=128, status=0

Parameter 205 type=asynInt32, name=TPX3_CHIP2_VTH_COARSE, value=6, status=0

Parameter 206 type=asynInt32, name=TPX3_CHIP2_VTH_FINE, value=221, status=0

Parameter 207 type=string, name=TPX3_CHIP2_ADJUST, value is undefined

Parameter 208 type=asynInt32, name=TPX3_CHIP3_CP_PLL, value=128, status=0

Parameter 209 type=asynInt32, name=TPX3_CHIP3_DISCS1OFF, value=8, status=0

Parameter 210 type=asynInt32, name=TPX3_CHIP3_DISCS1ON, value=128, status=0

Parameter 211 type=asynInt32, name=TPX3_CHIP3_DISCS2OFF, value=8, status=0

Parameter 212 type=asynInt32, name=TPX3_CHIP3_DISCS2ON, value=128, status=0

Parameter 213 type=asynInt32, name=TPX3_CHIP3_IKRUM, value=10, status=0

Parameter 214 type=asynInt32, name=TPX3_CHIP3_PIXELDAC, value=215, status=0

Parameter 215 type=asynInt32, name=TPX3_CHIP3_PREAMPOFF, value=8, status=0

Parameter 216 type=asynInt32, name=TPX3_CHIP3_PREAMPON, value=128, status=0

Parameter 217 type=asynInt32, name=TPX3_CHIP3_TPBUFFERIN, value=128, status=0

Parameter 218 type=asynInt32, name=TPX3_CHIP3_TPBUFFEROUT, value=128, status=0

Parameter 219 type=asynInt32, name=TPX3_CHIP3_PLL_VCNTRL, value=128, status=0

Parameter 220 type=asynInt32, name=TPX3_CHIP3_VPREAMPNCAS, value=128, status=0

Parameter 221 type=asynInt32, name=TPX3_CHIP3_VTP_COARSE, value=128, status=0

Parameter 222 type=asynInt32, name=TPX3_CHIP3_VTP_FINE, value=256, status=0

Parameter 223 type=asynInt32, name=TPX3_CHIP3_VFBK, value=128, status=0

Parameter 224 type=asynInt32, name=TPX3_CHIP3_VTH_COARSE, value=6, status=0

Parameter 225 type=asynInt32, name=TPX3_CHIP3_VTH_FINE, value=210, status=0

Parameter 226 type=string, name=TPX3_CHIP3_ADJUST, value is undefined

Parameter 227 type=string, name=TPX3_CHIP0_LAYTOUT, value={"Orientation":"LtRBtT","X":1,"Y":0}, status=0

Parameter 228 type=string, name=TPX3_CHIP1_LAYTOUT, value={"Orientation":"RtLTtB","X":1,"Y":1}, status=0

Parameter 229 type=string, name=TPX3_CHIP2_LAYTOUT, value={"Orientation":"RtLTtB","X":0,"Y":1}, status=0

Parameter 230 type=string, name=TPX3_CHIP3_LAYTOUT, value={"Orientation":"LtRBtT","X":0,"Y":0}, status=0

Parameter 231 type=string, name=BPC_FILE_PATH, value=, status=0

Parameter 232 type=asynInt32, name=BPC_FILE_PATH_EXISTS, value is undefined

Parameter 233 type=string, name=BPC_FILE_NAME, value=, status=0

Parameter 234 type=string, name=DACS_FILE_PATH, value=, status=0

Parameter 235 type=asynInt32, name=DACS_FILE_PATH_EXISTS, value is undefined

Parameter 236 type=string, name=DACS_FILE_NAME, value=, status=0

Parameter 237 type=string, name=WRITE_FILE_MESSAGE, value=Successfully uploaded destination configuration.

, status=0

Parameter 238 type=asynInt32, name=WRITE_BPC_FILE, value is undefined

Parameter 239 type=asynInt32, name=WRITE_DACS_FILE, value is undefined

Parameter 240 type=asynInt32, name=TPX3_WRITE_DATA, value=1, status=0

Parameter 241 type=asynInt32, name=TPX3_WRITE_RAW, value=1, status=0

Parameter 242 type=asynInt32, name=TPX3_WRITE_IMG, value=1, status=0

Parameter 243 type=asynInt32, name=TPX3_WRITE_PRVIMG, value=1, status=0

Parameter 244 type=asynInt32, name=TPX3_WRITE_PRVIMG1, value=1, status=0

Parameter 245 type=asynInt32, name=TPX3_WRITE_PRVHST, value=0, status=0

Parameter 246 type=string, name=TPX3_RAW_BASE, value=/media/nvme/raw/, status=0

Parameter 247 type=string, name=TPX3_RAW_FILEPAT, value=raw%Hms_, status=0

Parameter 248 type=asynInt32, name=TPX3_RAW_SPLITSTG, value=0, status=0

Parameter 249 type=asynInt32, name=TPX3_RAW_QUEUESIZE, value=16384, status=0

Parameter 250 type=asynInt32, name=RAW_FILE_PATH_EXISTS, value=1, status=0

Parameter 251 type=string, name=TPX3_IMG_IMGBASE, value=/media/nvme/img/, status=0

Parameter 252 type=string, name=TPX3_IMG_IMGPAT, value=f%Hms_, status=0

Parameter 253 type=asynInt32, name=TPX3_IMG_IMGFORMAT, value=0, status=0

Parameter 254 type=asynInt32, name=TPX3_IMG_IMGMODE, value=1, status=0

Parameter 255 type=string, name=TPX3_IMG_IMGTHS, value is undefined

Parameter 256 type=asynInt32, name=TPX3_IMG_INTSIZE, value=1, status=0

Parameter 257 type=asynInt32, name=TPX3_IMG_INTMODE, value is undefined

Parameter 258 type=asynInt32, name=TPX3_IMG_STPONDSK, value=1, status=0

Parameter 259 type=asynInt32, name=TPX3_IMG_QUEUESIZE, value=1024, status=0

Parameter 260 type=asynInt32, name=IMG_FILE_PATH_EXISTS, value=1, status=0

Parameter 261 type=asynFloat64, name=TPX3_PRV_PERIOD, value=0.2, status=0

Parameter 262 type=asynInt32, name=TPX3_PRV_SAMPLMODE, value=0, status=0

Parameter 263 type=string, name=TPX3_PRV_IMGBASE, value=/media/nvme/prv/, status=0

Parameter 264 type=string, name=TPX3_PRV_IMGPAT, value=f%Hms_, status=0

Parameter 265 type=asynInt32, name=TPX3_PRV_IMGFORMAT, value=2, status=0

Parameter 266 type=asynInt32, name=TPX3_PRV_IMGMODE, value=1, status=0

Parameter 267 type=string, name=TPX3_PRV_IMGTHS, value is undefined

Parameter 268 type=asynInt32, name=TPX3_PRV_INTSIZE, value=1, status=0

Parameter 269 type=asynInt32, name=TPX3_PRV_INTMODE, value=1, status=0

Parameter 270 type=asynInt32, name=TPX3_PRV_STPONDSK, value=0, status=0

Parameter 271 type=asynInt32, name=TPX3_PRV_QUEUESIZE, value=16, status=0

Parameter 272 type=asynInt32, name=PRV_IMG_FILE_PATH_EXISTS, value=1, status=0

Parameter 273 type=string, name=TPX3_PRV_IMG1BASE, value=http://localhost, status=0

Parameter 274 type=asynInt32, name=TPX3_PRV_IMG1FORMAT, value=0, status=0

Parameter 275 type=asynInt32, name=TPX3_PRV_IMG1MODE, value=1, status=0

Parameter 276 type=string, name=TPX3_PRV_IMG1THS, value is undefined

Parameter 277 type=asynInt32, name=TPX3_PRV_IMG1INTSIZE, value=1, status=0

Parameter 278 type=asynInt32, name=TPX3_PRV_IMG1INTMODE, value=1, status=0

Parameter 279 type=asynInt32, name=TPX3_PRV_IMG1STPONDSK, value=0, status=0

Parameter 280 type=asynInt32, name=TPX3_PRV_IMG1QUEUESIZE, value=16, status=0

Parameter 281 type=string, name=TPX3_PRV_HSTBASE, value=/media/nvme/hst/, status=0

Parameter 282 type=string, name=TPX3_PRV_HSTPAT, value=f%Hms_, status=0

Parameter 283 type=asynInt32, name=TPX3_PRV_HSTFORMAT, value=4, status=0

Parameter 284 type=asynInt32, name=TPX3_PRV_HSTMODE, value=1, status=0

Parameter 285 type=string, name=TPX3_PRV_HSTTHS, value is undefined

Parameter 286 type=asynInt32, name=TPX3_PRV_HSTINTSIZE, value=1, status=0

Parameter 287 type=asynInt32, name=TPX3_PRV_HSTINTMODE, value=1, status=0

Parameter 288 type=asynInt32, name=TPX3_PRV_HSTSTPONDSK, value=0, status=0

Parameter 289 type=asynInt32, name=TPX3_PRV_HSTQUEUESIZE, value=16, status=0

Parameter 290 type=asynInt32, name=PRV_HST_FILE_PATH_EXISTS, value=1, status=0

Parameter 291 type=asynInt32, name=TPX3_PEL_RATE, value=67582870, status=0

Parameter 292 type=asynInt32, name=TPX3_TDC_RATE, value=0, status=0

Parameter 293 type=asynInt64, name=TPX3_START_TIME, value=1661466046253, status=0

Parameter 294 type=asynFloat64, name=TPX3_ELAPSED_TIME, value=3.018, status=0

Parameter 295 type=asynFloat64, name=TPX3_TIME_LEFT, value=0.8, status=0

Parameter 296 type=asynInt32, name=TPX3_FRAME_COUNT, value=6, status=0

Parameter 297 type=asynInt32, name=TPX3_DROPPED_FRAMES, value=4, status=0

Parameter 298 type=string, name=TPX3_MSMT_STATUS, value="DA_IDLE", status=0

 

TPX3: pArrays[0] report

 

NDArray  Array address=0x7f036c083530:

  ndims=2 dims=[512 512 ]

  dataType=3, dataSize=524288, pData=0x7f036c083760

  uniqueId=6, timeStamp=1030379687.975780, epicsTS.secPastEpoch=1030379688, epicsTS.nsec=194276556

  referenceCount=5

  number of attributes=1

epics>

 

 


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Friday, August 26, 2022 8:51 AM
To: Torsten Bögershausen <Torsten.Bogershausen at ess.eu>; Gofron, Kazimierz <kgofron at bnl.gov>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: setInteger64Param

 

>>I wonder if "ai" record is correct for asyInt64.

> Of course not ;-)

 

Actually the ai record works with asynInt64, and is documented here:

 

which says this:

  • aiRecord

A 64-bit integer is read from the driver and converted to a 64-bit float. The 64-bit float can exactly represent integers up to 52 bits. The value is read into the .VAL field, not the .RVAL field. Linear conversion is limited to .EOFF and .ESLO. Each time the record is processed a new value is read. SCAN "I/O Intr" is supported.

 

Even if it does not do what Kaz wants because of the limited number of bits, it should not giving a 0 value.

 

Perhaps this problem is this line:

 

setInteger64Param(ADTimePixStartTime,       1661466046253);

 

Should that be:

setInteger64Param(ADTimePixStartTime,       1661466046253LL);

 

i.e. explicitly tell the compiler that is a long long constant.

 

If that does not work then please send the output of

 

asynReport 1 driver_name

 

That will show the values of all parameters in the parameter library, and we can see if it has the correct value there.

 

Mark

 

 


From: Torsten Bögershausen <Torsten.Bogershausen at ess.eu>
Sent: Friday, August 26, 2022 7:39 AM
To: Gofron, Kazimierz <kgofron at bnl.gov>; Mark Rivers <rivers at cars.uchicago.edu>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: setInteger64Param

 

 

Hej Kaz

>>I wonder if "ai" record is correct for asyInt64.

Of course not ;-)

 

Please try

record(int64in, "$(P)$(R)StartTime_RBV"){

  field(DTYP, "asynInt64")

  field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME")

  field(SCAN, "I/O Intr")

}

/Torsten

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "Gofron, Kazimierz via Tech-talk" <tech-talk at aps.anl.gov>
Reply-To: "Gofron, Kazimierz" <kgofron at bnl.gov>
Date: Friday, 26 August 2022 at 14:18
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Subject: Re: setInteger64Param

 

Hi Mark,

 

Sorry, I copied a wrong record to the previous email.

 

The correct record is

 

record(ai, "$(P)$(R)StartTime_RBV"){

  field(DTYP, "asynInt64")

  field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_START_TIME")

  field(SCAN, "I/O Intr")

}

----------

setInteger64Param(ADTimePixStartTime,       1661466046253);

createParam(ADTimePixStartTimeString,       asynParamInt64,     &ADTimePixStartTime);

 

The callParamCallbacks(); was there. I added additional one just after the setInteger64Param()

 

I wonder if "ai" record is correct for asyInt64.

 

Kaz


From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Thursday, August 25, 2022 11:56 PM
To: Gofron, Kazimierz <kgofron at bnl.gov>
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: setInteger64Param

 

I just noticed that you created the parameter with Type asynInt64 but your record has DTYP asynFloat64. That is not correct, and should have produced an error message after iocInit. 

 

You should either use an ai record with DTYP asynInt64 or an int64In record.

 

Mark

 

Sent from my iPhone

 

On Aug 25, 2022, at 6:42 PM, Gofron, Kazimierz via Tech-talk <tech-talk at aps.anl.gov> wrote:

Hi all,

 

I am writing an areaDetector driver that reads integer time in multiples of fractions of ns. 

 

ADCore: R3-11

asyn:    R4-22

OS:         ubuntu 20.04LTE

===============

 

record(ai, "$(P)$(R)ElapsedTime_RBV"){

  field(DTYP, "asynFloat64")

  field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TPX3_ELAPSED_TIME")

  field(SCAN, "I/O Intr")

}

 

In the driver the value is set using (hard coded value here):

setInteger64Param(ADTimePixStartTime,       1661466046253);

 

However, the PV value does not change from 0.

------------

PV is created:

createParam(ADTimePixStartTimeString,      asynParamInt64,     &ADTimePixStartTime);    

 

==========

 

The caput changes the value of PV:

 

kgofron@myHP$ caput TPX3-TEST:cam1:StartTime_RBV 1661466046253

Old : TPX3-TEST:cam1:StartTime_RBV   0

New : TPX3-TEST:cam1:StartTime_RBV   1.66147e+12

=================

 

Any suggestions would be much appreciated.

 

Kazimierz

 

Replies:
RE: setInteger64Param Mark Rivers via Tech-talk
References:
setInteger64Param Gofron, Kazimierz via Tech-talk
Re: setInteger64Param Mark Rivers via Tech-talk
Re: setInteger64Param Gofron, Kazimierz via Tech-talk
Re: setInteger64Param Torsten Bögershausen via Tech-talk
Re: setInteger64Param Mark Rivers via Tech-talk
Re: setInteger64Param Gofron, Kazimierz via Tech-talk
RE: setInteger64Param Mark Rivers via Tech-talk
Re: setInteger64Param Gofron, Kazimierz via Tech-talk
RE: setInteger64Param Mark Rivers via Tech-talk
Re: setInteger64Param Gofron, Kazimierz via Tech-talk
RE: setInteger64Param Mark Rivers via Tech-talk

Navigate by Date:
Prev: RE: setInteger64Param Mark Rivers via Tech-talk
Next: Re: [Ext] RE: [EXTERNAL] Recommended amplifiers/drivers for GALIL motor controllers? Jesse Hopkins via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
Navigate by Thread:
Prev: RE: setInteger64Param Mark Rivers via Tech-talk
Next: RE: setInteger64Param Mark Rivers via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·