* Add runtime checks for event API on macOS
* Fix stub ppoll impl
* Fix lint issues
* Remove assert from event_state_shm_mmap
* Add variable args in ppoll macro
* Skip fake socket tests on macOS
* Add missing newline
* PPOLL and ppoll_impl definitions
* Update macro signature
* Fix issues on linux
* Stub empty implementation of event for macos
* Go back to shorter fds/timeout initialization
* Complete stub implementation of event api
* Fix unused variable warning
* Remove extra space
* Throw runtime_error in Socket::create
* Add messages to MessagingError
* Fix cython bindings
* Write a message to stderr instead of throwing runtime_error
* Implementation of FakeSubSocket and FakePubSocket using eventfd with support for one-in/one-out synchronization
* Expose FakeEvent to Python
* Add demo showcasing synchronization between processes
* Fix linter errors
* Expose more FakeEvent APIs in Python bindings
* Add FakePoller implementation
* Remove suffix from poll env vars
* Set poller timeout to zero when events are enabled
* Replace poll with ppoll. Add invalidation methods
* Fix lint issues
* Fix comment indent
* Remove fake_demo
* Remove FakePubSocket. Simpler FakePoller implementation. Ability to wait for multiple events
* Rename FakeEvent to Event and move it to event.cc
* Rename event purpose constants in py
* Add support for timeout in wait methods
* Add tests for events and fake sockets
* Fix lint errors
* Add zmq sleeps
* Temporarly disable TestFakeSockets on ZMQ
* Add exception type specifiers to test_fake
* Event Manager implementation
* Fix fake sockets tests
* Update EventManager API
* Add test for enable/disable
* Add tests for cereal prefix
* Remove EventPurpose from python bindings
* Fix lint issues
* event_state_shm_mmap implementation shared by EventManager and FakeSubSocket
* Rename EventManager to SocketEventHandle
* More renames
* change from sensorEvents to separated events
* fix numbering
* remove sensorEvent
* update after rebase
* .
* move bmx gyro and accel to its own channels
* address PR comments
* .
* inc frequency in tests
* .
* rename sensorEventsDEPRECATED sensorEvents
* readd sensorEvents in services.py
* .
Co-authored-by: Kurt Nistelberger <kurt.nistelberger@gmail.com>
* add poll to c++ submaster
* one line
* clean up
one line
* Update messaging/socketmaster.cc
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Update messaging/socketmaster.cc
* comment makes more sense
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* duplicate bridge
* unbridge!
* some fixes
* combine bridge
* one if
* rm unbridge
* add --unbridge arg
* ip and unbridge arg parsing. segfaults if not given any ip value
* this is better than a python cli interface for now
* where did those tabs come from?
* bridge --unbridge is a little cumbersome to type...
...and only republish test messages
* more clear
* update
* only check --ip
* assume reverse if anything specified as ip
* refactor
* better ordering
* order imports
* use a whitelist
* combine into get_services
* add update_msgs
* works, need to find a way to pair socket to message without map
* works with strings
* save changes
* fix
* style
* remove fixMaybe
* style
* void update
* removing dynamic_struct
* comments
* dont need include anymore
* map -> vector<pair>
* move to update_msgs
* uint64
* change
* refrence
* whitepsace after if
* make sure specified port isn't reserved
* only sshd
* Add check to tests as well and test
* commonly define these safety check numbers in services and check in both places
* add function to generate new ports that aren't reserved
* port is guaranteed to not be a reserved port and above 8000 now
asserting the rate on runtime isn't necessary, just for testing
* create service_list dynamically
* redundant
* just add an offset equal to length of services dict
* fix test?
* only one reserved
* ignore the argument type error
* rm line
* Add back tests
* starts at 8001
* Added getters
* extra service to ack messages in process replay
* fix allAliveAndValid ignoring ignoreValid services
* check if readers are updated
* default message valid true
* Update README.md
* Update README.md
* Split out sensors
* no duplicate ports
* not used
* misc cleanup
* fix tests
* only catch import error
* celcius is not SI
* better temp
* update servicespy
* add explicit
* -data
* save sensors for later
* more thermal
* little more
* thermal -> deviceState
* steering
* forgot deg
* explicit ids
Co-authored-by: Willem Melching <willem.melching@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* add visionbuf
make static
ignore that
* Needs decleration
* add test binary
* c++
* create some structure
* some impl
* socket stuff
* Accept socket connection
* Alloc some buffers
* Create pub sockets and send buffer id
* make listener private
* Implement receive
* use error check macros in cl_helpers
* constructors to pass in opencl context
* add some convenience values in struct
* refactor creating buffers
* rgb is not so simple
* add fake stride and expose buffers
* add comment
* add extra data struct
* support conflate
* init opencl on all buffers
* make ion compile
* fix qcom2
* correctly setup yuv pointers when importing buffer
* also included from c
* Remove send print statements
* send metadata
* reveive metadata
* also used in c code
* dont start listener automatically
* Was started in 2 places
* set 100ms timeout on socket
* verify server id to detect reconnects
* handle reconnect
* buffer cleanup
* let user handle opencl creation
* add default values
* Add support for aligned rgb buffers
* add align macro
* dont use namespace
* use poller
* apple ifdef in ipc.cc
* VisionBuf is C++ class
* Install opencl headers
* cppcheck c++
* remove c header guard
* fix mac build
* simplify constructors
* Update visionipc/visionipc.h
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Update visionipc/visionbuf_ion.cc
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* add brackets
* s/VIPCBufExtra/VisionIpcBufExtra/g
* Add unittesting harness
* remove vipc demo
* very basic tests
* add conflate test
* Install opencl
* suppress msgq warnings
* Make it work using zmq
* cl in qcom replay
* run unittests in zmq mode as well
* non blocking connect
* always larger frame queues
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>