#include <service.hpp>
|
void | taskFunction (void *) |
|
void | operationsLoop () |
|
void | operationsDcc () |
| Currently fills message buffer between 25 and 50%.
|
|
void | operationsBiDi () |
|
void | serviceLoop () |
|
std::optional< uint8_t > | serviceRead (uint16_t cv_addr) |
|
std::optional< uint8_t > | serviceWrite (uint16_t cv_addr, uint8_t byte) |
|
std::optional< bool > | serviceReceiveBit () |
|
std::optional< uint8_t > | serviceReceiveByte (bool bit_verify_to_1) |
|
void | sendToFront (Packet const &packet, size_t n=1uz) |
|
void | sendToBack (Packet const &packet, size_t n=1uz) |
|
z21::LocoInfo | locoInfo (uint16_t loco_addr) final |
|
void | locoDrive (uint16_t loco_addr, z21::LocoInfo::SpeedSteps speed_steps, uint8_t rvvvvvvv) final |
|
void | locoFunction (uint16_t loco_addr, uint32_t mask, uint32_t state) final |
|
z21::LocoInfo::Mode | locoMode (uint16_t loco_addr) final |
|
void | locoMode (uint16_t, z21::LocoInfo::Mode mode) final |
|
void | broadcastLocoInfo (uint16_t loco_addr) final |
|
bool | cvRead (uint16_t cv_addr) final |
|
bool | cvWrite (uint16_t cv_addr, uint8_t byte) final |
|
void | cvPomRead (uint16_t loco_addr, uint16_t cv_addr) final |
|
void | cvPomWrite (uint16_t loco_addr, uint16_t cv_addr, uint8_t byte) final |
|
void | cvPomAccessoryRead (uint16_t accy_addr, uint16_t cv_addr) final |
|
void | cvPomAccessoryWrite (uint16_t accy_addr, uint16_t cv_addr, uint8_t byte) final |
|
void | cvNackShortCircuit () final |
|
void | cvNack () final |
|
void | cvAck (uint16_t cv_addr, uint8_t byte) final |
|
void | resume () |
|
void | suspend () |
|
uint8_t | programPacketCount () const |
|
◆ Service()
dcc::Service::Service |
( |
BaseType_t | xCoreID | ) |
|
|
explicit |
◆ ~Service()
dcc::Service::~Service |
( |
| ) |
|
◆ broadcastLocoInfo()
void dcc::Service::broadcastLocoInfo |
( |
uint16_t | addr | ) |
|
|
finalprivate |
◆ cvAck()
void dcc::Service::cvAck |
( |
uint16_t | cv_addr, |
|
|
uint8_t | byte ) |
|
finalprivate |
◆ cvNack()
void dcc::Service::cvNack |
( |
| ) |
|
|
finalprivate |
◆ cvNackShortCircuit()
void dcc::Service::cvNackShortCircuit |
( |
| ) |
|
|
finalprivate |
◆ cvPomAccessoryRead()
void dcc::Service::cvPomAccessoryRead |
( |
uint16_t | accy_addr, |
|
|
uint16_t | cv_addr ) |
|
finalprivate |
◆ cvPomAccessoryWrite()
void dcc::Service::cvPomAccessoryWrite |
( |
uint16_t | accy_addr, |
|
|
uint16_t | cv_addr, |
|
|
uint8_t | byte ) |
|
finalprivate |
◆ cvPomRead()
void dcc::Service::cvPomRead |
( |
uint16_t | loco_addr, |
|
|
uint16_t | cv_addr ) |
|
finalprivate |
◆ cvPomWrite()
void dcc::Service::cvPomWrite |
( |
uint16_t | loco_addr, |
|
|
uint16_t | cv_addr, |
|
|
uint8_t | byte ) |
|
finalprivate |
◆ cvRead()
bool dcc::Service::cvRead |
( |
uint16_t | cv_addr | ) |
|
|
nodiscardfinalprivate |
◆ cvWrite()
bool dcc::Service::cvWrite |
( |
uint16_t | cv_addr, |
|
|
uint8_t | byte ) |
|
nodiscardfinalprivate |
◆ locoDrive()
void dcc::Service::locoDrive |
( |
uint16_t | loco_addr, |
|
|
z21::LocoInfo::SpeedSteps | speed_steps, |
|
|
uint8_t | rvvvvvvv ) |
|
finalprivate |
◆ locoFunction()
void dcc::Service::locoFunction |
( |
uint16_t | loco_addr, |
|
|
uint32_t | mask, |
|
|
uint32_t | state ) |
|
finalprivate |
◆ locoInfo()
z21::LocoInfo dcc::Service::locoInfo |
( |
uint16_t | loco_addr | ) |
|
|
finalprivate |
◆ locoMode() [1/2]
z21::LocoInfo::Mode dcc::Service::locoMode |
( |
uint16_t | loco_addr | ) |
|
|
finalprivate |
◆ locoMode() [2/2]
void dcc::Service::locoMode |
( |
uint16_t | , |
|
|
z21::LocoInfo::Mode | mode ) |
|
finalprivate |
◆ locosDeleteRequest()
◆ locosGetRequest()
◆ locosPutRequest()
- Todo
- document
- Todo
- CHANGE ADDRESS OF EXISTING LOCO HERE!!!
◆ operationsBiDi()
void dcc::Service::operationsBiDi |
( |
| ) |
|
|
private |
- Todo
- document
- Todo
- remove that later, not caring for acks is just temporarily!
◆ operationsDcc()
void dcc::Service::operationsDcc |
( |
| ) |
|
|
private |
◆ operationsLoop()
void dcc::Service::operationsLoop |
( |
| ) |
|
|
private |
◆ programPacketCount()
uint8_t dcc::Service::programPacketCount |
( |
| ) |
const |
|
private |
◆ resume()
void dcc::Service::resume |
( |
| ) |
|
|
private |
◆ sendToBack()
void dcc::Service::sendToBack |
( |
Packet const & | packet, |
|
|
size_t | n = 1uz ) |
|
private |
◆ sendToFront()
void dcc::Service::sendToFront |
( |
Packet const & | packet, |
|
|
size_t | n = 1uz ) |
|
private |
◆ serviceLoop()
void dcc::Service::serviceLoop |
( |
| ) |
|
|
private |
- Todo
- document
- Todo
- oh god please make this safer... it changes from opmode to serv...
◆ serviceRead()
std::optional< uint8_t > dcc::Service::serviceRead |
( |
uint16_t | cv_addr | ) |
|
|
private |
◆ serviceReceiveBit()
std::optional< bool > dcc::Service::serviceReceiveBit |
( |
| ) |
|
|
private |
- Todo
- document Depending on the DCC settings we might need to wait a long ass time...
◆ serviceReceiveByte()
std::optional< uint8_t > dcc::Service::serviceReceiveByte |
( |
bool | bit_verify_to_1 | ) |
|
|
private |
◆ serviceWrite()
std::optional< uint8_t > dcc::Service::serviceWrite |
( |
uint16_t | cv_addr, |
|
|
uint8_t | byte ) |
|
private |
◆ suspend()
void dcc::Service::suspend |
( |
| ) |
|
|
private |
◆ taskFunction()
void dcc::Service::taskFunction |
( |
void * | | ) |
|
|
private |
◆ z21()
void dcc::Service::z21 |
( |
std::shared_ptr< z21::server::intf::System > | z21_system_service, |
|
|
std::shared_ptr< z21::server::intf::Dcc > | z21_dcc_service ) |
◆ _cv_pom_request_deque
ztl::inplace_deque<CvRequest, Z21_SERVER_MAX_LOCO_ADDRESSES_PER_CLIENT> dcc::Service::_cv_pom_request_deque {} |
|
private |
◆ _cv_request_deque
ztl::inplace_deque<CvRequest, Z21_SERVER_MAX_LOCO_ADDRESSES_PER_CLIENT> dcc::Service::_cv_request_deque {} |
|
private |
◆ _internal_mutex
std::mutex dcc::Service::_internal_mutex |
|
private |
◆ _locos
Locos dcc::Service::_locos |
|
private |
◆ _priority_count
◆ _z21_dcc_service
std::shared_ptr<z21::server::intf::Dcc> dcc::Service::_z21_dcc_service |
|
private |
◆ _z21_system_service
std::shared_ptr<z21::server::intf::System> dcc::Service::_z21_system_service |
|
private |
The documentation for this class was generated from the following files:
- /home/runner/work/Firmware/Firmware/src/dcc/service.hpp
- /home/runner/work/Firmware/Firmware/src/dcc/service.cpp