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 2022 2023 2024 2025 | 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 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: RE: SteamDevice 2.8.x build on Windows issue |
From: | Freddie Akeroyd - UKRI STFC via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, '吴煊' <wux at ihep.ac.cn> |
Date: | Tue, 21 Jul 2020 14:03:11 +0000 |
Hi, stream device uses getenv() to read STREAM_PROTOCOL_PATH and environment variables can be stored in CRTL specific lists, so I originally
thought there were different C runtime libraries getting mixed in. The link I posted about removing HOST_OPT was to avoid debug and release Microsoft libraries getting mixed. However Mark’s comment about MinGW is interesting – do you have MinGW installed?
If the visual studio compile has accidentally picked up some mingw includes, or mingw and visual studio built files have got combined, that could likely result in the environment variable lists not matching up (and probably other problems too) Regards, Freddie From: Mark Rivers <rivers at cars.uchicago.edu>
I just tested with base 7.0.4, stream 2.8.14, Visual Studio 2017, Windows 10.
It works OK, I do not get the error about STREAM_PROTOCOL_PATH being undefined.
I don’t actually have the device connected, so Stream is reporting timeouts. Here is the output when I start the IOC. J:\epics\devel\CARS\iocBoot\ioc13LQExcel>..\..\bin\windows-x64-static-vs2017\CARSApp.exe st.cmd.test errlogInit(5000) < envPaths epicsEnvSet("IOC","ioc13LQExcel") epicsEnvSet("TOP","J:/epics/devel/CARS") epicsEnvSet("SUPPORT","J:/epics/devel") epicsEnvSet("ALLEN_BRADLEY","J:/epics/devel/allenBradley-2-3") epicsEnvSet("AREA_DETECTOR","J:/epics/devel/areaDetector-3-9") epicsEnvSet("EPICS_BASE","H:/epics-devel/base-7.0.4") epicsEnvSet("ASYN","J:/epics/devel/asyn-4-40") epicsEnvSet("ADSUPPORT","J:/epics/devel/areaDetector-3-9/ADSupport") epicsEnvSet("ADCORE","J:/epics/devel/areaDetector-3-9/ADCore") epicsEnvSet("AUTOSAVE","J:/epics/devel/autosave-5-10") epicsEnvSet("BUSY","J:/epics/devel/busy-1-7-2") epicsEnvSet("CALC","J:/epics/devel/calc-3-7-3") epicsEnvSet("SNCSEQ","J:/epics/devel/seq-2-2-5") epicsEnvSet("SSCAN","J:/epics/devel/sscan-2-11-3") epicsEnvSet("DEVIOCSTATS","J:/epics/devel/devIocStats-3-1-16") epicsEnvSet("ADANDOR","J:/epics/devel/areaDetector-3-9/ADAndor") epicsEnvSet("ADROPER","J:/epics/devel/areaDetector-3-9/ADRoper") epicsEnvSet("ADLIGHTFIELD","J:/epics/devel/areaDetector-3-9/ADLightField") epicsEnvSet("ADMAR345","J:/epics/devel/areaDetector-3-9/ADmar345") epicsEnvSet("ADMARCCD","J:/epics/devel/areaDetector-3-9/ADmarCCD") epicsEnvSet("ADPERKINELMER","J:/epics/devel/areaDetector-3-9/ADPerkinElmer") epicsEnvSet("ADPILATUS","J:/epics/devel/areaDetector-3-9/ADPilatus") epicsEnvSet("ADPROSILICA","J:/epics/devel/areaDetector-3-9/ADProsilica") epicsEnvSet("ADPOINTGREY","J:/epics/devel/areaDetector-3-9/ADPointGrey") epicsEnvSet("ADEIGER","J:/epics/devel/areaDetector-3-9/ADEiger") epicsEnvSet("ADGENICAM","J:/epics/devel/areaDetector-3-9/ADGenICam") epicsEnvSet("ADSPINNAKER","J:/epics/devel/areaDetector-3-9/ADSpinnaker") epicsEnvSet("ADARAVIS","J:/epics/devel/areaDetector-3-9/ADAravis") epicsEnvSet("ADVIMBA","J:/epics/devel/areaDetector-3-9/ADVimba") epicsEnvSet("CARS","J:/epics/devel/CARS") epicsEnvSet("CRYOCONM32","J:/epics/devel/CryoconM32") epicsEnvSet("DAC128V","J:/epics/devel/dac128V-2-9") epicsEnvSet("DANTE","J:/epics/devel/dante-1-0") epicsEnvSet("DELAYGEN","J:/epics/devel/delaygen-1-2-1") epicsEnvSet("IP","J:/epics/devel/ip-2-20-1") epicsEnvSet("IPAC","J:/epics/devel/ipac-2-15") epicsEnvSet("IP330","J:/epics/devel/ip330-2-9") epicsEnvSet("IPUNIDIG","J:/epics/devel/ipUnidig-2-11") epicsEnvSet("MCA","J:/epics/devel/mca-7-8") epicsEnvSet("MEASCOMP","J:/epics/devel/measComp-2-4") epicsEnvSet("MODBUS","J:/epics/devel/modbus-3-0") epicsEnvSet("MOTOR","J:/epics/devel/motor-7-0") epicsEnvSet("OPTICS","J:/epics/devel/optics-2-13-3") epicsEnvSet("QUADEM","J:/epics/devel/quadEM-9-3") epicsEnvSet("SOFTGLUE","J:/epics/devel/softGlue-2-8-2") epicsEnvSet("STD","J:/epics/devel/std-3-6") epicsEnvSet("STREAM","J:/epics/devel/stream-2-8-14") epicsEnvSet("TPMAC","J:/epics/devel/tpmac-3-11dls5") epicsEnvSet("VAC","J:/epics/devel/vac-1-9") epicsEnvSet("VME","J:/epics/devel/vme-2-9-2") epicsEnvSet(STREAM_PROTOCOL_PATH, J:/epics/devel/ip-2-20-1/db:J:/epics/devel/CARS/db) # Tell EPICS all about the record types, device-support modules, drivers, # etc. in this build from CARS dbLoadDatabase("../../dbd/CARSWin32.dbd") CARSWin32_registerRecordDeviceDriver(pdbbase) drvAsynSerialPortConfigure("serial1", "COM1") asynOctetSetInputEos("serial1",0,"\r\n") asynOctetSetOutputEos("serial1",0,"\r\n") # Laser Quantum Excel laser dbLoadRecords("J:/epics/devel/CARS/db/LQExcel.db", "P=13LQE1:,R=L1,PORT=serial1") iocInit Starting iocInit ############################################################################ ## EPICS R7.0.4 ## Rev. GSECARS-Build ############################################################################ 2020/07/21 07:43:48.499261 serial1 13LQE1:L1PowerOut: No reply within 1000 ms to "POWER?" 2020/07/21 07:43:48.508047 win4cd4 13LQE1:L1PowerOut: @init handler failed 2020/07/21 07:43:48.514825 win4cd4 13LQE1:L1PowerOut: Record initialization failed iocRun: All initialization complete epics> 2020/07/21 07:43:50.546082 serial1 13LQE1:L1PowerIn: No reply within 1000 ms to "POWER?" 2020/07/21 07:43:51.556041 serial1 13LQE1:L1LaserTemp: No reply within 1000 ms to "LASTEMP?" epics> 2020/07/21 07:43:52.566191 serial1 13LQE1:L1PowerIn: No reply within 1000 ms to "POWER?" 2020/07/21 07:43:53.576246 serial1 13LQE1:L1PSUTemp: No reply within 1000 ms to "PSUTEMP?" 2020/07/21 07:43:54.586484 serial1 13LQE1:L1LaserTemp: No reply within 1000 ms to "LASTEMP?" It is clearly finding and using STREAM_PROTOCOL_PATH because it is finding the protocol file, which is located in J:/epics/devel/CARS/db, not the current directory. I cannot explain why you are getting the error that STREAM_PROTOCOL_PATH is undefined. Please try the following command at the iocsh prompt. epicsEnvShow "STREAM_PROTOCOL_PATH" This is what I see: epics> epicsEnvShow "STREAM_PROTOCOL_PATH" STREAM_PROTOCOL_PATH=J:/epics/devel/ip-2-20-1/db:J:/epics/devel/CARS/db You do get a build error when EPICS_HOST_ARCH=windows-x64-mingw. That is probably because the version of inttypes.h that it is finding does not define SCNx8, but I am not sure. Mark From:
吴煊 <wux at ihep.ac.cn>
There is something wrong with what I said in my previous email. It's ture that steam 2.8.13 can be built successfully with Visual Studio 2017 and Visual Studio 2019. However, it will be aborted when the application start(when execute iocInit
actually), but it can be run correctly with Stream 2.7.14. You can check the info in attachment.
I also try to compile stream with 3.14.12.8: MSVC:2017 community EPICS_HOST_ARCH=windows-x64 Stream 2.8.13 can be built, but the application can't be run properly. The result is the same as Stream2.8.13.PNG *************************************************************************************************
EPICS_HOST_ARCH=windows-x64-mingw Stream 2.8.13 build failed. The error info is :../ChecksumConverter.cc:777:51: error: expected ')' before 'SCNx8' Regards,
This email and any attachments are intended solely for the use of the named recipients. If you are not the intended recipient you must not use, disclose, copy or distribute this email or any of its attachments and should notify the sender immediately and delete this email from your system. UK Research and Innovation (UKRI) has taken every reasonable precaution to minimise risk of this email or any attachments containing viruses or malware but the recipient should carry out its own virus and malware checks before opening the attachments. UKRI does not accept any liability for any losses or damages which the recipient may sustain due to presence of any viruses. Opinions, conclusions or other information in this message and attachments that are not related directly to UKRI business are solely those of the author and do not represent the views of UKRI. |