Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
ca13e446
Commit
ca13e446
authored
Dec 09, 2020
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make style
parent
69a42967
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
107 additions
and
101 deletions
+107
-101
IOControl.h
extensions/IOControl/IOControl.h
+96
-93
TOR.cc
extensions/LogicProcessor/TOR.cc
+0
-1
MBSlave.cc
extensions/ModbusSlave/MBSlave.cc
+0
-1
DBServer.h
include/DBServer.h
+0
-1
UInterface.h
include/UInterface.h
+3
-0
MessageType.cc
src/Core/MessageType.cc
+2
-1
UniSetActivator.cc
src/Core/UniSetActivator.cc
+1
-0
UniSetManager.cc
src/Core/UniSetManager.cc
+4
-4
UniSetObject.cc
src/Core/UniSetObject.cc
+0
-0
UniSetTypes.cc
src/Core/UniSetTypes.cc
+0
-0
test_unixml.cc
tests/test_unixml.cc
+1
-0
No files found.
extensions/IOControl/IOControl.h
View file @
ca13e446
...
@@ -60,106 +60,109 @@ namespace uniset
...
@@ -60,106 +60,109 @@ namespace uniset
в качестве префикса по умолчанию используется "io", но в конструкторе можно задать другой
в качестве префикса по умолчанию используется "io", но в конструкторе можно задать другой
если используется несколько процессов ввода/вывода.
если используется несколько процессов ввода/вывода.
-
\b --io-confnode name - Использовать для настройки указанный xml-узел
<br>
\b --io-confnode name - Использовать для настройки указанный xml-узел
-
\b --io-name name - ID процесса. По умолчанию IOController1.
<br>
\b --io-name name - ID процесса. По умолчанию IOController1.
-
\b --io-numcards - Количество карт в/в. По умолчанию 1.
<br>
\b --io-numcards - Количество карт в/в. По умолчанию 1.
-
\b --iodev0 dev - Использовать для card='0' указанный файл comedi-устройства.
<br>
\b --iodev0 dev - Использовать для card='0' указанный файл comedi-устройства.
-
\b --iodev1 dev - Использовать для card='1' указанный файл comedi-устройства.
<br>
\b --iodev1 dev - Использовать для card='1' указанный файл comedi-устройства.
-
\b --iodev2 dev - Использовать для card='2' указанный файл comedi-устройства.
<br>
\b --iodev2 dev - Использовать для card='2' указанный файл comedi-устройства.
-
\b --iodev3 dev - Использовать для card='3' указанный файл comedi-устройства.
<br>
\b --iodev3 dev - Использовать для card='3' указанный файл comedi-устройства.
-
\b --iodevX dev - Использовать для card='X' указанный файл comedi-устройства.
<br>
\b --iodevX dev - Использовать для card='X' указанный файл comedi-устройства.
'X' не должен быть больше --io-numcards
'X' не должен быть больше --io-numcards
-
\b --iodevX-subdevX-type name - Настройка типа подустройства для UNIO.
<br>
\b --iodevX-subdevX-type name - Настройка типа подустройства для UNIO.
Разрешены: TBI0_24,TBI24_0,TBI16_8
Разрешены: TBI0_24,TBI24_0,TBI16_8
-
\b --io-default_cardnum - Номер карты по умолчанию. По умолчанию -1.
<br>
\b --io-default_cardnum - Номер карты по умолчанию. По умолчанию -1.
Если задать, то он будет использоваться для датчиков
Если задать, то он будет использоваться для датчиков
у которых не задано поле 'card'.
у которых не задано поле 'card'.
-
\b --io-test-lamp - Для данного узла в качестве датчика кнопки 'ТестЛамп' использовать указанный датчик.
<br>
\b --io-test-lamp - Для данного узла в качестве датчика кнопки 'ТестЛамп' использовать указанный датчик.
-
\b --io-conf-field fname - Считывать из конф. файла все датчики с полем fname='1'
<br>
\b --io-conf-field fname - Считывать из конф. файла все датчики с полем fname='1'
-
\b --io-polltime msec - Пауза между опросом карт. По умолчанию 200 мсек.
<br>
\b --io-polltime msec - Пауза между опросом карт. По умолчанию 200 мсек.
-
\b --io-filtersize val - Размерность фильтра для аналоговых входов.
<br>
\b --io-filtersize val - Размерность фильтра для аналоговых входов.
-
\b --io-filterT val - Постоянная времени фильтра.
<br>
\b --io-filterT val - Постоянная времени фильтра.
-
\b --io-s-filter-field - Идентификатор в configure.xml по которому считывается список относящихся к это процессу датчиков
<br>
\b --io-s-filter-field - Идентификатор в configure.xml по которому считывается список относящихся к это процессу датчиков
-
\b --io-s-filter-value - Значение идентификатора по которому считывается список относящихся к это процессу датчиков
<br>
\b --io-s-filter-value - Значение идентификатора по которому считывается список относящихся к это процессу датчиков
-
\b --io-blink-time msec - Частота мигания, мсек. По умолчанию в configure.xml
<br>
\b --io-blink-time msec - Частота мигания, мсек. По умолчанию в configure.xml
-
\b --io-blink2-time msec - Вторая частота мигания (lmpBLINK2), мсек. По умолчанию в configure.xml
<br>
\b --io-blink2-time msec - Вторая частота мигания (lmpBLINK2), мсек. По умолчанию в configure.xml
-
\b --io-blink3-time msec - Вторая частота мигания (lmpBLINK3), мсек. По умолчанию в configure.xml
<br>
\b --io-blink3-time msec - Вторая частота мигания (lmpBLINK3), мсек. По умолчанию в configure.xml
-
\b --io-heartbeat-id - Данный процесс связан с указанным аналоговым heartbeat-датчиком.
<br>
\b --io-heartbeat-id - Данный процесс связан с указанным аналоговым heartbeat-датчиком.
-
\b --io-heartbeat-max - Максимальное значение heartbeat-счётчика для данного процесса. По умолчанию 10.
<br>
\b --io-heartbeat-max - Максимальное значение heartbeat-счётчика для данного процесса. По умолчанию 10.
-
\b --io-ready-timeout - Время ожидания готовности SM к работе, мсек. (-1 - ждать 'вечно')
<br>
\b --io-ready-timeout - Время ожидания готовности SM к работе, мсек. (-1 - ждать 'вечно')
-
\b --io-force - Сохранять значения в SM, независимо от, того менялось ли значение
<br>
\b --io-force - Сохранять значения в SM, независимо от, того менялось ли значение
-
\b --io-force-out - Обновлять выходы принудительно (не по заказу)
<br>
\b --io-force-out - Обновлять выходы принудительно (не по заказу)
-
\b --io-skip-init-output - Не инициализировать 'выходы' при старте
<br>
\b --io-skip-init-output - Не инициализировать 'выходы' при старте
-
\b --io-sm-ready-test-sid - Использовать указанный датчик, для проверки готовности SharedMemory
<br>
\b --io-sm-ready-test-sid - Использовать указанный датчик, для проверки готовности SharedMemory
\par Возможные настройки по каждому входу/выходу
\par Возможные настройки по каждому входу/выходу
- \b nofilter - не использовать фильтр
<br>\b nofilter - не использовать фильтр
- \b ioignore - игнорировать данный датчик (позволяет временно отключить вход/выход)
<br>\b ioignore - игнорировать данный датчик (позволяет временно отключить вход/выход)
- \b ioinvert - инвертированная логика (для DI,DO)
<br>\b ioinvert - инвертированная логика (для DI,DO)
- \b default - значение по умолчанию (при запуске)
<br>\b default - значение по умолчанию (при запуске)
- \b noprecision - игнорировать поле precision (т.е. процесс в/в не будет его использовать, но будет его присылать в SensorMessage)
<br>\b noprecision - игнорировать поле precision (т.е. процесс в/в не будет его использовать,
- \b cal_nocrop - не обрезать значение по крайним точкам по при калибровке.
но будет его присылать в SensorMessage)
<br>\b cal_nocrop - не обрезать значение по крайним точкам по при калибровке.
-
\b breaklim - пороговое значение для определения обрыва датчика (используется для AI).
<br>
\b breaklim - пороговое значение для определения обрыва датчика (используется для AI).
Если значение ниже этого порога, то выставляется признак обрыва датчика.
Если значение ниже этого порога, то выставляется признак обрыва датчика.
- \b debouncedelay - защита от дребезга. Задержка на дребезг, мсек.
<br>\b debouncedelay - защита от дребезга. Задержка на дребезг, мсек.
- \b ondelay - задержка на срабатывание, мсек.
<br>\b ondelay - задержка на срабатывание, мсек.
- \b offdelay - задержка на отпускание, мсек.
<br>\b offdelay - задержка на отпускание, мсек.
- \b iofront - работа по фронту сигнала (для DI).
<br>\b iofront - работа по фронту сигнала (для DI).
- "01" - срабатывание (и отпускание) по переходу "0 --> 1"
<br> "01" - срабатывание (и отпускание) по переходу "0 --> 1"
- "10" - срабатывание (и отпускание) по переходу "1 --> 0"
<br> "10" - срабатывание (и отпускание) по переходу "1 --> 0"
- \b safety - безопасное значение. Значение которое сохраняется в случае аварийного завершения процесса.
<br>\b safety - безопасное значение. Значение которое сохраняется в случае аварийного
- \b iopriority - приоритет при опросе.
завершения процесса.
- \b iotype - тип входа/выхода [DI|DO|AI|AO]
<br>\b iopriority - приоритет при опросе.
- \b rmin - минимальное "сырое" значение
<br>\b iotype - тип входа/выхода [DI|DO|AI|AO]
- \b rmax - максимальное "сырое" значение
- \b cmin - минимальное "калиброванное" значение
<br>\b rmin - минимальное "сырое" значение
- \b cmax - максимальное "калиброванное" значение
<br>\b rmax - максимальное "сырое" значение
- \b precision - Точность. Задаёт количество знаков после запятой.
<br>\b cmin - минимальное "калиброванное" значение
- Т.е. при считывании из канала, значение домножается
<br>\b cmax - максимальное "калиброванное" значение
- на 10^precision и уже таким сохраняется.
<br>\b precision - Точность. Задаёт количество знаков после запятой.
- А в SensorMessage присылается присылается precision.
<br>Т.е. при считывании из канала, значение домножается
<br>на 10^precision и уже таким сохраняется.
- \b filtermedian - Значение для "медианного" фильтра
<br>А в SensorMessage присылается присылается precision.
- \b filtersize - Значение для "усреднения"
- \b filterT - Постоянная времени фильтра.
<br>\b filtermedian - Значение для "медианного" фильтра
<br>\b filtersize - Значение для "усреднения"
- \b caldiagram - Имя калибровочной диаграммы из секции <Calibrations>.
<br>\b filterT - Постоянная времени фильтра.
- \b cal_cachesize - Размер кэша в калибровочной диаграмме (Calibration.h)
- \b cal_cacheresort - Количество циклов обращения к кэшу, для вызова принудительной пересортировки. (Calibration.h)
<br>\b caldiagram - Имя калибровочной диаграммы из секции <Calibrations>.
<br>\b cal_cachesize - Размер кэша в калибровочной диаграмме (Calibration.h)
- \b threshold_aid - идентификатор аналогового датчика по которому формируется порог.
<br>\b cal_cacheresort - Количество циклов обращения к кэшу, для вызова принудительной пересортировки. (Calibration.h)
<br>\b threshold_aid - идентификатор аналогового датчика по которому формируется порог.
Используется для DI.
Используется для DI.
-
\b lowlimit - нижний порог срабатывания.
<br>
\b lowlimit - нижний порог срабатывания.
-
\b hilimit - верхний порог срабатывания.
<br>
\b hilimit - верхний порог срабатывания.
-
\b card - номер карты
<br>
\b card - номер карты
-
\b subdev - номер подустройства
<br>
\b subdev - номер подустройства
-
\b channel [ 0<>32 ] - номер канала
<br>
\b channel [ 0<>32 ] - номер канала
-
\b jack [ J1 | J2 | J3 | J4 | J5 ] - название разъёма. Можно задавать вместо channel
<br>
\b jack [ J1 | J2 | J3 | J4 | J5 ] - название разъёма. Можно задавать вместо channel
-
J1 - chanenel 0 - 15
<br>
J1 - chanenel 0 - 15
-
J2
<br>
J2
-
\b lamp - признак, что данный аналоговый датчик является "лампочкой".
<br>
\b lamp - признак, что данный аналоговый датчик является "лампочкой".
-
Т.е. на самом деле дискретный выход, который может иметь состояния:
<br>
Т.е. на самом деле дискретный выход, который может иметь состояния:
-
uniset::lmpOFF - выключен
<br>
uniset::lmpOFF - выключен
-
uniset::lmpON - включен
<br>
uniset::lmpON - включен
-
uniset::lmpBLINK - мигание с частотой 1
<br>
uniset::lmpBLINK - мигание с частотой 1
-
uniset::lmpBLINK2 - мигание с частотой 2
<br>
uniset::lmpBLINK2 - мигание с частотой 2
-
uniset::lmpBLINK3 - мигание с частотой 3
<br>
uniset::lmpBLINK3 - мигание с частотой 3
-
\b no_iotestlamp - игнорировать данную лампочку при тесте ламп.
<br>
\b no_iotestlamp - игнорировать данную лампочку при тесте ламп.
-
\b range - диапазон измерения аналогового входа (см. libcomedi)
<br>
\b range - диапазон измерения аналогового входа (см. libcomedi)
-
\b aref - тип подключения (см. libcomedi)
<br>
\b aref - тип подключения (см. libcomedi)
-
\b enable_testmode - включить в работу во время тестового режима tmConfigEnable
<br>
\b enable_testmode - включить в работу во время тестового режима tmConfigEnable
-
\b disable_testmode - исключить из работы в тестовом режиме tmConfigDisable.
<br>
\b disable_testmode - исключить из работы в тестовом режиме tmConfigDisable.
\note Помимо этого для конкретного процесса можно переопределять настройки используя "prefix_" (префикс плюс подчёркивание).
\note Помимо этого для конкретного процесса можно переопределять настройки используя "prefix_" (префикс плюс подчёркивание).
Где "prefix" - это префикс это префикс заданный в конструкторе IOControl.
Где "prefix" - это префикс это префикс заданный в конструкторе IOControl.
...
@@ -173,14 +176,14 @@ namespace uniset
...
@@ -173,14 +176,14 @@ namespace uniset
--io-test-mode ID либо в конфигурационном файле testmode_as="ID"
--io-test-mode ID либо в конфигурационном файле testmode_as="ID"
Сейчас поддерживаются следующий режимы (см. IOControl::TestModeID):
Сейчас поддерживаются следующий режимы (см. IOControl::TestModeID):
-
\b "0" - тестовый режим отключён. Обычная работа.
<br>
\b "0" - тестовый режим отключён. Обычная работа.
-
\b "1" - полностью отключить работу с картами в/в. При этом все выходы будут переведены в безопасное состояние.
<br>
\b "1" - полностью отключить работу с картами в/в. При этом все выходы будут переведены в безопасное состояние.
-
\b "2" - Режим "разрешённых" каналов. В этом режиме отключается работа со всеми каналами, кроме тех, у которых
<br>
\b "2" - Режим "разрешённых" каналов. В этом режиме отключается работа со всеми каналами, кроме тех, у которых
указан параметр enable_testmode="1".
указан параметр enable_testmode="1".
-
\b "3" - Режим "запрещённых" каналов. В этом режиме отключается работа ТОЛЬКО для каналов, у которых
<br>
\b "3" - Режим "запрещённых" каналов. В этом режиме отключается работа ТОЛЬКО для каналов, у которых
указан параметр disable_testmode="1".
указан параметр disable_testmode="1".
-
\b "4" - Режим "только входы"
<br>
\b "4" - Режим "только входы"
-
\b "5" - Режим "только выходы"
<br>
\b "5" - Режим "только выходы"
*/
*/
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
/*! \todo (IOControl): Сделать обработку сигналов завершения */
/*! \todo (IOControl): Сделать обработку сигналов завершения */
...
...
extensions/LogicProcessor/TOR.cc
View file @
ca13e446
...
@@ -49,7 +49,6 @@ namespace uniset
...
@@ -49,7 +49,6 @@ namespace uniset
void
TOR
::
setIn
(
size_t
num
,
long
value
)
void
TOR
::
setIn
(
size_t
num
,
long
value
)
{
{
// cout << getType() << "(" << myid << "): input " << num << " set " << state << endl;
// cout << getType() << "(" << myid << "): input " << num << " set " << state << endl;
for
(
auto
&&
it
:
ins
)
for
(
auto
&&
it
:
ins
)
{
{
if
(
it
.
num
==
num
)
if
(
it
.
num
==
num
)
...
...
extensions/ModbusSlave/MBSlave.cc
View file @
ca13e446
...
@@ -823,7 +823,6 @@ namespace uniset
...
@@ -823,7 +823,6 @@ namespace uniset
}
}
#endif
#endif
// ВНИМАНИЕ! Эта функция вызывается из основного eventLoop
// ВНИМАНИЕ! Эта функция вызывается из основного eventLoop
// поэтому она должна быть максимально быстрой и безопасной
// поэтому она должна быть максимально быстрой и безопасной
// иначе накроется весь обмен
// иначе накроется весь обмен
...
...
include/DBServer.h
View file @
ca13e446
...
@@ -71,7 +71,6 @@ namespace uniset
...
@@ -71,7 +71,6 @@ namespace uniset
std
::
shared_ptr
<
LogServer
>
logserv
;
std
::
shared_ptr
<
LogServer
>
logserv
;
std
::
string
logserv_host
=
{
""
};
std
::
string
logserv_host
=
{
""
};
int
logserv_port
=
{
0
};
int
logserv_port
=
{
0
};
const
std
::
string
prefix
=
{
"db"
};
const
std
::
string
prefix
=
{
"db"
};
private
:
private
:
...
...
include/UInterface.h
View file @
ca13e446
...
@@ -316,6 +316,9 @@ namespace uniset
...
@@ -316,6 +316,9 @@ namespace uniset
CacheOfResolve
rcache
;
CacheOfResolve
rcache
;
std
::
shared_ptr
<
uniset
::
ObjectIndex
>
oind
;
std
::
shared_ptr
<
uniset
::
ObjectIndex
>
oind
;
std
::
shared_ptr
<
uniset
::
Configuration
>
uconf
;
std
::
shared_ptr
<
uniset
::
Configuration
>
uconf
;
#ifndef DISABLE_REST_API
mutable
UHttp
::
UHttpClient
resolver
;
#endif
};
};
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
}
// end of uniset namespace
}
// end of uniset namespace
...
...
src/Core/MessageType.cc
View file @
ca13e446
...
@@ -145,7 +145,7 @@ namespace uniset
...
@@ -145,7 +145,7 @@ namespace uniset
type
=
Message
::
SysCommand
;
type
=
Message
::
SysCommand
;
this
->
priority
=
priority
;
this
->
priority
=
priority
;
this
->
consumer
=
consumer
;
this
->
consumer
=
consumer
;
memset
(
data
,
0
,
sizeof
(
data
));
memset
(
data
,
0
,
sizeof
(
data
));
}
}
SystemMessage
::
SystemMessage
(
const
VoidMessage
*
msg
)
noexcept
:
SystemMessage
::
SystemMessage
(
const
VoidMessage
*
msg
)
noexcept
:
...
@@ -233,6 +233,7 @@ namespace uniset
...
@@ -233,6 +233,7 @@ namespace uniset
assert
(
vmsg
->
type
==
Message
::
TextMessage
);
assert
(
vmsg
->
type
==
Message
::
TextMessage
);
auto
m
=
static_cast
<
const
TextMessage
*>
(
vmsg
);
auto
m
=
static_cast
<
const
TextMessage
*>
(
vmsg
);
if
(
m
)
if
(
m
)
{
{
type
=
m
->
type
;
type
=
m
->
type
;
...
...
src/Core/UniSetActivator.cc
View file @
ca13e446
...
@@ -199,6 +199,7 @@ namespace uniset
...
@@ -199,6 +199,7 @@ namespace uniset
return
;
return
;
active
=
false
;
active
=
false
;
if
(
termControl
)
if
(
termControl
)
{
{
set_signals
(
false
);
set_signals
(
false
);
...
...
src/Core/UniSetManager.cc
View file @
ca13e446
...
@@ -37,7 +37,7 @@ using namespace uniset;
...
@@ -37,7 +37,7 @@ using namespace uniset;
using
namespace
std
;
using
namespace
std
;
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
// объект-функция для посылки сообщения менеджеру
// объект-функция для посылки сообщения менеджеру
class
MPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetManager
>&
,
bool
>
class
MPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetManager
>&
,
bool
>
{
{
public
:
public
:
explicit
MPush
(
const
uniset
::
TransportMessage
&
msg
)
:
msg
(
msg
)
{}
explicit
MPush
(
const
uniset
::
TransportMessage
&
msg
)
:
msg
(
msg
)
{}
...
@@ -63,7 +63,7 @@ class MPush: public unary_function< const std::shared_ptr<uniset::UniSetManager>
...
@@ -63,7 +63,7 @@ class MPush: public unary_function< const std::shared_ptr<uniset::UniSetManager>
};
};
// объект-функция для посылки сообщения объекту
// объект-функция для посылки сообщения объекту
class
OPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetObject
>&
,
bool
>
class
OPush
:
public
unary_function
<
const
std
::
shared_ptr
<
uniset
::
UniSetObject
>&
,
bool
>
{
{
public
:
public
:
explicit
OPush
(
const
uniset
::
TransportMessage
&
msg
)
:
msg
(
msg
)
{}
explicit
OPush
(
const
uniset
::
TransportMessage
&
msg
)
:
msg
(
msg
)
{}
...
@@ -464,7 +464,7 @@ const std::shared_ptr<UniSetObject> UniSetManager::findObject( const string& nam
...
@@ -464,7 +464,7 @@ const std::shared_ptr<UniSetObject> UniSetManager::findObject( const string& nam
{
{
uniset_rwmutex_rlock
lock
(
olistMutex
);
uniset_rwmutex_rlock
lock
(
olistMutex
);
for
(
auto
&&
o
:
olist
)
for
(
auto
&&
o
:
olist
)
{
{
if
(
o
->
getName
()
==
name
)
if
(
o
->
getName
()
==
name
)
return
o
;
return
o
;
...
@@ -477,7 +477,7 @@ const std::shared_ptr<UniSetManager> UniSetManager::findManager( const string& n
...
@@ -477,7 +477,7 @@ const std::shared_ptr<UniSetManager> UniSetManager::findManager( const string& n
{
{
uniset_rwmutex_rlock
lock
(
mlistMutex
);
uniset_rwmutex_rlock
lock
(
mlistMutex
);
for
(
auto
&&
m
:
mlist
)
for
(
auto
&&
m
:
mlist
)
{
{
if
(
m
->
getName
()
==
name
)
if
(
m
->
getName
()
==
name
)
return
m
;
return
m
;
...
...
src/Core/UniSetObject.cc
View file @
ca13e446
src/Core/UniSetTypes.cc
View file @
ca13e446
tests/test_unixml.cc
View file @
ca13e446
...
@@ -97,6 +97,7 @@ TEST_CASE("UniXML::iterator", "[unixml][iterator][basic]" )
...
@@ -97,6 +97,7 @@ TEST_CASE("UniXML::iterator", "[unixml][iterator][basic]" )
--
it
;
--
it
;
CHECK
(
it
.
getName
()
==
"UserData"
);
CHECK
(
it
.
getName
()
==
"UserData"
);
UniXML
::
iterator
it_bad
=
uxml
.
begin
();
UniXML
::
iterator
it_bad
=
uxml
.
begin
();
REQUIRE_FALSE
(
it_bad
.
findName
(
"UnknownNode"
,
"NOTFOUND"
)
);
REQUIRE_FALSE
(
it_bad
.
findName
(
"UnknownNode"
,
"NOTFOUND"
)
);
REQUIRE_FALSE
(
!
it_bad
);
REQUIRE_FALSE
(
!
it_bad
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment