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  <20192020  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  <20192020 
<== Date ==> <== Thread ==>

Subject: Re: epics-Keithley_648x, drvAsynKeithley648x
From: Mark Rivers via Tech-talk <tech-talk@aps.anl.gov>
To: Heinz Junkes <junkes@fhi-berlin.mpg.de>
Cc: "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Wed, 6 Mar 2019 13:28:55 +0000
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 <junkes@fhi-berlin.mpg.de>
Sent: Wednesday, March 6, 2019 7:09 AM
To: Mark Rivers
Cc: tech-talk@aps.anl.gov
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 <rivers@cars.uchicago.edu> 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


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

Navigate by Date:
Prev: Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes 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  <20192020 
Navigate by Thread:
Prev: Re: epics-Keithley_648x, drvAsynKeithley648x Heinz Junkes 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  <20192020 
ANJ, 06 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·