Commit 64b66074 authored by Pavel Vainerman's avatar Pavel Vainerman

Убрал все функции работы с датчиками кроме getValue и setValue

parent 1df373a0
......@@ -50,7 +50,6 @@ interface IOController_i : ObjectsManager_i
string err;
};
/*! Значение не определено
(например: обрыв датчика)
*/
......@@ -66,33 +65,19 @@ interface IOController_i : ObjectsManager_i
UniSetTypes::ObjectId node; /*!< узел на котором он находится */
};
boolean getState(in SensorInfo si) raises(NameNotFound,Undefined);
long getValue(in SensorInfo si) raises(NameNotFound,Undefined);
void setState(in SensorInfo si, in boolean state,
in UniSetTypes::ObjectId sup_id) raises(NameNotFound);
void setValue(in SensorInfo si, in long value,
in UniSetTypes::ObjectId sup_id) raises(NameNotFound);
void saveState(in SensorInfo si, in boolean state, in UniversalIO::IOTypes type,
in UniSetTypes::ObjectId sup_id) raises(IOBadParam,NameNotFound);
void saveValue(in SensorInfo si, in long value, in UniversalIO::IOTypes type,
in UniSetTypes::ObjectId sup_id) raises(IOBadParam,NameNotFound);
// установка неопределённого состояния
// (пока работает только для аналоговых датчиков)
void setUndefinedState(in SensorInfo si, in boolean undefined, in UniSetTypes::ObjectId sup_id )
raises(NameNotFound);
// fast version (не вырабатывает исключения)
oneway void fastSaveState(in SensorInfo si, in boolean state, in UniversalIO::IOTypes type,
in UniSetTypes::ObjectId sup_id);
oneway void fastSaveValue(in SensorInfo si, in long value, in UniversalIO::IOTypes type,
in UniSetTypes::ObjectId sup_id);
oneway void fastSetState(in SensorInfo si, in boolean state, in UniSetTypes::ObjectId sup_id);
oneway void fastSetValue(in SensorInfo si, in long value, in UniSetTypes::ObjectId sup_id);
UniversalIO::IOTypes getIOType(in SensorInfo si) raises(NameNotFound);
UniversalIO::IOType getIOType(in SensorInfo si) raises(NameNotFound);
// --- Интерфейс для конфигурирования ---
......@@ -113,59 +98,33 @@ interface IOController_i : ObjectsManager_i
CalibrateInfo getCalibrateInfo( in SensorInfo si ) raises(NameNotFound);
// --- Интерфес получения информации о всех датчиках ---
/*! Информация о дискретном датчике */
struct DigitalIOInfo
{
boolean state; /*!< состояние */
boolean undefined; /*!< признак неопределённости значения */
boolean blocked; /*!< данное значение блокировано другим */
boolean real_state; /*!< запомненное состояние, до блокировки */
UniversalIO::IOTypes type; /*!< тип */
long priority; /*!< приоритет уведомления */
IOController_i::SensorInfo si;
boolean default_val; /*!< значение по умолчанию */
long tv_sec; /*!< время последнего изменения датчика, секунды (gettimeofday) */
long tv_usec; /*!< время последнего изменения датчика, мксек (gettimeofday) */
};
/*! Информация об аналоговом датчике */
struct AnalogIOInfo
struct SensorIOInfo
{
long value; /*!< значение */
boolean undefined; /*!< признак неопределённости значения */
boolean blocked; /*!< данное значение блокировано другим */
long real_value; /*!< запомненное состояние, до блокировки */
UniversalIO::IOTypes type; /*!< тип */
UniversalIO::IOType type; /*!< тип */
long priority; /*!< приоритет уведомления */
IOController_i::SensorInfo si;
long default_val; /*!< значение по умолчанию */
CalibrateInfo ci; /*!< калибровочные параметры */
long tv_sec; /*!< время последнего изменения датчика, секунды (gettimeofday) */
long tv_usec; /*!< время последнего изменения датчика, мксек (gettimeofday) */
boolean dbignore; /*!< не сохранять изменения в БД */
};
typedef sequence<AnalogIOInfo> ASensorInfoSeq;
typedef sequence<DigitalIOInfo> DSensorInfoSeq;
typedef sequence<SensorIOInfo> SensorInfoSeq;
ASensorInfoSeq getAnalogSensorsMap();
DSensorInfoSeq getDigitalSensorsMap();
DigitalIOInfo getDInfo(in SensorInfo si) raises(NameNotFound);
AnalogIOInfo getAInfo(in SensorInfo si) raises(NameNotFound);
SensorInfoSeq getSensorsMap();
SensorIOInfo getSInfo(in SensorInfo si) raises(NameNotFound);
// -- Функции работы со списком датчиков --
// Для простоты функции сделаны универсальными и не различающими
// дискретные или аналоговые датчики или выходы
/*! Получение состояния дискретных или аналоговых датчиков.
При этом используется структура аналоговых (как наиболее полная).
Для определения типа используйте поле 'type'.
*/
ASensorInfoSeq getSensorSeq( in UniSetTypes::IDSeq lst );
/*! Получение состояния датчиков. */
SensorInfoSeq getSensorSeq( in UniSetTypes::IDSeq lst );
/*! Информация о "выходе" */
struct OutInfo
......@@ -198,7 +157,7 @@ interface IOController_i : ObjectsManager_i
/*! Информация о дискретном датчике */
struct ShortMap
{
UniversalIO::IOTypes type;
UniversalIO::IOType type;
long value;
long id;
};
......@@ -225,17 +184,6 @@ interface IONotifyController_i : IOController_i
{
};
/*! Заказ уведомления об изменении дискретного датчика
* \sa UniversalIO::UniversalIOController::askState()
*/
void askState(in SensorInfo si, in UniSetTypes::ConsumerInfo ci, in UniversalIO::UIOCommand cmd ) raises(NameNotFound,IOBadParam);
/*! Заказ уведомления об изменении аналогового датчика
* \sa UniversalIO::UniversalIOController::askValue()
*/
void askValue(in SensorInfo si, in UniSetTypes::ConsumerInfo ci, in UniversalIO::UIOCommand cmd ) raises(NameNotFound,IOBadParam);
/*! Универсальная функция заказа уведомления об изменнии датчика.
* Позволяет заказывать как дискретные так и аналоговые датчики
* \sa UniversalIO::UniversalIOController::askSensor()
......@@ -256,14 +204,6 @@ interface IONotifyController_i : IOController_i
in long lowLimit, in long hiLimit, in long sensibility,
in UniversalIO::UIOCommand cmd ) raises(NameNotFound, IOBadParam, BadRange);
/*! Универсальная функция заказа уведомления об изменнии выхода.
* Позволяет заказывать как дискретные так и аналоговые выходы
* \sa UniversalIO::UniversalIOController::askOutput()
*/
void askOutput(in SensorInfo si, in UniSetTypes::ConsumerInfo ci, in UniversalIO::UIOCommand cmd ) raises(NameNotFound,IOBadParam);
/*!
Заказ сразу списка объектов.
\return Возвращает список объектов заказ по котором не прошёл.
......@@ -300,7 +240,7 @@ interface IONotifyController_i : IOController_i
struct ThresholdList
{
IOController_i::SensorInfo si;
UniversalIO::IOTypes type;
UniversalIO::IOType type;
long value;
ThresholdInfoSeq tlist;
};
......
......@@ -32,7 +32,6 @@
{
typedef string<100> BaseObjectName;
typedef long ObjectId; /*!< идентификатор объекта */
typedef long MessageCode; /*!< код сообщения */
typedef long ThresholdId; /*!< идентификатор порога */
typedef long TimerId; /*!< идентификатор таймера */
typedef string<30> ObjectType; /*!< тип объекта */
......@@ -59,7 +58,6 @@
{
ObjectId id;
boolean connected;
ObjectId infserver;
ObjectId dbserver;
string host;
string port;
......@@ -95,13 +93,13 @@
/*!
* Типы входов/выходов
*/
enum IOTypes
enum IOType
{
UnknownIOType,
DigitalInput,
DigitalOutput,
AnalogInput,
AnalogOutput
DI, // DigitalInput
DO, // DigitalOutput
AI, // AnalogInput
AO // AnalogOutput
};
/*! Разрешенные команды для всех контроллеров ввода/вывода */
......
......@@ -7,8 +7,8 @@
%define oname uniset
Name: libuniset
Version: 1.7
Release: alt3
Version: 2.0
Release: alt0.1
Summary: UniSet - library for building distributed industrial control systems
......@@ -335,6 +335,19 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
%exclude %_pkgconfigdir/libUniSet.pc
%changelog
2.0
----
- rename "IOTypes" --> "IOType"
- rename DigitalInput --> DI
- rename DigitalOutput --> DO
- rename AnalogInput --> AI
- rename AnalogOutput --> AO
- remove deprecated services: InfoServer,TimeService,SystemGuard
- remove deprecated intefaces: MessageInterface
- remove deprecated messages: AlarmMessage, InfoMessage, DBMessage
* Tue Dec 10 2013 Pavel Vainerman <pv@altlinux.ru> 1.7-alt3
- add RRDServer
......
......@@ -3,7 +3,7 @@
# See doc: http://www.gnu.org/software/hello/manual/autoconf/Generic-Programs.html
# AC_PREREQ(2.59)
AC_INIT([uniset], [1.7.0], pv@etersoft.ru)
AC_INIT([uniset], [2.0.0], pv@etersoft.ru)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME,AC_PACKAGE_VERSION)
# AC_CONFIG_MACRO_DIR([m4])
......@@ -30,7 +30,7 @@ AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
AM_PROG_LIBTOOL
LIBVER=1:7:0
LIBVER=2:0:0
AC_SUBST(LIBVER)
# Checks for libraries.
......@@ -227,7 +227,6 @@ AC_CONFIG_FILES([Makefile
Utilities/NullController/Makefile
Utilities/SViewer-text/Makefile
Utilities/SMonit/Makefile
Utilities/InfoServer/Makefile
Utilities/MBTester/Makefile
Utilities/SImitator/Makefile
Utilities/codegen/Makefile
......
......@@ -297,21 +297,21 @@ using namespace UniSetTypes;
}
// --------------------------------------------------------------------------------------
UniversalIO::IOTypes UniSetTypes::getIOType( const std::string stype )
UniversalIO::IOType UniSetTypes::getIOType( const std::string stype )
{
if ( stype == "DI" || stype == "di" )
return UniversalIO::DigitalInput;
return UniversalIO::DI;
if( stype == "AI" || stype == "ai" )
return UniversalIO::AnalogInput;
return UniversalIO::AI;
if ( stype == "DO" || stype == "do" )
return UniversalIO::DigitalOutput;
return UniversalIO::DO;
if ( stype == "AO" || stype == "ao" )
return UniversalIO::AnalogOutput;
return UniversalIO::AO;
return UniversalIO::UnknownIOType;
}
// ------------------------------------------------------------------------------------------
std::ostream& UniSetTypes::operator<<( std::ostream& os, const UniversalIO::IOTypes t )
std::ostream& UniSetTypes::operator<<( std::ostream& os, const UniversalIO::IOType t )
{
if( t == UniversalIO::AnalogInput )
return os << "AI";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment