Looks much better.
Now I get it. The function drvAsynKeithley648x returns a port for communicating. I hadn't understood that.
...
drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
drvAsynKeithley648x("6485", "Keithley6485", "MOXA_4",0)
2019/03/06 14:47:24.055 Keithley6485 writeRead: error 1 wrote "*IDN?"
drvAsynKeithley648x::drvAsynKeithley6485 port Keithley6485 failed to acquire identification
asynSetTraceIOMask("MOXA_4", 0, 0x2)
asynSetTraceMask("MOXA_4", 0, 0x9)
dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, PORT=Keithley6485”)
…
2019/03/06 14:48:46.391 trARPES:Sample:read devAsynFloat64::processCallbackInput process read error
2019/03/06 14:48:46.391 trARPES:Sample:readStatusOverflow devAsynInt32::processCallbackInput process read error
2019/03/06 14:48:46.391 trARPES:Sample:readStatusFilter devAsynInt32::processCallbackInput process read error
2019/03/06 14:48:46.392 trARPES:Sample:readStatusMath devAsynInt32::processCallbackInput process read error
2019/03/06 14:48:46.392 trARPES:Sample:readStatusNull devAsynInt32::processCallbackInput process read error
2019/03/06 14:48:46.392 trARPES:Sample:readStatusLimits devAsynInt32::processCallbackInput process read error
2019/03/06 14:48:46.392 trARPES:Sample:readStatusOvervoltage devAsynInt32::processCallbackInput process read error
…
Now I have to check if the device is connected ;-)
Danke,
Heinz
> On 6. Mar 2019, at 14:28, Mark Rivers <[email protected]> wrote:
>
> OK, so the actual code to create the port is this, it does take 4 arguments:
>
> int drvAsynKeithley648x(const char *type, const char *myport,
> const char *ioport, int ioaddr)
>
>
> So your code should call
>
>
> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
> drvAsynKeithley648x("6485", "Keithley6485", "MOXA_4",0)
>
> asynSetTraceIOMask("MOXA_4", 0, 0x2)
> asynSetTraceMask("MOXA_4", 0, 0x9)
> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, PORT=Kiethley6485")
>
> What do you see if you try that?
>
>
> ________________________________
> From: Heinz Junkes <[email protected]>
> Sent: Wednesday, March 6, 2019 7:09 AM
> To: Mark Rivers
> Cc: [email protected]
> Subject: Re: epics-Keithley_648x, drvAsynKeithley648x
>
> Hello, Mark,
>
> thank you for your answers. Unfortunately it doesn't work that way either:
>
> startup
> ...
> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
> drvAsynKeithley648x("6485", "MOXA_4",0)
> drvAsynKeithley648x::drvAsynKeithley6485 port MOXA_4 can't connect to asynCommon on Octet server 0 address 0.
> asynSetTraceIOMask("MOXA_4", 0, 0x2)
> asynSetTraceMask("MOXA_4", 0, 0x9)
> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, PORT=6485")
> ...
>
> The driver is from https://github.com/dohnarms/epics-Keithley_648x
>
> In the driver there seems to be a mismatch
>
> ...
>
> /* Public interface forward references */
> int drvAsynKeithley648x(const char* myport,const char* ioport, int ioaddr);
> ...
>
>
> /****************************************************************************
> * Define public interface methods
> ****************************************************************************/
> int drvAsynKeithley648x(const char *type, const char *myport,
> const char *ioport, int ioaddr)
> {
> int status = asynSuccess;
> Port* pport;
> // int i;
> asynStandardInterfaces *pInterfaces;
>
> char inpBuf[BUFFER_SIZE];
> int eomReason;
>
> pport = (Port*)callocMustSucceed(1,sizeof(Port),"drvAsynKeithley6485");
>
> ...
>
> /****************************************************************************
> * Register public methods
> ****************************************************************************/
>
> /* Initialization method definitions */
> static const iocshArg arg0 = {"type",iocshArgString};
> static const iocshArg arg1 = {"myport",iocshArgString};
> static const iocshArg arg2 = {"ioport",iocshArgString};
> static const iocshArg arg3 = {"ioaddr",iocshArgInt};
> static const iocshArg* args[]= {&arg0,&arg1,&arg2,&arg3};
> static const iocshFuncDef drvAsynKeithley648xFuncDef =
> {"drvAsynKeithley648x",4,args};
> static void drvAsynKeithley648xCallFunc(const iocshArgBuf* args)
> {
> drvAsynKeithley648x(args[0].sval,args[1].sval,args[2].sval,args[3].ival);
> }
>
> /* Registration method */
> static void drvAsynKeithley648xRegister(void)
> {
> static int firstTime = 1;
>
> if( firstTime )
> {
> firstTime = 0;
> iocshRegister( &drvAsynKeithley648xFuncDef,drvAsynKeithley648xCallFunc );
> }
> }
> epicsExportRegistrar( drvAsynKeithley648xRegister );
>
>
> That is why I have given four arguments in the st.cmd.
>
> Danke,
> Heinz
>
>
>
>> On 6. Mar 2019, at 13:51, Mark Rivers <[email protected]> wrote:
>>
>> My comments are:
>> Your original message says that drvAsynKeithley6845 take 3 arguments. Your actual commands call drvAsynKeithey648x with 4 arguments. Why the difference? Does 648x take an initial argument with the exact model number, or is that the name of the new port?
>>
>> I don't see the need for the asynOctetConnect line.
>>
>> Maybe this will work:
>>
>> drvAsynIPPortConfigure("MOXA_4", "172.24.192.29:4004", 0, 0, 0)
>> drvAsynKeithley648x("6485", "MOXA_4",0)
>> asynSetTraceIOMask("MOXA_4", 0, 0x2)
>> asynSetTraceMask("MOXA_4", 0, 0x9)
>> dbLoadRecords("db/Keithley6485.db", "P=trARPES:, CA=Sample:, "6845")
>>
>> I deleted the asynOctetConnect, deleted the 3 argument to drvKeithley648x, and changed the port passed in dbLoadRecords.
>>
>> Is this driver code on Github or somewhere else we can look at it?
>>
>> Mark
>
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
- Replies:
- Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- References:
- epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Mark Rivers via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes via Tech-talk
- Re: epics-Keithley_648x, drvAsynKeithley648x Mark Rivers via Tech-talk
- Navigate by Date:
- Prev:
Re: epics-Keithley_648x, drvAsynKeithley648x Mark Rivers via Tech-talk
- Next:
Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes 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
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: epics-Keithley_648x, drvAsynKeithley648x Mark Rivers via Tech-talk
- Next:
Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes 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
2022
2023
2024
|