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  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: writing to aao crashes ioc
From: Dirk Zimoch <[email protected]>
To: EPICS <[email protected]>
Date: Thu, 15 Apr 2010 18:09:21 +0200
Hi all,

When an aao is written by an other record, the ioc crashes. The problem seems to independent of the DTYP of the aao. I used an (unofficial) Soft Channel support (attached).

Example db:

record (aao, "aao1")
{
    field (FTVL, "DOUBLE")
    field (NELM, "10")
    field (OUT,  "aao2")
}

record (aao, "aao2")
{
    field (FTVL, "DOUBLE")
    field (NELM, "10")
}

record (ao, "ao1")
{
    field (OUT,  "aao2")
}

When I write aao1 or ao1 the IOC crashes. (Note that aao2 is not even processed in that case.) If I write directly into aao2 there is no problem.

Any idea?

I am using EPICS R3.14.8.2.


Dirk
/*************************************************************************\
* Copyright (c) 2003 SLS Swiss Light Source
* based upon waveform support
\*************************************************************************/

/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
*     National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
*     Operator of Los Alamos National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution. 
\*************************************************************************/
/* devAaoSoft.c */

/* devAaoSoft.c - Device Support Routines for soft Waveform Records*/
/*
 *      Original Author: Bob Dalesio
 *      Current Author:  Dirk Zimoch
 *      Date:            11-JUL-2003
 */


#include	<stdlib.h>
#include	<stdio.h>
#include	<string.h>

#include	"alarm.h"
#include	"dbDefs.h"
#include	"dbAccess.h"
#include	"recGbl.h"
#include        "recSup.h"
#include	"devSup.h"
#include	"link.h"
#include	"aaoRecord.h"
#include	"epicsExport.h"

/* Create the dset for devAaoSoft */
static long init_record();
static long write_aao();
struct {
	long		number;
	DEVSUPFUN	report;
	DEVSUPFUN	init;
	DEVSUPFUN	init_record;
	DEVSUPFUN	get_ioint_info;
	DEVSUPFUN	read_aao;
} devAaoSoft = {
	5,
	NULL,
	NULL,
	init_record,
	NULL,
	write_aao
};
        
epicsExportAddress(dset,devAaoSoft);


static int sizeofTypes[] = {MAX_STRING_SIZE,1,1,2,2,4,4,4,8,2};

static long init_record(aaoRecord *paao)
{
    /* aao record does not allocate bptr. Why not? */
    if (!paao->bptr) {
    	if(paao->ftvl>DBF_ENUM) paao->ftvl=2;
    	paao->bptr = (char *)calloc(paao->nelm,sizeofTypes[paao->ftvl]);
    }
	
    /* aao.out must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/
    switch (paao->out.type) {
    case (CONSTANT) :
	paao->nord = 0;
	break;
    case (PV_LINK) :
    case (DB_LINK) :
    case (CA_LINK) :
	break;
    default :
	recGblRecordError(S_db_badField,(void *)paao,
		"devAaoSoft (init_record) Illegal INP field");
	return(S_db_badField);
    }
    return(0);
}

static long write_aao(aaoRecord *paao)
{
    long status,nRequest;

    nRequest=paao->nelm;
    /* aao record can not handle simulation mode. Why not? */
    if (paao->simm == YES){
        recGblRecordError(S_db_badField,(void *)paao,
		"devAaoSoft (read_aao) simulation mode unsupported");
        return(S_db_badField);
    }
    status = dbPutLink(&paao->out,paao->ftvl,paao->bptr, nRequest);
    /*If dbGetLink got no values leave things as they were*/
    if(nRequest>0) paao->nord = nRequest;

    return(0);
}

Replies:
Re: writing to aao crashes ioc Tim Mooney
Re: writing to aao crashes ioc Benjamin Franksen

Navigate by Date:
Prev: RE: The problem of building IOC Mark Rivers
Next: Re: soft-control on the serial line Eric Norum
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: The problem of building IOC Mark Rivers
Next: Re: writing to aao crashes ioc Tim Mooney
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·