From 05e068c7b78e9545bae1b036f68b04c64dfc9a9a Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 11:33:54 -0700 Subject: [PATCH 01/22] Try to run emulator test on workflows --- .github/workflows/cmake-workflow.yml | 13 +- Config/demo.acf | 674 +++++++++++++++++++++++++++ Config/demo.system | 55 +++ Config/test.cfg | 36 ++ 4 files changed, 776 insertions(+), 2 deletions(-) create mode 100644 Config/demo.acf create mode 100644 Config/demo.system create mode 100644 Config/test.cfg diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 0d02c586..66c2f561 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -13,7 +13,7 @@ env: INSTR: generic jobs: - build-archon: + Archon: runs-on: ubuntu-latest steps: @@ -37,7 +37,16 @@ jobs: run: | cd ${{github.workspace}}/build make - + + - name: E2E Tests + run: | + cd ${{github.workspace}} + bin/emulator Config/test.cfg & + bin/camerad Config/test.cfg + telnet localhost 3031 + open + load + ^] # Comment AstroCam out for now # build-astrocam: diff --git a/Config/demo.acf b/Config/demo.acf new file mode 100644 index 00000000..d6ef6136 --- /dev/null +++ b/Config/demo.acf @@ -0,0 +1,674 @@ +[CONFIG] +BIGBUF=0 +FRAMEMODE=1 +LINECOUNT=516 +PIXELCOUNT=64 +RAWENABLE=0 +RAWENDLINE=10 +RAWSAMPLES=25600 +RAWSEL=32 +RAWSTARTLINE=1 +RAWSTARTPIXEL=0 +SAMPLEMODE=0 +SHP1=160 +SHP2=440 +SHD1=450 +SHD2=450 +TAPLINE0="AM29L,1,0" +TAPLINE1="AM27L,1,0" +TAPLINE2="AM31L,1,0" +TAPLINE3="AM33L,1,0" +TAPLINE4="AM25L,1,0" +TAPLINE5="AM35L,1,0" +TAPLINE6="AM36L,1,0" +TAPLINE7="AM34L,1,0" +TAPLINE8="AM21L,1,0" +TAPLINE9="AM22L,1,0" +TAPLINE10="AM24L,1,0" +TAPLINE11="AM32L,1,0" +TAPLINE12="AM30L,1,0" +TAPLINE13="AM23L,1,0" +TAPLINE14="AM26L,1,0" +TAPLINE15="AM28L,1,0" +TAPLINE16="AM41L,1,0" +TAPLINE17="AM46L,1,0" +TAPLINE18="AM54L,1,0" +TAPLINE19="AM52L,1,0" +TAPLINE20="AM48L,1,0" +TAPLINE21="AM44L,1,0" +TAPLINE22="AM40L,1,0" +TAPLINE23="AM50L,1,0" +TAPLINE24="AM49L,1,0" +TAPLINE25="AM43L,1,0" +TAPLINE26="AM45L,1,0" +TAPLINE27="AM39L,1,0" +TAPLINE28="AM51L,1,0" +TAPLINE29="AM47L,1,0" +TAPLINE30="AM42L,1,0" +TAPLINE31="AM53L,1,0" +TAPLINES=32 +TRIGOUTFORCE=0 +TRIGOUTINVERT=0 +TRIGOUTLEVEL=0 +TRIGOUTPOWER=1 +PARAMETER0="Start=0" +PARAMETER1="Expose=0" +PARAMETER2="exptime=0" +PARAMETER3="mode_UTR=1" +PARAMETER4="mode_MCDS=0" +PARAMETER5="mode_RXRV=0" +PARAMETER6="mode_RXV=0" +PARAMETER7="MCDS_sample=1" +PARAMETER8="UTR_sample=1" +PARAMETER9="SkippedRowsQuad=0" +PARAMETER10="nRowsQuad=129" +PARAMETER11="SkippedColumnsQuad=0" +PARAMETER12="nPixelsPair=32" +PARAMETER13="longexposure=0" +PARAMETER14="abort=0" +PARAMETER15="prv_reset_flag=0" +PARAMETER16="prv_idle=0" +PARAMETER17="rollingreset=0" +PARAMETERS=18 +LINE0=PowerUp: +LINE1="STATE000; CALL ClocksToZero" +LINE2="STATE000; if Start CALL SetupAladdin" +LINE3="STATE000; GOTO PowerUp" +LINE4=SetupAladdin: +LINE5="STATE000; CALL GlobalReset" +LINE6="STATE000; CALL RollingResetPulse" +LINE7="STATE000; GOTO WaitForExpose" +LINE8=WaitForExpose: +LINE9="STATE000; abort--" +LINE10="STATE000; if Expose CALL AcqSequence" +LINE11="STATE000; CALL Reset_PRV_RESET_FLAG(1000)" +LINE12="STATE000; prv_idle++" +LINE13="STATE000; CALL GlobalReset" +LINE14="STATE000; CALL MilliSec(500)" +LINE15="STATE000; prv_idle--" +LINE16="STATE000; prv_reset_flag--" +LINE17="STATE000; GOTO WaitForExpose" +LINE18=AcqSequence: +LINE19="STATE000; if mode_UTR GOTO SequenceUTR" +LINE20="STATE000; if mode_MCDS GOTO SequenceMCDS" +LINE21="STATE000; if mode_RXRV GOTO SequenceRXRV" +LINE22="STATE000; if mode_RXV GOTO SequenceRXV" +LINE23="STATE000; GOTO WaitForExpose" +LINE24=SequenceUTR: +LINE25="STATE000; CALL GlobalReset" +LINE26="STATE000; CALL MilliSec(1)" +LINE27="STATE000; CALL Increment_ExposeCounter(UTR_sample)" +LINE28="STATE000; CALL GrabFrameUTR(UTR_sample)" +LINE29="STATE000; Expose--" +LINE30="STATE000; CALL Reset_PRV_RESET_FLAG(1000)" +LINE31="STATE000; CALL GlobalReset" +LINE32="STATE000; GOTO WaitForExpose" +LINE33=GrabFrameUTR: +LINE34="STATE000; CALL GrabFrame" +LINE35="STATE000; Expose--" +LINE36="STATE000; if Expose CALL MilliSec(exptime)" +LINE37="STATE000; Expose++" +LINE38="STATE000; RETURN GrabFrameUTR" +LINE39=SequenceMCDS: +LINE40="STATE000; CALL GlobalReset" +LINE41="STATE000; CALL MilliSec(1)" +LINE42="STATE000; CALL Increment_ExposeCounter(MCDS_sample)" +LINE43="STATE000; CALL GrabFrame(MCDS_sample)" +LINE44="STATE000; CALL ClocksToZero" +LINE45="STATE000; CALL MilliSec(exptime)" +LINE46="STATE000; CALL Increment_ExposeCounter(MCDS_sample)" +LINE47="STATE000; CALL GrabFrame(MCDS_sample)" +LINE48="STATE000; Expose--" +LINE49="STATE000; CALL Reset_PRV_RESET_FLAG(1000)" +LINE50="STATE000; CALL GlobalReset" +LINE51="STATE000; GOTO WaitForExpose" +LINE52=SequenceRXRV: +LINE53="STATE000; CALL Increment_ExposeCounter(1)" +LINE54="STATE000; CALL GrabFrameRXR(1)" +LINE55="STATE000; Expose--" +LINE56="STATE000; GOTO WaitForExpose" +LINE57="STATE000; RETURN SequenceRXRV" +LINE58=SequenceRXV: +LINE59="STATE000; CALL Increment_ExposeCounter(1)" +LINE60="STATE000; CALL GrabFrameRX(1)" +LINE61="STATE000; Expose--" +LINE62="STATE000; GOTO WaitForExpose" +LINE63="STATE000; RETURN SequenceRXV" +LINE64=GrabFrame: +LINE65="STATE000; if !prv_idle CALL Decrement_ExposeCounter" +LINE66="STATE000; if !prv_idle CALL wFrame" +LINE67="STATE000; CALL SetupFrameStart" +LINE68="STATE000; CALL FrameStartPulse" +LINE69="STATE000; CALL SkipRow(SkippedRowsQuad)" +LINE70="STATE000; CALL ReadRowQuad(nRowsQuad)" +LINE71="STATE000; prv_reset_flag++" +LINE72="STATE000; RETURN GrabFrame" +LINE73=GrabFrameRX: +LINE74="STATE000; if !prv_idle CALL Decrement_ExposeCounter" +LINE75="STATE000; if !prv_idle CALL wFrame" +LINE76="STATE000; CALL SetupFrameStart" +LINE77="STATE000; CALL FrameStartPulse" +LINE78="STATE000; CALL SkipRow(SkippedRowsQuad)" +LINE79="STATE000; CALL ReadRowQuadRX(nRowsQuad)" +LINE80="STATE000; Expose--" +LINE81="STATE000; If Expose CALL MilliSec(exptime)" +LINE82="STATE000; Expose++" +LINE83="STATE000; RETURN GrabFrameRX" +LINE84=GrabFrameRXR: +LINE85="STATE000; if !prv_idle CALL Decrement_ExposeCounter" +LINE86="STATE000; if !prv_idle CALL wFrame" +LINE87="STATE000; CALL SetupFrameStart" +LINE88="STATE000; CALL FrameStartPulse" +LINE89="STATE000; CALL SkipRow(SkippedRowsQuad)" +LINE90="STATE000; CALL ReadRowQuadRXR(nRowsQuad)" +LINE91="STATE000; Expose--" +LINE92="STATE000; CALL MilliSec(exptime)" +LINE93="STATE000; Expose++" +LINE94="STATE000; RETURN GrabFrameRXR" +LINE95=ReadRowQuad: +LINE96="STATE000; CALL ConfigureS2" +LINE97="STATE000; CALL ReadRowPair" +LINE98="STATE000; CALL ConfigureS1" +LINE99="STATE000; CALL ReadRowPair" +LINE100="STATE000; RETURN ReadRowQuad" +LINE101=ReadRowQuadRX: +LINE102="STATE000; CALL ConfigureS2" +LINE103="STATE000; CALL ReadRowPair" +LINE104="STATE000; CALL RollingResetPulse" +LINE105="STATE000; CALL ConfigureS1" +LINE106="STATE000; CALL ReadRowPair" +LINE107="STATE000; CALL RollingResetPulse" +LINE108="STATE000; RETURN ReadRowQuadRX" +LINE109=ReadRowQuadRXR: +LINE110="STATE000; CALL ConfigureS2" +LINE111="STATE000; CALL ReadRowPair" +LINE112="STATE000; CALL RollingResetPulse" +LINE113="STATE000; CALL ReadRowPair" +LINE114="STATE000; CALL ConfigureS1" +LINE115="STATE000; CALL ReadRowPair" +LINE116="STATE000; CALL RollingResetPulse" +LINE117="STATE000; CALL ReadRowPair" +LINE118="STATE000; RETURN ReadRowQuadRXR" +LINE119=ReadRowPair: +LINE120="STATE000; if !prv_idle CALL wLine" +LINE121="STATE000; CALL ActivateOddRow" +LINE122="STATE000; CALL InitRowRegister" +LINE123="STATE000; CALL SkipColumn(SkippedColumnsQuad)" +LINE124="STATE000; CALL PresetFirstPixel" +LINE125="STATE000; CALL ReadPixelPair(nPixelsPair)" +LINE126="STATE000; if !prv_idle CALL wLine" +LINE127="STATE000; CALL ActivateEvenRow" +LINE128="STATE000; CALL InitRowRegister" +LINE129="STATE000; CALL SkipColumn(SkippedColumnsQuad)" +LINE130="STATE000; CALL PresetFirstPixel" +LINE131="STATE000; CALL ReadPixelPair(nPixelsPair)" +LINE132="STATE000; RETURN ReadRowPair" +LINE133=ReadPixelPair: +LINE134="STATE000; if !prv_idle CALL wPixel" +LINE135="STATE000; CALL ReadOddPixel" +LINE136="STATE000; if !prv_idle CALL wPixel" +LINE137="STATE000; CALL ReadEvenPixel" +LINE138="STATE000; RETURN ReadPixelPair" +LINE139=ResetArrayRR: +LINE140="STATE000; CALL SetupFrameStart" +LINE141="STATE000; CALL FrameStartPulse" +LINE142="STATE000; CALL ResetRowQuad(129)" +LINE143="STATE000; RETURN ResetArrayRR" +LINE144=ResetRowQuad: +LINE145="STATE000; CALL ConfigureS2" +LINE146="STATE000; CALL RollingResetPulse" +LINE147="STATE000; CALL ConfigureS1" +LINE148="STATE000; CALL RollingResetPulse" +LINE149="STATE000; RETURN ResetRowQuad" +LINE150=FlushLag: +LINE151="STATE000; CALL FlushArrayRR(1)" +LINE152="STATE000; RETURN FlushLag" +LINE153=FlushArrayRR: +LINE154="STATE000; CALL SetupFrameStart" +LINE155="STATE000; CALL FrameStartPulse" +LINE156="STATE000; CALL FlushRowQuad(129)" +LINE157="STATE000; RETURN FlushArrayRR" +LINE158=FlushRowQuad: +LINE159="STATE000; CALL ConfigureS2" +LINE160="STATE000; CALL RollingResetPulse" +LINE161="STATE000; CALL FlushRowPair" +LINE162="STATE000; CALL ConfigureS1" +LINE163="STATE000; CALL RollingResetPulse" +LINE164="STATE000; CALL FlushRowPair" +LINE165="STATE000; RETURN FlushRowQuad" +LINE166=FlushRowPair: +LINE167="STATE000; CALL ActivateOddRow" +LINE168="STATE000; CALL InitRowRegister" +LINE169="STATE000; CALL PresetFirstPixel" +LINE170="STATE000; CALL FlushPixelPair(32)" +LINE171="STATE000; CALL ActivateEvenRow" +LINE172="STATE000; CALL InitRowRegister" +LINE173="STATE000; CALL PresetFirstPixel" +LINE174="STATE000; CALL FlushPixelPair(32)" +LINE175="STATE000; RETURN FlushRowPair" +LINE176=FlushPixelPair: +LINE177="STATE000; CALL FlushOddPixel" +LINE178="STATE000; CALL FlushEvenPixel" +LINE179="STATE000; RETURN FlushPixelPair" +LINE180=MilliSec: +LINE181="STATE000; if abort GOTO AbortSequence" +LINE182="STATE000; CALL wDelay1ms" +LINE183="STATE000; RETURN MilliSec" +LINE184=Sec: +LINE185="STATE000; CALL MilliSec(1000)" +LINE186="STATE000; RETURN Sec" +LINE187=Reset_PRV_RESET_FLAG: +LINE188="STATE000; prv_reset_flag--" +LINE189="STATE000; RETURN Reset_PRV_RESET_FLAG" +LINE190=Increment_ExposeCounter: +LINE191="STATE000; Expose++" +LINE192="STATE000; RETURN Increment_ExposeCounter" +LINE193=Decrement_ExposeCounter: +LINE194="STATE000; Expose--" +LINE195="STATE000; RETURN Decrement_ExposeCounter" +LINE196=AbortSequence: +LINE197="STATE000; CALL Decrement_ExposeCounter(1048000)" +LINE198="STATE000; GOTO WaitForExpose" +LINE199=RawPixel: +LINE200="STATE000; STATE000(998)" +LINE201="STATE000; RETURN RawPixel" +LINE202=wDelay1us: +LINE203="STATE000; STATE000(98)" +LINE204="STATE000; RETURN wDelay1us" +LINE205=wDelay10us: +LINE206="STATE000; STATE000(998)" +LINE207="STATE000; RETURN wDelay10us" +LINE208=wDelay10ns: +LINE209="STATE000; RETURN wDelay10ns" +LINE210=wDelay1ms: +LINE211="STATE000; STATE000(99998)" +LINE212="STATE000; RETURN wDelay1ms" +LINE213=SetupFrameStart: +LINE214="STATE001; STATE000(98)" +LINE215="STATE000; RETURN SetupFrameStart" +LINE216=FrameStartPulse: +LINE217="STATE002; STATE000(49)" +LINE218="STATE003; STATE000(99)" +LINE219="STATE004; STATE000(99)" +LINE220="STATE005; STATE000(49)" +LINE221="STATE006; STATE000(98)" +LINE222="STATE000; RETURN FrameStartPulse" +LINE223=ConfigureS2: +LINE224="STATE007; STATE000(99)" +LINE225="STATE008; STATE000(48)" +LINE226="STATE000; RETURN ConfigureS2" +LINE227=ConfigureS1: +LINE228="STATE009; STATE000(99)" +LINE229="STATE005; STATE000(48)" +LINE230="STATE000; RETURN ConfigureS1" +LINE231=ActivateOddRow: +LINE232="STATE010; STATE000(48)" +LINE233="STATE000; RETURN ActivateOddRow" +LINE234=ActivateEvenRow: +LINE235="STATE011; STATE000(48)" +LINE236="STATE000; RETURN ActivateEvenRow" +LINE237=InitRowRegister: +LINE238="STATE012; STATE000(49)" +LINE239="STATE013; STATE000(49)" +LINE240="STATE014; STATE000(49)" +LINE241="STATE015; STATE000(48)" +LINE242="STATE000; RETURN InitRowRegister" +LINE243=PresetFirstPixel: +LINE244="STATE016; STATE000(48)" +LINE245="STATE000; RETURN PresetFirstPixel" +LINE246=ReadOddPixel: +LINE247="STATE016; STATE000(449)" +LINE248="STATE017; STATE000(48)" +LINE249="STATE000; RETURN ReadOddPixel" +LINE250=ReadEvenPixel: +LINE251="STATE014; STATE000(449)" +LINE252="STATE015; STATE000(48)" +LINE253="STATE000; RETURN ReadEvenPixel" +LINE254=FlushOddPixel: +LINE255="STATE016; STATE000(449)" +LINE256="STATE017; STATE000(48)" +LINE257="STATE000; RETURN FlushOddPixel" +LINE258=FlushEvenPixel: +LINE259="STATE014; STATE000(449)" +LINE260="STATE015; STATE000(48)" +LINE261="STATE000; RETURN FlushEvenPixel" +LINE262=SkipRow: +LINE263="STATE008; STATE000(49)" +LINE264="STATE018; STATE000(99)" +LINE265="STATE005; STATE000(49)" +LINE266="STATE006; STATE000(98)" +LINE267="STATE000; RETURN SkipRow" +LINE268=SkipColumn: +LINE269="STATE016; STATE000(49)" +LINE270="STATE017; STATE000(49)" +LINE271="STATE014; STATE000(49)" +LINE272="STATE015; STATE000(48)" +LINE273="STATE000; RETURN SkipColumn" +LINE274=RollingResetPulse: +LINE275="STATE019; STATE000(99)" +LINE276="STATE020; STATE000(99)" +LINE277="STATE021; STATE000(99)" +LINE278="STATE022; STATE000(1998)" +LINE279="STATE000; RETURN RollingResetPulse" +LINE280=GlobalReset: +LINE281="STATE023; STATE000(4999)" +LINE282="STATE024; STATE000(4998)" +LINE283="STATE000; RETURN GlobalReset" +LINE284=RollingResetPulseBlank: +LINE285="STATE019; STATE000(2499)" +LINE286="STATE022; STATE000(2098)" +LINE287="STATE000; RETURN RollingResetPulseBlank" +LINE288=RowOn: +LINE289="STATE022; RETURN RowOn" +LINE290=RowOff: +LINE291="STATE019; RETURN RowOff" +LINE292=RowDeselect: +LINE293="STATE004; RETURN RowDeselect" +LINE294=RowSelect: +LINE295="STATE025; RETURN RowSelect" +LINE296=wVRstG: +LINE297="STATE023; RETURN wVRstG" +LINE298=wbVRstG: +LINE299="STATE024; RETURN wbVRstG" +LINE300=wPhiF1: +LINE301="STATE014; STATE000(448)" +LINE302="STATE000; RETURN wPhiF1" +LINE303=wPhiF2: +LINE304="STATE016; STATE000(448)" +LINE305="STATE000; RETURN wPhiF2" +LINE306=ClocksToZero: +LINE307="STATE026; RETURN ClocksToZero" +LINE308=ClocksToActive: +LINE309="STATE027; RETURN ClocksToActive" +LINE310=wFrame: +LINE311="STATE028; RETURN wFrame" +LINE312=wLine: +LINE313="STATE029; RETURN wLine" +LINE314=wPixel: +LINE315="STATE030;" +LINE316="STATE031; RETURN wPixel" +LINES=317 +MOD4\ENABLE1=1 +MOD4\FASTSLEWRATE1=500 +MOD4\SLOWSLEWRATE1=100 +MOD4\LABEL1=VRstOn +MOD4\ENABLE2=1 +MOD4\FASTSLEWRATE2=500 +MOD4\SLOWSLEWRATE2=100 +MOD4\LABEL2=PhiDes Q1 +MOD4\ENABLE3=1 +MOD4\FASTSLEWRATE3=500 +MOD4\SLOWSLEWRATE3=100 +MOD4\LABEL3=FSYNC +MOD4\ENABLE4=1 +MOD4\FASTSLEWRATE4=500 +MOD4\SLOWSLEWRATE4=100 +MOD4\LABEL4=Global Reset +MOD4\ENABLE5=1 +MOD4\FASTSLEWRATE5=500 +MOD4\SLOWSLEWRATE5=100 +MOD4\LABEL5=PhiF2 +MOD4\ENABLE6=1 +MOD4\FASTSLEWRATE6=500 +MOD4\SLOWSLEWRATE6=100 +MOD4\LABEL6=Row ON +MOD4\ENABLE7=1 +MOD4\FASTSLEWRATE7=500 +MOD4\SLOWSLEWRATE7=100 +MOD4\LABEL7=PhiF1 +MOD4\ENABLE8=1 +MOD4\FASTSLEWRATE8=500 +MOD4\SLOWSLEWRATE8=100 +MOD4\LABEL8=PhiDes Q4 +MOD4\ENABLE9=1 +MOD4\FASTSLEWRATE9=500 +MOD4\SLOWSLEWRATE9=100 +MOD4\LABEL9=PhiS1 +MOD4\ENABLE10=1 +MOD4\FASTSLEWRATE10=500 +MOD4\SLOWSLEWRATE10=100 +MOD4\LABEL10=PhiEO +MOD4\ENABLE11=1 +MOD4\FASTSLEWRATE11=500 +MOD4\SLOWSLEWRATE11=100 +MOD4\LABEL11=SSYNC +MOD4\ENABLE12=1 +MOD4\FASTSLEWRATE12=500 +MOD4\SLOWSLEWRATE12=100 +MOD4\LABEL12=PhiS2 +MOD9\LVLC_V1=0.0 +MOD9\LVLC_ORDER1=1 +MOD9\LVLC_LABEL1=Test Voltage +MOD9\LVLC_V2=0.0 +MOD9\LVLC_ORDER2=1 +MOD9\LVLC_V3=0.0 +MOD9\LVLC_ORDER3=1 +MOD9\LVLC_V4=-0.5 +MOD9\LVLC_ORDER4=1 +MOD9\LVLC_LABEL4=Pos reg and dec +MOD9\LVLC_V5=-5.8 +MOD9\LVLC_ORDER5=1 +MOD9\LVLC_LABEL5=Neg reg and dec Row +MOD9\LVLC_V6=0.0 +MOD9\LVLC_ORDER6=1 +MOD9\LVLC_V7=-6.1 +MOD9\LVLC_ORDER7=1 +MOD9\LVLC_LABEL7=Neg reg and dec Col +MOD9\LVLC_V8=0.0 +MOD9\LVLC_ORDER8=1 +MOD9\LVLC_V9=-0.5 +MOD9\LVLC_ORDER9=1 +MOD9\LVLC_LABEL9=Video Offset +MOD9\LVLC_V10=5.0 +MOD9\LVLC_ORDER10=1 +MOD9\LVLC_LABEL10=Preamp Enable +MOD9\LVLC_V11=0.0 +MOD9\LVLC_ORDER11=1 +MOD9\LVLC_V12=3.9 +MOD9\LVLC_ORDER12=1 +MOD9\LVLC_LABEL12=Video PullUp +MOD9\LVLC_V13=0.0 +MOD9\LVLC_ORDER13=1 +MOD9\LVLC_LABEL13=Row Not selected +MOD9\LVLC_V14=-1.5 +MOD9\LVLC_ORDER14=1 +MOD9\LVLC_LABEL14=PMOS SF Drain +MOD9\LVLC_V15=-3.3 +MOD9\LVLC_ORDER15=1 +MOD9\LVLC_LABEL15=Clamp gate +MOD9\LVLC_V16=-4.0 +MOD9\LVLC_ORDER16=1 +MOD9\LVLC_LABEL16=Drain Clamp Volt +MOD9\LVLC_V17=0.0 +MOD9\LVLC_ORDER17=1 +MOD9\LVLC_LABEL17=OLD row-enable bias +MOD9\LVLC_V18=-3.8 +MOD9\LVLC_ORDER18=1 +MOD9\LVLC_LABEL18=Det Common Bias +MOD9\LVLC_V19=-4.0 +MOD9\LVLC_ORDER19=1 +MOD9\LVLC_LABEL19=Unit Cell SFD Drain +MOD9\LVLC_V20=-2.8 +MOD9\LVLC_ORDER20=1 +MOD9\LVLC_LABEL20=Current Source Bias +MOD9\LVLC_V21=0.0 +MOD9\LVLC_ORDER21=1 +MOD9\LVLC_LABEL21=OLD - Global Reset +MOD9\LVLC_V22=0.0 +MOD9\LVLC_ORDER22=1 +MOD9\LVLC_LABEL22=OLD - Row Reset Bias +MOD9\LVLC_V23=0.0 +MOD9\LVLC_ORDER23=1 +MOD9\LVLC_V24=0.0 +MOD9\LVLC_ORDER24=1 +MOD9\LVHC_ENABLE1=1 +MOD9\LVHC_V1=0.0 +MOD9\LVHC_IL1=10 +MOD9\LVHC_ORDER1=1 +MOD9\LVHC_ENABLE2=1 +MOD9\LVHC_V2=0.0 +MOD9\LVHC_IL2=50 +MOD9\LVHC_ORDER2=1 +MOD9\LVHC_ENABLE3=1 +MOD9\LVHC_V3=0.0 +MOD9\LVHC_IL3=10 +MOD9\LVHC_ORDER3=1 +MOD9\LVHC_ENABLE4=1 +MOD9\LVHC_V4=0.0 +MOD9\LVHC_IL4=100 +MOD9\LVHC_ORDER4=1 +MOD9\LVHC_ENABLE5=1 +MOD9\LVHC_V5=0.0 +MOD9\LVHC_IL5=100 +MOD9\LVHC_ORDER5=0 +MOD9\LVHC_ENABLE6=1 +MOD9\LVHC_V6=0.0 +MOD9\LVHC_IL6=10 +MOD9\LVHC_ORDER6=1 +STATE0\NAME=STATE000 +STATE0\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE0\CONTROL="0,3F" +STATE0\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE1\NAME=STATE001 +STATE1\MOD4=",1,1,-0.6,1,0,-0.6,1,0,,1,1,-0.6,1,0,-5.8,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0,,1,1,-0.6,1,0" +STATE1\CONTROL="0,3F" +STATE1\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE2\NAME=STATE002 +STATE2\MOD4=",1,1,-5.8,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,-5.8,1,0,-0.6,1,0,,1,1,-5.8,1,0,,1,1" +STATE2\CONTROL="0,3F" +STATE2\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE3\NAME=STATE003 +STATE3\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1" +STATE3\CONTROL="0,3F" +STATE3\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE4\NAME=STATE004 +STATE4\MOD4=",1,1,-0.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,,1,1,,1,1,,1,1" +STATE4\CONTROL="0,3F" +STATE4\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE5\NAME=STATE005 +STATE5\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-5.8,1,0,,1,1,,1,1,,1,1" +STATE5\CONTROL="0,3F" +STATE5\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE6\NAME=STATE006 +STATE6\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,,1,1,,1,1" +STATE6\CONTROL="0,3F" +STATE6\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE7\NAME=STATE007 +STATE7\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,-0.6,1,0,,1,1,,1,1" +STATE7\CONTROL="0,3F" +STATE7\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE8\NAME=STATE008 +STATE8\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-5.8,1,0" +STATE8\CONTROL="0,3F" +STATE8\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE9\NAME=STATE009 +STATE9\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,-0.6,1,0" +STATE9\CONTROL="0,3F" +STATE9\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE10\NAME=STATE010 +STATE10\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,,1,1" +STATE10\CONTROL="0,3F" +STATE10\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE11\NAME=STATE011 +STATE11\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-5.8,1,0,,1,1,,1,1" +STATE11\CONTROL="0,3F" +STATE11\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE12\NAME=STATE012 +STATE12\MOD4=",1,1,,1,1,-6.2,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE12\CONTROL="0,3F" +STATE12\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE13\NAME=STATE013 +STATE13\MOD4=",1,1,,1,1,-0.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE13\CONTROL="0,3F" +STATE13\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE14\NAME=STATE014 +STATE14\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-6.2,1,0,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE14\CONTROL="0,3F" +STATE14\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE15\NAME=STATE015 +STATE15\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE15\CONTROL="0,3F" +STATE15\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE16\NAME=STATE016 +STATE16\MOD4=",1,1,,1,1,,1,1,,1,1,-6.2,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE16\CONTROL="0,3F" +STATE16\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE17\NAME=STATE017 +STATE17\MOD4=",1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE17\CONTROL="0,3F" +STATE17\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE18\NAME=STATE018 +STATE18\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0" +STATE18\CONTROL="0,3F" +STATE18\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE19\NAME=STATE019 +STATE19\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,-0.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE19\CONTROL="0,3F" +STATE19\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE20\NAME=STATE020 +STATE20\MOD4="-5.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE20\CONTROL="0,3F" +STATE20\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE21\NAME=STATE021 +STATE21\MOD4="-2.3,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE21\CONTROL="0,3F" +STATE21\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE22\NAME=STATE022 +STATE22\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,-5.8,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE22\CONTROL="0,3F" +STATE22\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE23\NAME=STATE023 +STATE23\MOD4=",1,1,,1,1,,1,1,-5.6,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE23\CONTROL="0,3F" +STATE23\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE24\NAME=STATE024 +STATE24\MOD4=",1,1,,1,1,,1,1,-3.9,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE24\CONTROL="0,3F" +STATE24\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE25\NAME=STATE025 +STATE25\MOD4=",1,1,-5.8,1,0,,1,1,,1,1,,1,1,,1,1,,1,1,-5.8,1,0,,1,1,,1,1,,1,1,,1,1" +STATE25\CONTROL="0,3F" +STATE25\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE26\NAME=STATE026 +STATE26\MOD4=",1,1,-0.6,1,0,-0.6,1,0,,1,1,-0.6,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0,-0.6,1,0" +STATE26\CONTROL="0,3F" +STATE26\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE27\NAME=STATE027 +STATE27\MOD4="-2.3,1,0,-5.8,1,0,-6.2,1,0,-3.9,1,0,-6.2,1,0,-5.8,1,0,-6.2,1,0,-5.8,1,0,-5.8,1,0,-5.8,1,0,-5.8,1,0,-5.8,1,0" +STATE27\CONTROL="0,3F" +STATE27\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE28\NAME=STATE028 +STATE28\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE28\CONTROL="2,3D" +STATE28\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE29\NAME=STATE029 +STATE29\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE29\CONTROL="4,3B" +STATE29\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE30\NAME=STATE030 +STATE30\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE30\CONTROL="8,37" +STATE30\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATE31\NAME=STATE031 +STATE31\MOD4=",1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1,,1,1" +STATE31\CONTROL="0,31" +STATE31\MOD9="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0" +STATES=32 +[SYSTEM] +BACKPLANE_ID=0000000000000000 +BACKPLANE_REV=0 +BACKPLANE_TYPE=1 +BACKPLANE_VERSION=0.0.0 +MOD9_ID=0000000000000000 +MOD9_REV=0 +MOD9_VERSION=0.0.0 +MOD9_TYPE=3 +MOD4_ID=0000000000000000 +MOD4_REV=0 +MOD4_VERSION=0.0.0 +MOD4_TYPE=16 +[MODE_DEFAULT] +FITS:REV=2023-12-08T12:29:51/git hash or revision of ACF +ARCH:HORI_AMPS=32 +ARCH:NUM_DETECT=1 +ARCH:VERT_AMPS=1 diff --git a/Config/demo.system b/Config/demo.system new file mode 100644 index 00000000..dc2ef06c --- /dev/null +++ b/Config/demo.system @@ -0,0 +1,55 @@ +[SYSTEM] +BACKPLANE_ID=000000001B5DCF29 +BACKPLANE_REV=7 +BACKPLANE_TYPE=1 +BACKPLANE_VERSION=1.0.1183 +MOD10_ID=0000000000000000 +MOD10_REV=0 +MOD10_TYPE=0 +MOD10_VERSION=0.0.0 +MOD11_ID=0000000000000000 +MOD11_REV=0 +MOD11_TYPE=0 +MOD11_VERSION=0.0.0 +MOD12_ID=0000000000000000 +MOD12_REV=0 +MOD12_TYPE=0 +MOD12_VERSION=0.0.0 +MOD1_ID=0000000000000000 +MOD1_REV=0 +MOD1_TYPE=0 +MOD1_VERSION=0.0.0 +MOD2_ID=0000000000000000 +MOD2_REV=0 +MOD2_TYPE=0 +MOD2_VERSION=0.0.0 +MOD3_ID=0000000000000000 +MOD3_REV=0 +MOD3_TYPE=0 +MOD3_VERSION=0.0.0 +MOD4_ID=0133EF6343BAF18F +MOD4_REV=0 +MOD4_TYPE=16 +MOD4_VERSION=1.0.1175 +MOD5_ID=0000000000000000 +MOD5_REV=0 +MOD5_TYPE=0 +MOD5_VERSION=0.0.0 +MOD6_ID=004814881CD0485C +MOD6_REV=1 +MOD6_TYPE=17 +MOD6_VERSION=1.0.1175 +MOD7_ID=006854881CD0485C +MOD7_REV=1 +MOD7_TYPE=17 +MOD7_VERSION=1.0.1175 +MOD8_ID=0000000000000000 +MOD8_REV=0 +MOD8_TYPE=0 +MOD8_VERSION=0.0.0 +MOD9_ID=013184B06C50EE1D +MOD9_REV=0 +MOD9_TYPE=9 +MOD9_VERSION=1.0.1175 +MOD_PRESENT=168 +POWER_ID=000001786582 diff --git a/Config/test.cfg b/Config/test.cfg new file mode 100644 index 00000000..4a7f0c68 --- /dev/null +++ b/Config/test.cfg @@ -0,0 +1,36 @@ +# configuration file for camera-server +# + +DAEMON=no +IMDIR=/tmp +LOGPATH=/tmp +BASENAME=eraseme +DIRMODE=0077 +TM_ZONE_LOG=local # time zone for log entries only, can be "UTC" or "local" +TM_ZONE=UTC # time zone for everything else, can be "UTC" or "local" +TZ_ENV=PST8PDT,M3.2.0/2,M11.1.0/2 # TZ ENV variable to use when TM_ZONE_* is "local" (follows POSIX standard) + +# +AUTODIR=no +LONGERROR=true +# +NBPORT=3030 # server non-blocking port +BLKPORT=3031 # 3031 or 3041 blocking port +EMULATOR_PORT=3032 +EMULATOR_SYSTEM=/tmp/demo.system +# +# If you have a firewall, you must allow +# multicast address 239.192.13.165, ports 1304-1305. +# +ASYNCGROUP=239.1.1.234 # asynchronous broadcast group +ASYNCPORT=1234 # asynchronous message port + +# the following should not be changed +ARCHON_IP=localhost +ARCHON_PORT=3032 +DEFAULT_FIRMWARE=/tmp/demo.acf +ABORT_PARAM=abort # Archon parameter to trigger an abort +EXPOSE_PARAM=Expose # Archon parameter to trigger exposure +READOUT_TIME=5000 # Timeout waiting for new frame (ms) +WRITE_TAPINFO_TO_FITS=no # Tapinfo (gain, offset) be written to FITS headers {yes|no} + From 227738cc31c407c922180bbfe7347d0a8068959f Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 11:34:35 -0700 Subject: [PATCH 02/22] Add branch to workflow --- .github/workflows/cmake-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 66c2f561..f883328e 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -2,7 +2,7 @@ name: CMake workflow on: push: - branches: [ "master" ] + branches: [ "e2e-tests" ] pull_request: branches: [ "master" ] From fb7ea1098a9a49d80b58c782090ffcbf5badb8e0 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 11:39:56 -0700 Subject: [PATCH 03/22] run camerad in foreground --- .github/workflows/cmake-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index f883328e..0d717c4e 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -42,7 +42,7 @@ jobs: run: | cd ${{github.workspace}} bin/emulator Config/test.cfg & - bin/camerad Config/test.cfg + bin/camerad Config/test.cfg --foreground & telnet localhost 3031 open load From e23010d6f989f418ab23b2a92f2b6ead33f7abde Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 15:40:39 -0700 Subject: [PATCH 04/22] use socksend instead of telnet for tests --- .github/workflows/cmake-workflow.yml | 6 ++---- .gitignore | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 0d717c4e..73bfe3cc 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -43,10 +43,8 @@ jobs: cd ${{github.workspace}} bin/emulator Config/test.cfg & bin/camerad Config/test.cfg --foreground & - telnet localhost 3031 - open - load - ^] + bin/socksend -h localhost -p 3031 open + bin/socksend -h localhost -p 3031 load # Comment AstroCam out for now # build-astrocam: diff --git a/.gitignore b/.gitignore index 485dee64..706fd07f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +.vscode From cd9848a856f5455eb64b2975652d7fc9198ed95b Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 15:48:31 -0700 Subject: [PATCH 05/22] update workflow --- .github/workflows/cmake-workflow.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 73bfe3cc..dbccdecc 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -38,11 +38,19 @@ jobs: cd ${{github.workspace}}/build make - - name: E2E Tests + - name: Start Emulator run: | cd ${{github.workspace}} bin/emulator Config/test.cfg & + + - name: Start camera-daemon + run: | + cd ${{github.workspace}} bin/camerad Config/test.cfg --foreground & + + - name: Run test commands + run: | + cd ${{github.workspace}} bin/socksend -h localhost -p 3031 open bin/socksend -h localhost -p 3031 load From 82a7d7846bdc061e2d27683984da6c6ba66573bd Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 15:51:58 -0700 Subject: [PATCH 06/22] update config paths --- Config/test.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Config/test.cfg b/Config/test.cfg index 4a7f0c68..f77c17f8 100644 --- a/Config/test.cfg +++ b/Config/test.cfg @@ -17,7 +17,7 @@ LONGERROR=true NBPORT=3030 # server non-blocking port BLKPORT=3031 # 3031 or 3041 blocking port EMULATOR_PORT=3032 -EMULATOR_SYSTEM=/tmp/demo.system +EMULATOR_SYSTEM=Config/demo.system # # If you have a firewall, you must allow # multicast address 239.192.13.165, ports 1304-1305. @@ -28,7 +28,7 @@ ASYNCPORT=1234 # asynchronous message port # the following should not be changed ARCHON_IP=localhost ARCHON_PORT=3032 -DEFAULT_FIRMWARE=/tmp/demo.acf +DEFAULT_FIRMWARE=Config/demo.acf ABORT_PARAM=abort # Archon parameter to trigger an abort EXPOSE_PARAM=Expose # Archon parameter to trigger exposure READOUT_TIME=5000 # Timeout waiting for new frame (ms) From 1559a9ffc982a0052d32c9596cf7825e862666e3 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 15:56:27 -0700 Subject: [PATCH 07/22] add more test commands --- .github/workflows/cmake-workflow.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index dbccdecc..a44294e5 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -51,8 +51,16 @@ jobs: - name: Run test commands run: | cd ${{github.workspace}} - bin/socksend -h localhost -p 3031 open - bin/socksend -h localhost -p 3031 load + alias cam="bin/socksend -h localhost -p 3031" + cam open + cam load + cam native poweron + cam exptime 1500 + cam mode DEFAULT + cam imdir /tmp + cam basename eraseme + cam expose + cam printstatus # Comment AstroCam out for now # build-astrocam: From fa59ce63cc379daf7ea9d40deb4b69e95e014d70 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:00:45 -0700 Subject: [PATCH 08/22] fix alias --- .github/workflows/cmake-workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index a44294e5..da7946d0 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -51,6 +51,7 @@ jobs: - name: Run test commands run: | cd ${{github.workspace}} + shopt -s expand_aliases alias cam="bin/socksend -h localhost -p 3031" cam open cam load From 74ba5e335292f52f7e85d146da71aad1004973ca Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:24:19 -0700 Subject: [PATCH 09/22] check test results in workflow --- .github/workflows/cmake-workflow.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index da7946d0..bca783f3 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -53,16 +53,25 @@ jobs: cd ${{github.workspace}} shopt -s expand_aliases alias cam="bin/socksend -h localhost -p 3031" - cam open + val=$(cam open) + if [ $val != "DONE" ]; then return 1 + cam load - cam native poweron + val=$(cam open) + if [ $val != "DONE" ]; then return 1 + cam exptime 1500 - cam mode DEFAULT - cam imdir /tmp - cam basename eraseme + val=$(cam open) + if [ $val != "DONE" ]; then return 1 + cam expose + val=$(cam open) + if [ $val != "DONE" ]; then return 1 + cam printstatus - + val=$(cam open) + if [ $val != "DONE" ]; then return 1 + # Comment AstroCam out for now # build-astrocam: # runs-on: ubuntu-20.04 From 7ae71060ccdc352b9a851a353a145a88a2bc09d6 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:29:30 -0700 Subject: [PATCH 10/22] fix if statements in workflow --- .github/workflows/cmake-workflow.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index bca783f3..8153aa40 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -54,23 +54,19 @@ jobs: shopt -s expand_aliases alias cam="bin/socksend -h localhost -p 3031" val=$(cam open) - if [ $val != "DONE" ]; then return 1 + if [ $val != "DONE" ]; then return 1; else echo $val; fi - cam load - val=$(cam open) - if [ $val != "DONE" ]; then return 1 + val=$(cam load) + if [ $val != "DONE" ]; then return 1; else echo $val; fi - cam exptime 1500 - val=$(cam open) - if [ $val != "DONE" ]; then return 1 + val=$(cam exptime 1500) + if [ $val != "DONE" ]; then return 1; else echo $val; fi - cam expose - val=$(cam open) - if [ $val != "DONE" ]; then return 1 + val=$(cam expose) + if [ $val != "DONE" ]; then return 1; else echo $val; fi - cam printstatus - val=$(cam open) - if [ $val != "DONE" ]; then return 1 + val=$(cam printstatus) + if [ $val != "DONE" ]; then return 1; else echo $val; fi # Comment AstroCam out for now # build-astrocam: From 5f420af5f0db83566d1ebbafad05c860f53c0a02 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:32:34 -0700 Subject: [PATCH 11/22] use exit instead of return to fail workflow task --- .github/workflows/cmake-workflow.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 8153aa40..1a9c34d7 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -54,19 +54,19 @@ jobs: shopt -s expand_aliases alias cam="bin/socksend -h localhost -p 3031" val=$(cam open) - if [ $val != "DONE" ]; then return 1; else echo $val; fi + if [ $val != "DONE" ]; then exit 1; else echo $val; fi val=$(cam load) - if [ $val != "DONE" ]; then return 1; else echo $val; fi + if [ $val != "DONE" ]; then exit 1; else echo $val; fi val=$(cam exptime 1500) - if [ $val != "DONE" ]; then return 1; else echo $val; fi + if [ $val != "DONE" ]; then exit 1; else echo $val; fi val=$(cam expose) - if [ $val != "DONE" ]; then return 1; else echo $val; fi + if [ $val != "DONE" ]; then exit 1; else echo $val; fi val=$(cam printstatus) - if [ $val != "DONE" ]; then return 1; else echo $val; fi + if [ $val != "DONE" ]; then exit 1; else echo $val; fi # Comment AstroCam out for now # build-astrocam: From 6f7e85cf5fb411b26d28adbfcf9cb0b955973266 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:38:12 -0700 Subject: [PATCH 12/22] use bash function --- .github/workflows/cmake-workflow.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 1a9c34d7..feb84cdf 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -53,20 +53,22 @@ jobs: cd ${{github.workspace}} shopt -s expand_aliases alias cam="bin/socksend -h localhost -p 3031" - val=$(cam open) - if [ $val != "DONE" ]; then exit 1; else echo $val; fi + function check { if [ $1 != "DONE" ]; then echo "$1 FAILED"; exit 1; else echo $1; fi } - val=$(cam load) - if [ $val != "DONE" ]; then exit 1; else echo $val; fi + command_open=$(cam open) + check command_open - val=$(cam exptime 1500) - if [ $val != "DONE" ]; then exit 1; else echo $val; fi + command_load=$(cam load) + check command_load - val=$(cam expose) - if [ $val != "DONE" ]; then exit 1; else echo $val; fi + command=$(cam exptime 1500) + check command - val=$(cam printstatus) - if [ $val != "DONE" ]; then exit 1; else echo $val; fi + command=$(cam expose) + check command + + command=$(cam printstatus) + check command # Comment AstroCam out for now # build-astrocam: From b9f21ba266e92c4a811fe5f9546cecc62136e0f1 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:45:33 -0700 Subject: [PATCH 13/22] fix bug --- .github/workflows/cmake-workflow.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index feb84cdf..c5de5e67 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -53,22 +53,22 @@ jobs: cd ${{github.workspace}} shopt -s expand_aliases alias cam="bin/socksend -h localhost -p 3031" - function check { if [ $1 != "DONE" ]; then echo "$1 FAILED"; exit 1; else echo $1; fi } + function check { if [ $1 != "DONE" ]; then echo $1; exit 1; else echo $1; fi } command_open=$(cam open) - check command_open + check $command_open command_load=$(cam load) - check command_load + check $command_load - command=$(cam exptime 1500) - check command + command_exptime=$(cam exptime 1500) + check $command_exptime - command=$(cam expose) - check command + command_expose=$(cam expose) + check $command_expose - command=$(cam printstatus) - check command + command_printstatus=$(cam printstatus) + check $command_printstatus # Comment AstroCam out for now # build-astrocam: From 50764771a8c43b91b80331ed9cd88fd8f793797c Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:47:38 -0700 Subject: [PATCH 14/22] comment out exptime for now --- .github/workflows/cmake-workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index c5de5e67..98aaa47e 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -61,8 +61,8 @@ jobs: command_load=$(cam load) check $command_load - command_exptime=$(cam exptime 1500) - check $command_exptime +# command_exptime=$(cam exptime 1500) +# check $command_exptime command_expose=$(cam expose) check $command_expose From 9c2e46f132ca5004f664512d3e9227e18c1ecbb5 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Tue, 30 Jul 2024 16:50:39 -0700 Subject: [PATCH 15/22] fix indentation --- .github/workflows/cmake-workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 98aaa47e..67bb1f75 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -61,8 +61,8 @@ jobs: command_load=$(cam load) check $command_load -# command_exptime=$(cam exptime 1500) -# check $command_exptime + # command_exptime=$(cam exptime 1500) + # check $command_exptime command_expose=$(cam expose) check $command_expose From df8ea3bfbd692c78cf9d6e98ca1c4065857b711d Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 08:40:44 -0700 Subject: [PATCH 16/22] change trigger branch back to master --- .github/workflows/cmake-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 67bb1f75..32d7232c 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -2,7 +2,7 @@ name: CMake workflow on: push: - branches: [ "e2e-tests" ] + branches: [ "master" ] pull_request: branches: [ "master" ] From 6a74b9e8f9092dab0e2595f18e33e317d1b13112 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 08:43:26 -0700 Subject: [PATCH 17/22] move demo configuration into demo folder --- .github/workflows/cmake-workflow.yml | 4 ++-- Config/{ => demo}/demo.acf | 0 Config/{test.cfg => demo/demo.cfg} | 0 Config/{ => demo}/demo.system | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename Config/{ => demo}/demo.acf (100%) rename Config/{test.cfg => demo/demo.cfg} (100%) rename Config/{ => demo}/demo.system (100%) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 32d7232c..b2521b15 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -41,12 +41,12 @@ jobs: - name: Start Emulator run: | cd ${{github.workspace}} - bin/emulator Config/test.cfg & + bin/emulator Config/demo/demo.cfg & - name: Start camera-daemon run: | cd ${{github.workspace}} - bin/camerad Config/test.cfg --foreground & + bin/camerad Config/demo/demo.cfg --foreground & - name: Run test commands run: | diff --git a/Config/demo.acf b/Config/demo/demo.acf similarity index 100% rename from Config/demo.acf rename to Config/demo/demo.acf diff --git a/Config/test.cfg b/Config/demo/demo.cfg similarity index 100% rename from Config/test.cfg rename to Config/demo/demo.cfg diff --git a/Config/demo.system b/Config/demo/demo.system similarity index 100% rename from Config/demo.system rename to Config/demo/demo.system From da82b52c02e26776a00d19be3b7996a3b6aa5531 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 08:47:12 -0700 Subject: [PATCH 18/22] set default INSTR in cmake file --- .github/workflows/cmake-workflow.yml | 5 ++--- CMakeLists.txt | 6 +++++- Config/demo/demo.cfg | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index b2521b15..c36b8a5c 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -10,7 +10,6 @@ env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) INTERFACE_TYPE_ARCHON: Archon INTERFACE_TYPE_ASTROCAM: AstroCam - INSTR: generic jobs: Archon: @@ -30,7 +29,7 @@ jobs: cd ${{github.workspace}}/build rm -rf * g++ --version - cmake -DINTERFACE_TYPE=${{env.INTERFACE_TYPE_ARCHON}} -DINSTR=${{env.INSTR}} .. + cmake -DINTERFACE_TYPE=${{env.INTERFACE_TYPE_ARCHON}} .. - name: Build Archon # Build your program with the given configuration @@ -101,7 +100,7 @@ jobs: # run: | # cd ${{github.workspace}}/build # rm -rf * - # cmake -DINTERFACE_TYPE=${{env.INTERFACE_TYPE_ASTROCAM}} -DINSTR=${{env.INSTR}} .. + # cmake -DINTERFACE_TYPE=${{env.INTERFACE_TYPE_ASTROCAM}} .. # - name: Build AstroCam # # Build your program with the given configuration diff --git a/CMakeLists.txt b/CMakeLists.txt index d7dbee09..c7a135a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,10 +9,14 @@ # ---------------------------------------------------------------------------- # Interface type can be set via command line ( Archo | AstroCam ) - IF(NOT DEFINED INTERFACE_TYPE) set(INTERFACE_TYPE "Archon") endif() + + +IF(NOT DEFINED INSTR) + set(INSTR "generic") +endif() # ---------------------------------------------------------------------------- # un-comment the following to log verbose debug messages diff --git a/Config/demo/demo.cfg b/Config/demo/demo.cfg index f77c17f8..b818faca 100644 --- a/Config/demo/demo.cfg +++ b/Config/demo/demo.cfg @@ -17,7 +17,7 @@ LONGERROR=true NBPORT=3030 # server non-blocking port BLKPORT=3031 # 3031 or 3041 blocking port EMULATOR_PORT=3032 -EMULATOR_SYSTEM=Config/demo.system +EMULATOR_SYSTEM=Config/demo/demo.system # # If you have a firewall, you must allow # multicast address 239.192.13.165, ports 1304-1305. @@ -28,7 +28,7 @@ ASYNCPORT=1234 # asynchronous message port # the following should not be changed ARCHON_IP=localhost ARCHON_PORT=3032 -DEFAULT_FIRMWARE=Config/demo.acf +DEFAULT_FIRMWARE=Config/demo/demo.acf ABORT_PARAM=abort # Archon parameter to trigger an abort EXPOSE_PARAM=Expose # Archon parameter to trigger exposure READOUT_TIME=5000 # Timeout waiting for new frame (ms) From c96bfc189b20e02cc0c630445a3059b09c561805 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 10:11:22 -0700 Subject: [PATCH 19/22] run workflow one more time to test --- .github/workflows/cmake-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index c36b8a5c..c1862b14 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -2,7 +2,7 @@ name: CMake workflow on: push: - branches: [ "master" ] + branches: [ "e2e-tests" ] pull_request: branches: [ "master" ] From 73a5b379d05c3b288147cd4c4b6bcc2f9e775930 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 10:24:47 -0700 Subject: [PATCH 20/22] fix type --- .github/workflows/cmake-workflow.yml | 4 ++-- CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 22e33967..4f7aa0d5 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -62,8 +62,8 @@ jobs: command_load=$(cam load) check $command_load - # command_exptime=$(cam exptime 1500) - # check $command_exptime + command_exptime=$(cam exptime 1500) + check $command_exptime command_expose=$(cam expose) check $command_expose diff --git a/CMakeLists.txt b/CMakeLists.txt index 7850e39f..b0f196e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ endif() # Instrument can be set via command line generic is the default value IF(NOT DEFINED INSTR) set(INSTR "generic") -enfif() +endif() # Detector type can be set via command line ( Hxrg | Ccd ) if(NOT DEFINED DETECTOR_TYPE) From e0288e4994b3ba30bd217019c2b26358c48aa198 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 10:26:40 -0700 Subject: [PATCH 21/22] comment out exptime test --- .github/workflows/cmake-workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 4f7aa0d5..22e33967 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -62,8 +62,8 @@ jobs: command_load=$(cam load) check $command_load - command_exptime=$(cam exptime 1500) - check $command_exptime + # command_exptime=$(cam exptime 1500) + # check $command_exptime command_expose=$(cam expose) check $command_expose From 9cef98f8aad6934fc333901921786570f6f14945 Mon Sep 17 00:00:00 2001 From: Michael Langmayr Date: Wed, 31 Jul 2024 10:36:22 -0700 Subject: [PATCH 22/22] change branch to master --- .github/workflows/cmake-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-workflow.yml b/.github/workflows/cmake-workflow.yml index 22e33967..d5d7e770 100644 --- a/.github/workflows/cmake-workflow.yml +++ b/.github/workflows/cmake-workflow.yml @@ -2,7 +2,7 @@ name: CMake workflow on: push: - branches: [ "e2e-tests" ] + branches: [ "master" ] pull_request: branches: [ "master" ]