EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Network Accessable Types
From: Marty Kraimer <[email protected]>
To: [email protected]
Date: Fri, 15 Jul 2005 07:51:56 -0500
At this week's meeting I think we agreed, except perhaps Jeff, that we want to define a set of well defined types for network accessable data.

These types are used as follows:

1) Data that is meant to be network accessable should be composed of network accessable data types 2) A client should be able to discover the network accessable data types of the server's data.

epicsTypes was an attempt by Andrew and I to define such a set. Perhaps using epics in that name made it seem to be a lot more than just network accessable data types. The following is a proposed definition for the well defined network accessable types that is an extension of what epicsTypes defines. The main changes are:

1) nad (network accessable data) is used instead of epics.
    Is this a good name?
    If not what is a better name?
2) It adds
    a) unsigned types
    b) property catalog
    c) time stamp
    d) map

The set of well defined types is:

enum NadType {
   nadTypeUnknown,
nadTypeBoolean, nadTypeOctet,
   nadTypeInt16,
   nadTypeUInt16,
   nadTypeInt32,
   nadTypeUInt32,
   nadTypeInt64,
   nadTypeUInt64,
   nadTypeFloat32,
   nadTypeFloat64,
   nadTypeString,
   nadTypeArray,
   nadTypeMDArray,
   nadTypePropertyCatalog,
   // Following are usefull common types
   nadTypeTimeStamp,
   nadTypeEnum,
   nadTypeMap
};

Note that a char type is NOT defined because it is extremely difficult or impossible to define a network accessable char data type.

Let me briefly describe these types

nadTypeUnknown - This is reserved for the case where the type is not known. Well behaved sources of data will not present such data.

nadTypeBoolean - This will have the values false and true and is not meant to be converted to any other nadType

nadTypeOctet - This is an 8 bit byte. It is NOT a numeric data type and is not automatically converted to any other type

nadTypeInt16,...,nadTypeFloat64 - Primitive data types. The unsigned types should not be used unless absolutely necessarry. An implementation can convert between these types using the rules of the language being used. Thus C++ uses it's conversion rules, Java uses it's rules, etc.

nadTypeString - A UTF-8 encoded character string..

nadTypeArray - An array. The elements of the array can be any of the nadTypes except nadTypeUnknown.

nadTypeMDArray - A multidimensional array.
             What types are alowed?
              Perhaps only nadTypeOctet,...nadTypeFloat64?

nadTypePropertyCatalog - Is this the correct name or should it be Struct? Using PropertyCatalog implys that we are agreeing the dataAccess is the way data is transfered between network accessable components.

nadTypeTimeStamp - This is a "convience" type. It is provided because it is so widely used.

nadTypeEnum - Again this is a convience type.

nadTypeMap - Convience type. If available, it will be widely used.


If these types are acceptable, then it will still be necessary to agree about the details of each type.

Marty






Replies:
Re: Network Accessable Types Tim Mooney
Re: Network Accessable Types Kay-Uwe Kasemir
Re: Network Accessable Types Benjamin Franksen
RE: Network Accessable Types Jeff Hill

Navigate by Date:
Prev: Re: Record support and user-defined fields Marty Kraimer
Next: Re: Network Accessable Types Tim Mooney
Index: 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: [Fwd: Re: SNL improvement and ideas] Ralph Lange
Next: Re: Network Accessable Types Tim Mooney
Index: 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·