Commit Graph

50 Commits

Author SHA1 Message Date
Michael Davidsaver bf29d1a7cc 1.3.0a1 2023-12-06 10:06:18 -08:00
Michael Davidsaver 4cb39e3686 mark all callbacks from C as noexcept
These functions should already be catching all exceptions.
2023-11-21 12:20:34 -08:00
Michael Davidsaver 7e6463c200 codespell 2023-11-21 12:20:34 -08:00
Michael Davidsaver eddc687021 ioc: combine registrars and detect QSRV1
also consolidates initHook and epicsAtExit() hooks
into a single sequence.
2023-11-20 10:59:44 -08:00
Michael Davidsaver 6d1216daad pvalink: porting part 3
add pvalink json schema
avoid JSON5 in testpvalink for portability.
fixup build with pvalink
trap bad_weak_ptr open during dtor
  Not sure why this is happening, but need not be CRIT.
c++11, cleanup, and notes
fix pvalink test sync
fix test cleanup on exit
pvalink disconnected link is always INVALID
pvalink logging
pvalink capture Disconnect time
pvalink eliminate providerName
  restrict local to dbChannelTest()
  aka. no qsrv groups
pvalink onTypeChange when attaching link to existing channel
pvalink eliminate unused Connecting state
pvalink add InstCounter
pvalink AfterPut can be const
pvalink add atomic jlif flag
include epicsStdio.h later
  avoid #define printf troubles
assert cleanup state on exit
pvalink add newer lset functions
test link disconnect
testpvalink redo testPutAsync()
pvalink fill out meta-data fetch
pvalink fix FLNK
pvalink cache putReq
pvalink test atomic monitor
pvalink test enum handling
pvalink handle scalar read of empty array
  make it well defined anyway...
pvalink test array of strings
handle db_add_event() failure
handle record._options.DBE
2023-11-20 10:59:44 -08:00
Simon Rose 5f48325890 pvalink: porting part 2
Fix pvaGetValue for string scalars
Remove pvaLink* variables
Move close() call to pvaGlobal_t from worker queue
Removed latch state
Update .gitignore to ignore VS code configuration
Add lset(pva) support for base 7.x
Remove pvalink support for base 3.x
Update cached value object in pvaLinkChannel::run
Removing queued state from pvaLikeChannel
Add debug functionality
Rename internal fields to match json spec
prepare for puts
Fix array response size
Add tests for pvalink properties
2023-11-20 10:59:44 -08:00
Michael Davidsaver c00938600e pvalink: porting part 1 2023-11-20 10:59:44 -08:00
Michael Davidsaver 1dcdd8e61a pvalink: import existing
from pva2pva f1a3db44158a239a44d14b99b7823f340e95d7e0
2023-11-20 10:59:44 -08:00
Michael Davidsaver 382dd29452 qsrv: avoid sending 0 precision w/ integer value 2023-11-20 10:59:44 -08:00
Michael Davidsaver ff3e293a37 ioc: group avoid post() empty events
first update should never be empty, so warn if it somehow is.
2023-10-16 12:20:57 -07:00
Michael Davidsaver 88b67527f1 ioc: accept record._options.process as bool 2023-10-16 12:20:57 -07:00
Michael Davidsaver 0b0dfde5c9 ioc: group put w/o effect is an error. 2023-09-19 18:31:29 -07:00
Michael Davidsaver c06d4bb69a ioc: actually require +putorder to PUT 2023-09-19 18:31:29 -07:00
Michael Davidsaver 9ccd7b50ab ioc: fix block=true to DBF_ENUM 2023-09-19 12:16:02 -07:00
Michael Davidsaver 59c7fde958 ioc: fix group put over-process
only dbProcess() mapped records after dbPut
or for Proc mapping
2023-09-16 15:25:43 +02:00
Michael Davidsaver d8ed97e713 ioc: add logging for group ops 2023-09-16 15:25:43 +02:00
Simon Rose 6fdd4989bd Fix size/type typo 2023-09-15 15:31:18 +02:00
Michael Davidsaver ec0b21d27c ioc: ensure db_cancel_event() before ~MonitorControlOp
previously, ~SingleSourceSubscriptionCtx would ~MonitorControlOp
before the base class ~SubscriptionCtx would db_cancel_event()
leading to a use-after-free.
2023-09-12 19:30:27 +02:00
Michael Davidsaver 0274358453 1.2.3
PVXS Python / win64 3.10 (push) Failing after 1s
PVXS Python / win64 3.11 (push) Failing after 1s
PVXS Python / win64 3.5 (push) Failing after 1s
PVXS Python / win64 3.6 (push) Failing after 1s
PVXS Python / win64 3.7 (push) Failing after 1s
PVXS Python / win64 3.8 (push) Failing after 1s
PVXS Python / win64 3.9 (push) Failing after 1s
PVXS EPICS / Native Linux with 3.14 (push) Failing after 2s
PVXS EPICS / Native Linux with 3.15 (push) Failing after 2s
PVXS EPICS / Native Linux with clang (push) Failing after 1s
PVXS EPICS / Native Linux (libc++ debug) (push) Failing after 2s
PVXS EPICS / Native Linux (WError) (push) Failing after 1s
PVXS EPICS / Native Linux (c++17) (push) Failing after 2s
PVXS EPICS / Native Linux with libevent stable (push) Failing after 1s
PVXS EPICS / Cross mingw64 DLL (push) Failing after 2s
PVXS EPICS / Cross mingw64 static (push) Failing after 2s
PVXS EPICS / Native Linux with 7.0.2 (push) Failing after 2s
PVXS EPICS / Linux centos 7 (push) Failing after 1s
PVXS EPICS / Linux fedora latest (push) Failing after 2s
PVXS Python / linux64 test (push) Failing after 1s
PVXS Python / linux 2.7 i686 (push) Failing after 7s
PVXS Python / linux 2.7u i686 (push) Failing after 7s
PVXS Python / linux 3.5 i686 (push) Failing after 7s
PVXS Python / linux 3.6 i686 (push) Failing after 7s
PVXS Python / linux 3.7 i686 (push) Failing after 7s
PVXS Python / linux 3.8 i686 (push) Failing after 7s
PVXS Python / linux 3.9 i686 (push) Failing after 7s
PVXS Python / linux 2.7 amd64 (push) Failing after 7s
PVXS Python / linux 2.7u amd64 (push) Failing after 7s
PVXS Python / linux 3.5 amd64 (push) Failing after 7s
PVXS Python / linux 3.6 amd64 (push) Failing after 7s
PVXS Python / linux 3.7 amd64 (push) Failing after 7s
PVXS Python / linux 3.8 amd64 (push) Failing after 7s
PVXS Python / linux 3.9 amd64 (push) Failing after 7s
PVXS Python / linux 3.10 amd64 (push) Failing after 7s
PVXS Python / linux 3.11 amd64 (push) Failing after 7s
PVXS EPICS / OSX (push) Cancelled after 0s
PVXS EPICS / RTEMS5 (push) Cancelled after 0s
PVXS EPICS / vs2019 DLL (push) Cancelled after 0s
PVXS EPICS / vs2019 static (push) Cancelled after 0s
PVXS Python / osx 3.10 intel (push) Cancelled after 0s
PVXS Python / osx 3.11 intel (push) Cancelled after 0s
PVXS Python / osx 3.6 intel (push) Cancelled after 0s
PVXS Python / osx 3.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.8 intel (push) Cancelled after 0s
PVXS Python / osx 3.9 intel (push) Cancelled after 0s
2023-09-07 09:33:42 +02:00
Michael Davidsaver d7e49605cc threadOnce further reduce boilerplate
also latch failure
2023-09-04 16:17:25 +02:00
Michael Davidsaver 59164a63f7 pvxs::ioc::testPrepare() 2023-09-04 16:17:25 +02:00
Michael Davidsaver 39e5ecb308 ioc: accommodate USE_TYPED_DBEVENT 2023-09-04 16:17:25 +02:00
Michael Davidsaver 83e1966e93 ioc: fixup server singleton safety 2023-09-04 16:16:40 +02:00
Michael Davidsaver c0429dfa9a doc update 2023-08-31 11:32:09 +02:00
Michael Davidsaver b6072ad142 ioc: warn when group defines no +trigger 2023-08-31 10:46:43 +02:00
Michael Davidsaver b0c7c8fcd0 ioc: fill in display.precision 2023-08-22 15:09:42 +02:00
Michael Davidsaver 60d68940fb missing header 2023-07-17 09:30:37 -07:00
Michael Davidsaver 8e4c1d43d0 minor 2023-07-11 17:22:23 -07:00
Michael Davidsaver e51954529a ioc: avoid *NULL on exit when partially initialized 2023-06-27 08:00:14 -07:00
Michael Davidsaver a02b6e9730 ioc: improve long string detection
Partially replicate the '$' handling logic of dbChannelCreate()
in the case where no '$' was provided.
2023-06-18 10:07:16 -07:00
Michael Davidsaver 39e9a13d94 DBEntry::info() default value 2023-06-18 10:07:16 -07:00
Michael Davidsaver b95b57945b cleanup clang-y static analysis
Some performance improvements.  eg. pass by ref.

Some paranoia pre-initialization of variables
which will be initialized later by indirection.

And some misc. cleanup.
2023-06-12 19:55:03 -07:00
Michael Davidsaver 51bd6a3d6c ioc: fix LocalFieldLog "fast path"
Condition unintentionally always true,
which is correct, but ~slower.
2023-06-12 19:55:03 -07:00
Michael Davidsaver 13f7cd724d 1.2.0
PVXS Python / win64 3.10 (push) Failing after 1s
PVXS Python / win64 3.5 (push) Failing after 1s
PVXS Python / win64 3.6 (push) Failing after 1s
PVXS Python / win64 3.7 (push) Failing after 1s
PVXS Python / win64 3.8 (push) Failing after 1s
PVXS Python / win64 3.9 (push) Failing after 1s
PVXS EPICS / Native Linux with 3.14 (push) Failing after 2s
PVXS EPICS / Native Linux with 3.15 (push) Failing after 2s
PVXS EPICS / Native Linux with clang (push) Failing after 1s
PVXS EPICS / Native Linux (WError) (push) Failing after 2s
PVXS EPICS / Native Linux (c++17) (push) Failing after 1s
PVXS EPICS / Native Linux with libevent stable (push) Failing after 2s
PVXS EPICS / Cross mingw64 DLL (push) Failing after 2s
PVXS EPICS / Cross mingw64 static (push) Failing after 2s
PVXS EPICS / Native Linux with 7.0.2 (push) Failing after 1s
PVXS EPICS / Linux centos 7 (push) Failing after 2s
PVXS EPICS / Linux fedora 34 (push) Failing after 1s
PVXS Python / linux64 test (push) Failing after 2s
PVXS Python / linux 2.7 i686 (push) Failing after 7s
PVXS Python / linux 2.7u i686 (push) Failing after 7s
PVXS Python / linux 3.5 i686 (push) Failing after 7s
PVXS Python / linux 3.6 i686 (push) Failing after 7s
PVXS Python / linux 3.7 i686 (push) Failing after 7s
PVXS Python / linux 3.8 i686 (push) Failing after 7s
PVXS Python / linux 3.9 i686 (push) Failing after 7s
PVXS Python / linux 2.7 amd64 (push) Failing after 7s
PVXS Python / linux 2.7u amd64 (push) Failing after 7s
PVXS Python / linux 3.5 amd64 (push) Failing after 8s
PVXS Python / linux 3.6 amd64 (push) Failing after 7s
PVXS Python / linux 3.7 amd64 (push) Failing after 7s
PVXS Python / linux 3.8 amd64 (push) Failing after 7s
PVXS Python / linux 3.9 amd64 (push) Failing after 7s
PVXS Python / linux 3.10 amd64 (push) Failing after 7s
PVXS EPICS / OSX (push) Cancelled after 0s
PVXS EPICS / RTEMS5 (push) Cancelled after 0s
PVXS EPICS / vs2019 DLL (push) Cancelled after 0s
PVXS EPICS / vs2019 static (push) Cancelled after 0s
PVXS Python / osx 2.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.10 intel (push) Cancelled after 0s
PVXS Python / osx 3.6 intel (push) Cancelled after 0s
PVXS Python / osx 3.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.8 intel (push) Cancelled after 0s
PVXS Python / osx 3.9 intel (push) Cancelled after 0s
2023-05-14 08:57:01 -07:00
Michael Davidsaver 752b2f73d6 ioc: IOCShCommand wrapper catch exceptions
inline runOnServer(), which shouldn't re-throw anyway
2023-05-09 22:24:19 -07:00
Michael Davidsaver 074d835fc8 ioc: add INST_COUNTER 2023-05-09 22:24:19 -07:00
Michael Davidsaver 044b0db7af ioc: add instance counter tools to IOC shell 2023-05-09 22:24:19 -07:00
Michael Davidsaver afafa09547 ioc: revise qsrv 2 prototype
ioc: check for mis-matched onStartSubscription()/onDisableSubscription()

ioc: fix subscription lifetime

ioc: catch exceptions in dbEvent callbacks

ioc: avoid unnecessary virtual

ioc: minor

ioc: fix qsrv -S

ioc: qsrvGroupSourceInit() catch+log

ioc: runOnServer avoid std::function

ioc: cleanup and simplifications.

Avoid some redundant std::map lookups.
Make Group partially const to prevent implicit ctor.

ioc: avoid typedefs only used once

ioc: overhaul Group::show().  shows triggers

ioc: MappingType

ioc: pvxsgl -> pvxgl

ioc: separate group config singleton from server singleton

ioc: remove unnecessary forward declarations

ioc: restructure pvxsInitHook

ioc: qsrv runtime disable by default

ioc: compat w/ older Base

ioc: link pvxsIoc w/ DB libs

ioc: Channel proper detection of invalid PV

ioc: no need to keep vector<dbCommon*> around

ioc: fix initial group update for mappings w/o dbChannel

ioc: redo testing

split out group tests, only run with Base >= 7.0

ioc: minor

ioc: loc_bad_alloc

ioc: avoid symbol/DTYP clash with pva2pva

ioc: test record alias in group json

ioc: test put failure when SPC_NOMOD and DISP=1

ioc: test channel filters

ioc: unnecessary capture

ioc: avoid sharing Value between multiple subscriptions

It is possible to create two subscriptions through the same channel.

ioc: group subscription include queueSize

ioc: eliminate unused atomicMonitor

ioc: consolidate GroupSource::get()

avoid some indirection

ioc: pvRequest override of atomicPutGet

ioc: fix group non-atomic put

ioc: test asTrap hooks

ioc: test putOrder also sets field order

ioc: simplify GroupConfigProcessor::loadConfigFiles()

Also ensure that groupMapMutex is held

ioc: testqgroup cover JSON def.

ioc: dbLoadGroup() use macros

ioc: pvxsl() take integer argument

ioc: display.form and info(Q:form

ioc: "NO_ALARM" -> ""

ioc: use dbServer

at least for informational callbacks.

ioc: consolidate createRequestAndSubscriptionHandlers()

ioc: eliminate ChannelAndLock

properties dbChannel doesn't need a separate DBManyLock

ioc: test that putOrder also controls field order

ioc: MappingType -> MappingInfo

Handle info(Q:time:tag
Add +type:"const"

ioc: cleanup includes

ioc: test dbNotifyCancel()

ioc: inline checkForTrailingCommentsAtEnd()
2023-05-09 22:24:05 -07:00
george-mcintyre 019784bd3a ioc: Update group and single subscriptions to bind contexts to subscription not client connection 2023-05-09 10:17:32 -07:00
Michael Davidsaver cf4b568e64 testPlan(): select isolated network configuration for QSRV 2023-05-09 10:17:32 -07:00
George McIntyre 93e4d3eef3 ioc: qsrv 2 prototype 2023-05-09 10:17:32 -07:00
Bruno Martins 344a96207f Fix pvxsl: serv->getSource needs order argument 2022-03-25 07:38:33 -07:00
Michael Davidsaver 964da05ef2 Revert "accommodate gcc vs. msvc handling of empty __VA_ARGS__"
This reverts commit f7dd311daa.
2022-01-31 11:06:01 -08:00
Michael Davidsaver f7dd311daa accommodate gcc vs. msvc handling of empty __VA_ARGS__ 2022-01-28 08:42:18 -08:00
Michael Davidsaver e474d5cde8 doc 2021-09-13 19:24:07 -07:00
Michael Davidsaver 47882d759d add target_information()
Print from: pvxinfo -D
and new iocsh iocsh pvxs_target_info()
2020-12-13 18:13:24 -08:00
Michael Davidsaver 02a4bd719e Implement IOCsh pvxsr() 2020-09-08 14:23:22 -07:00
Michael Davidsaver 238169dbc7 document IOC integration 2020-09-08 14:23:22 -07:00
Vodopivec, Klemen eb11d9e1bc Fix registering functions with EPICS
Replace index_sequence implementation with one compatible with C++14
which also properly initializes arguments. Secondly, changed args to be array
of pointers instead of array of entries. This seems to fix problems and allows
to invoke functions from ioc shell.
2020-09-08 13:59:46 -07:00
Michael Davidsaver 6bbcf8aebb add iochooks and pvxsIoc library 2020-09-08 13:59:44 -07:00