Commit Graph

390 Commits

Author SHA1 Message Date
b55a8fdd83 link by module namespace referance 2023-03-31 01:46:35 -04:00
db81ecefdc add namespace aliases to cmake 2023-03-31 01:42:40 -04:00
c2ab4d9b22 remove unnecessary cmake directives 2023-03-31 01:37:37 -04:00
f9efddf583 cleanup comments 2023-03-30 20:15:35 -04:00
6cd9a9e6df correctly scale return value, with comment about linearity 2023-03-30 20:14:59 -04:00
cd884a8593 mark standards parameters as static 2023-03-30 20:13:26 -04:00
b6e9425083 evaluate non-dim from millivolts 2023-03-30 19:16:54 -04:00
8979dd4699 Hysteresis aware method for calculating non-dim switch state 2023-03-30 14:55:12 -04:00
9c5654b34d retain low-end resolution 2023-03-30 14:40:29 -04:00
2c72607dc3 E1.3 0-10V support 2023-03-30 13:56:14 -04:00
3ef5e0498b set default merge mode 2022-12-12 13:43:40 -05:00
7dfb0a81d7 universe arbitration is a helper not a subclass 2022-12-12 13:39:10 -05:00
64e6ee1c0a add refresh function to consolidate maintenance tasks 2022-12-12 11:32:26 -05:00
f5d99a03e6 remove unused base class function 2022-12-12 11:31:29 -05:00
d87fbcf25d unify the callback handlers 2022-12-12 11:29:41 -05:00
64140eb757 cache the dominant universe 2022-12-11 21:30:37 -05:00
e219e64d28 doc updates 2022-12-11 21:30:26 -05:00
472b6a1c39 retriever of sources metadata 2022-12-11 21:24:27 -05:00
a2bd30dbe5 better to just call the callback doer in a lambda 2022-12-11 21:23:34 -05:00
74de2c07af don't pay attention to universes that may not be dominant 2022-12-11 21:22:17 -05:00
27179b4e00 use a single vector for all callback tokens 2022-12-11 16:53:54 -05:00
b5f3e63b36 add callbacks for member changes 2022-12-11 16:48:42 -05:00
59dbad2264 reorder header 2022-12-11 16:48:06 -05:00
b84d7bafe9 explicitly call the base class function 2022-12-11 16:46:11 -05:00
059c115c15 do data callbacks after synchronization 2022-12-11 16:45:37 -05:00
ce51e17ddd use the existing metadata 2022-12-11 16:13:10 -05:00
6da7001c67 refactor class and file name 2022-12-11 16:04:44 -05:00
89716e1af5 make HTP the default merge mode 2022-12-11 15:58:40 -05:00
12b34cef6e refactor class and file name 2022-12-11 15:58:28 -05:00
7676cd54a2 configurable merge mode for received universes 2022-12-11 14:55:05 -05:00
a3eb42523e stubs for the OSC library 2022-12-11 09:58:26 -05:00
293b2060b8 don't hold the control lock when doing callbacks 2022-12-10 13:34:45 -05:00
0b02bc3c14 toggle'able hold-last-look 2022-12-10 13:20:39 -05:00
986dc9b89e remove hold-last-look behaviors from receiver to universe 2022-12-10 12:24:17 -05:00
849da8cecb take the control lock when running callbacks 2022-12-10 11:30:23 -05:00
8ce86353c9 opportunistically perform maintenance tasks 2022-12-10 11:15:02 -05:00
dbcde09616 more of making thing constant 2022-12-10 11:12:44 -05:00
52758cc904 use the volatile global enabled flag 2022-12-10 11:08:18 -05:00
37367cb6b4 explicit constructors and virtual destructors 2022-12-10 11:07:13 -05:00
eb47f6543f correct locking semantics 2022-12-09 23:09:52 -05:00
8221c90e24 remove commented code 2022-12-09 23:09:26 -05:00
16416ff10f mark as const 2022-12-09 23:09:11 -05:00
45cee71b19 become more constant 2022-12-09 21:27:27 -05:00
c4cf9768ab use scoped mutex locking 2022-12-09 21:08:35 -05:00
fe8bc039bc rename private variable 2022-12-09 18:17:04 -05:00
c9dec23ea9 initialize the DMP data segment from the sending thread 2022-12-09 16:08:16 -05:00
0c9c85830e use dynamic casts if RTTI is an available feature 2022-12-09 16:04:31 -05:00
4975c7e809 rearrange in header order 2022-12-09 15:16:03 -05:00
1d1be459c8 rename mutex for consistency 2022-12-09 11:54:52 -05:00
e6146e9efe standard timing intervals are constant 2022-12-09 11:46:18 -05:00
7f8e9ce4ac shared lock for universe access control 2022-12-09 11:18:27 -05:00
d11e136247 use locking guards 2022-12-09 10:29:01 -05:00
f1d3fe0256 use a shared mutex to lock the dimmer data 2022-12-09 10:28:02 -05:00
b7ca5c36f5 reuse the sACN framing layer PDU 2022-12-09 09:26:42 -05:00
4fa5a2794a use initializer list to create sender 2022-12-09 09:25:29 -05:00
4d7413b949 move all of transmitting to the helper class 2022-12-08 21:22:20 -05:00
466efd7477 move tx to a helper class 2022-12-08 19:09:39 -05:00
d67b3b8f40 adapt to the DMP rx/tx mechanism 2022-12-08 18:05:33 -05:00
f9896ff5f3 add synchronization reset helper 2022-12-08 18:04:37 -05:00
85a7ec4762 strictly enforce recieved sequence numbers 2022-12-08 17:56:02 -05:00
8a83107ee7 follow rename in base class 2022-12-08 17:52:24 -05:00
0ac22b232d inherit from DMP::Component 2022-12-08 17:50:29 -05:00
46938de0f5 refactor for readability 2022-12-08 17:47:37 -05:00
6237a9ef37 refactor for naming consistency 2022-12-08 17:41:07 -05:00
67e4472751 refactor to less ambigous name 2022-12-08 17:40:15 -05:00
e34a5acb5c metadata is a more descriptive property name 2022-12-08 10:12:25 -05:00
63ee24d334 add a non-standard 0 value failure reason 2022-12-07 21:58:10 -05:00
382f2d26fd add some accesses'ors for the range metadata 2022-12-07 21:57:32 -05:00
2b5db0febd initialize the address_type members 2022-12-07 21:56:49 -05:00
ce3e1ebf7c capitalize the Range struct 2022-12-07 21:56:17 -05:00
433e91f70c refactor over DMP Component 2022-12-07 21:53:39 -05:00
8f42e0bca6 a base class for DMP components 2022-12-07 21:51:15 -05:00
26ae455a07 check that the block was created before assigning parents 2022-12-06 18:05:12 -05:00
7434ac3d91 fix off-by-one error 2022-12-06 18:04:37 -05:00
f496b89e44 prefer the block setting code path 2022-12-06 18:04:19 -05:00
97ef3d5078 allocate loop control variables before the loop 2022-12-06 15:38:20 -05:00
b07d505bce only send 3 terminated universe frames 2022-12-06 14:52:06 -05:00
8a2e838916 only reset the sequence number for received terminated universes 2022-12-06 14:51:43 -05:00
1cad61ffc7 protected convenience calls can be inlined 2022-12-06 14:51:03 -05:00
635dc36ada cleanup documentation 2022-12-06 14:50:20 -05:00
39a6bcbfbf rearrange header 2022-12-06 14:04:18 -05:00
f9f0d1298e any optimization of separate handling is overshadowed by duplicating the code 2022-12-06 13:37:40 -05:00
ed40a3b666 catch the range exception instead of implementing seperate bounds checks 2022-12-06 13:36:27 -05:00
e7297c42ff use the same callback runner for all callback types 2022-12-06 13:35:18 -05:00
5ad7b5505e give all universe callbacks the same signature 2022-12-06 13:30:40 -05:00
738ced6964 fix off-by-one in range check 2022-12-06 13:24:09 -05:00
ca75a9973c the status indicator widget 2022-12-06 00:16:00 -05:00
55bcdc8db6 cleanup whitespace 2022-12-04 12:06:16 -05:00
3135c0ae6c rename call back registration function for consistancy 2022-12-02 16:35:05 -05:00
a03ef79d5d add note about the need to collapse the superposition of status 2022-12-02 15:47:51 -05:00
e0394e4413 don't supply and undefined source_name 2022-12-02 15:35:48 -05:00
be17ea9bb5 remove redundant local variable 2022-12-02 15:35:08 -05:00
a443299204 set timeout state based solely on age 2022-12-02 15:33:22 -05:00
9548145629 rename function to remove implication of rx use only 2022-12-02 15:32:26 -05:00
2cb021b184 reset the sequence number on termination 2022-12-02 13:09:58 -05:00
6a977bbf01 prefer the copy_n method for readability 2022-12-02 13:09:18 -05:00
11c6013a00 unify formatting and comments 2022-12-02 13:08:08 -05:00
db7bf1dcb3 add status change callbacks for listeners that want to be notified 2022-12-02 13:06:22 -05:00
2491054e1d cleanup universe status setting 2022-12-02 13:04:06 -05:00
4745458b87 rename callback list to better indicate the type of callback 2022-12-02 12:57:01 -05:00
6a2d1242be rename variable to reflect validity for both rx and tx 2022-12-02 12:52:52 -05:00
8e082fb112 mark override functions as virtual 2022-11-30 09:55:18 -05:00
874f6482a3 initialize varibles in the constructor 2022-11-30 09:54:24 -05:00
41530d86c1 comment cleanup 2022-11-30 09:54:01 -05:00
d4c0665330 generated IP addresses are static 2022-11-30 09:53:08 -05:00
79ed3e5a8b use a propper hash combiner 2022-11-30 09:52:50 -05:00
0ba1ecc9ac cleanup the the linking and including hierarchy 2022-11-30 09:52:25 -05:00
32557b5c31 the ACN library has become an interface library 2022-11-30 09:49:27 -05:00
15281fc3a7 build a library for the PDU 2022-11-30 09:49:00 -05:00
f17487b30f universes manage their own synchronization 2022-11-29 10:11:47 -05:00
f12b055aa0 remove intermediate project names 2022-11-28 17:24:38 -05:00
c9377418fa move OTP to a submodule 2022-11-28 16:41:28 -05:00
3e648dc152 move RDM and RDMnet to submodules 2022-11-28 16:37:38 -05:00
3e2d22e77e move ACN to a submodule 2022-11-28 15:57:52 -05:00
a86d968569 move sACN to a subproject 2022-11-28 15:06:48 -05:00
9e7b45d38c only declare project name 2022-11-28 14:55:45 -05:00
212e1ce0af make artistic a subproject 2022-11-28 14:55:31 -05:00
13d1251511 move DMX to submodule 2022-11-28 14:55:05 -05:00
375ec153fe build as shared libraries 2022-11-28 14:19:18 -05:00
9b49e63cab mark the linking to LCP as private 2022-11-28 14:19:01 -05:00
2f1d29ecfa move UUID into a submodule 2022-11-28 14:18:21 -05:00
a8377b6635 move Art-Net to a subproject 2022-11-28 13:41:57 -05:00
e2b46c5bbf version bump 2022-11-28 11:37:25 -05:00
a74bd32598 mark some class headers as public 2022-11-28 11:37:10 -05:00
a81bc5b1fd accept the front of over-length data 2022-11-28 11:36:01 -05:00
fdb2980d0e cleanup docs and whitespace 2022-11-28 11:23:13 -05:00
71edfaf7e9 consolidate status changes 2022-11-28 11:22:06 -05:00
73ee83cd9e scope the age variable to the function 2022-11-28 11:17:35 -05:00
3e77990490 make sure the age is big enough on all platforms 2022-11-28 11:16:19 -05:00
686b11f1f0 formating cleanup 2022-11-28 09:42:02 -05:00
c4baa96960 let rxAge() return negative if invalid 2022-11-28 09:41:27 -05:00
5a90c9fbbc if status() causes a status change, the lock will be needed in setStatus() 2022-11-28 09:25:12 -05:00
0292051392 holding last look is the behavior of a universe, not the receiver 2022-11-26 12:50:54 -05:00
3835cee9bd refactor the discovery worker thread 2022-11-26 12:48:02 -05:00
52cdef90dd only generate discovery frames for enabled RLP communications protocols 2022-11-26 12:38:26 -05:00
79ba3a18b7 only send packets for enabled IP protocols 2022-11-26 12:36:42 -05:00
ab0c2f0e62 acknowledge IPv4 and IPv6 as communication protocols for RLP 2022-11-26 12:34:48 -05:00
3f717454eb documentation cleanup 2022-11-26 12:30:27 -05:00
4ad13317fd update the sender source name when the UACN changes 2022-11-24 11:35:25 -05:00
4a1c50cdf1 hold the last seen time separate from the list of valid times 2022-11-24 11:34:33 -05:00
24ba41a73f it's the name of the source, not a description of the universe 2022-11-24 11:31:51 -05:00
29fd1fc9ed privatize the active data slot variable 2022-11-23 14:28:27 -05:00
9e94c406fd init variable in constructor, not header 2022-11-23 14:27:40 -05:00
9889a8943c the minimum length sACN data is just the start code 2022-11-23 14:22:37 -05:00
3695ae80fe improve code readability 2022-11-23 13:50:15 -05:00
88c4bb628f fix private variable init order 2022-11-23 13:49:51 -05:00
e12d11e62e tighten up the use of time 2022-11-23 13:49:35 -05:00
e157090e35 lock the data mutex for the minimum necessary instructions 2022-11-23 13:47:51 -05:00
da668011fe report the status of the dominant universe 2022-11-22 23:27:25 -05:00
d41ecc65bc the status byte can be private 2022-11-22 23:26:33 -05:00
c00e0e1d9a use virtual setStatus to change operational states 2022-11-22 12:15:24 -05:00
5c2548a5d3 if DMX has timed out, check if sACN has also 2022-11-22 12:13:52 -05:00
8a3eb928dd set DMX_LOST status from E111_DATA_LOSS_TIMEOUT 2022-11-22 12:05:25 -05:00
6be8dfbebd set the operational status for sending universes 2022-11-21 17:46:17 -05:00
cf1df8d373 send 3 stream_terminated messages during orderly shutdown 2022-11-21 17:45:43 -05:00
09dc532984 check for timeout before returning the status 2022-11-21 17:42:08 -05:00
357f8d5359 override the base implementation to be thread safer 2022-11-21 17:41:28 -05:00
81e68203ff set the status of terminated universes 2022-11-21 14:40:38 -05:00
f27faa4fe6 always attempt to delete terminated universes 2022-11-21 14:40:04 -05:00
fdbff859c7 be verbose in the status name 2022-11-21 14:37:02 -05:00
6ad6aa28f8 don't remove last universe if holding the look 2022-11-21 14:25:12 -05:00
a5958448ff set/timeout ops modify the operational state 2022-11-21 13:41:22 -05:00
53ac273c0b there is no distinction between network data lost and terminated 2022-11-21 13:39:14 -05:00
e76fd2f603 add a property to track the operating state of the universe 2022-11-21 13:24:21 -05:00
718a3dd22f Add status enum to be used later to track the operational state of a universe. 2022-11-21 12:41:59 -05:00
8fd8ef977d doc improvements 2022-11-20 23:00:38 -05:00
54ead231ad ensure that UDP and TCP are being sent on the correct transport 2022-11-20 17:30:23 -05:00
4a52f7302d implement a more robust method of determining dominant member 2022-11-20 15:22:51 -05:00
3672b1d49f Remove note about deleting callback tokens, It's done for all stale callbacks. 2022-11-20 15:16:12 -05:00
1ad91bdefe doc updates 2022-11-20 15:15:14 -05:00
ae838bee21 reuse the same RLP header for every message 2022-11-20 15:10:53 -05:00
10031d3a05 implement a separate sender for each transport protocol 2022-11-20 15:09:03 -05:00
2d93bbe709 only handle discovery frames if discovery is enabled 2022-11-19 17:23:13 -05:00
e14556fe16 call discovery callbacks after disabling discovery 2022-11-19 17:22:36 -05:00
b26bf158c0 never add a universe for discovery 2022-11-19 17:22:03 -05:00
99d919d613 move discovery state tracking form platform driver to protocol receiver 2022-11-19 16:43:41 -05:00
e4119c5189 add missing property getter for "Hold Last Look" 2022-11-19 15:45:31 -05:00
e528abe5e1 make the ACN EPI 19 Fixed name only asignable at initilization 2022-11-19 15:43:02 -05:00
24e7b5eb4c retrieving a universe doesn't modify the receiver 2022-11-19 12:26:07 -05:00
693b361244 add citation 2022-11-18 13:50:07 -05:00
85e631424a include universe number in metadata source_name 2022-11-17 12:39:43 -05:00
7def265788 header cleanup 2022-11-17 12:29:57 -05:00
0f481ae2a7 stubs for Artnet I/O 2022-11-15 11:42:27 -05:00
4123e85328 nodes contain a set of ports 2022-11-15 11:41:25 -05:00
161f8644ec ArtDmx has two modes 2022-11-15 11:40:47 -05:00
b4f27c88f7 explicit constructors 2022-11-15 11:39:54 -05:00
8e7489082b introduce ports and universes 2022-11-15 11:37:52 -05:00
5f46377e95 remove unnecessary headers 2022-11-15 11:32:53 -05:00
bca742c37f Documentation improvement and cleanup 2022-11-15 11:32:29 -05:00
248aca3f70 fixed by commit b20e463177 2022-11-14 10:04:12 -05:00
b20e463177 preserver stream state checking when reading 8bit values 2022-11-14 10:00:02 -05:00
0b5435065e correctly accept empty universe discovery lists 2022-11-14 09:16:53 -05:00
db3c782bef remove unnecessary header includes 2022-11-11 11:08:24 -05:00
933279e068 cleanup doxygen warnings 2022-11-11 11:08:05 -05:00
1904dacea9 globally configurable Art-Net OEM value 2022-06-09 16:51:14 -04:00
27e668457f class hierarchy of Device, Controller, and Node 2022-06-09 16:41:55 -04:00
2942d2800d add a header 2022-06-08 16:06:30 -04:00
5710631724 the Art-Net packet definitions 2022-06-08 16:05:06 -04:00
7826d17d40 set flag value if initialized via the manufactuer high bit 2022-06-08 10:42:44 -04:00
f03b2140fa always write the flag bit 2022-06-08 10:39:10 -04:00