minipix_uart_interface
A library and examples for the MiniPIX UART interface
minipix_dummy.h
Go to the documentation of this file.
1 #ifndef MINIPIX_DUMMY_H
2 #define MINIPIX_DUMMY_H
3 
4 #include <atomic>
5 #include <list>
6 #include <mutex>
7 
8 #include <stdint.h>
9 
10 #include <llcp.h>
11 #include <llcp_minipix_messages.h>
12 
13 #include <pixel_encoder.h>
14 
15 class MinipixDummy {
16 
17 public:
18  MinipixDummy();
19 
20  virtual void sendByte([[maybe_unused]] const uint8_t &byte_out){};
21  virtual void sendString([[maybe_unused]] const uint8_t *bytes_out, [[maybe_unused]] const uint16_t &len){};
22  void serialDataCallback(const uint8_t *bytes_in, const uint16_t &len);
23  virtual void sleep([[maybe_unused]] const uint16_t &milliseconds){};
24  virtual void getFrameData(void){};
25  virtual void simulateFrameAcquisition([[maybe_unused]] const uint16_t &acquisition_time){};
26 
27 protected:
29 
30  uint16_t boot_count_ = 0;
31  uint16_t frame_id_ = 41; // it has to start somewhere, let it be 41
32  uint8_t mode_ = 0; // current pixel mode, LLCP_TPX3_PXL_MODE_{TOA_TOT,TOA,MPX_ITOT}
33  uint16_t acquisition_time_ = 0; // current pixel mode, LLCP_TPX3_PXL_MODE_{TOA_TOT,TOA,MPX_ITOT}
34 
35  void update(void);
36 
38 
39  void sendMessage([[maybe_unused]] const uint8_t *bytes_out, [[maybe_unused]] const uint16_t &len);
40  void sendMessageNoAck([[maybe_unused]] const uint8_t *bytes_out, [[maybe_unused]] const uint16_t &len);
41  void sendAck(void);
42  void sendError(const uint8_t &id);
43 
44 private:
45  // send an image with a diagonal test stripe
46  void simulatedTestStripeAcquisition();
47 
48  void clearToSend(void);
49  std::atomic<bool> clear_to_send_ = true;
50 
51  std::list<LLCP_Message_t> message_buffer_;
52  std::mutex mutex_message_buffer_;
53 
54  std::atomic<bool> powered_ = false;
55 };
56 
57 #endif // MINIPIX_DUMMY_H
MinipixDummy::getFrameData
virtual void getFrameData(void)
Definition: minipix_dummy.h:24
MinipixDummy::sendMessage
void sendMessage([[maybe_unused]] const uint8_t *bytes_out, [[maybe_unused]] const uint16_t &len)
Definition: minipix_dummy.cpp:322
MinipixDummy::MinipixDummy
MinipixDummy()
Definition: minipix_dummy.cpp:5
MinipixDummy::serialDataCallback
void serialDataCallback(const uint8_t *bytes_in, const uint16_t &len)
Definition: minipix_dummy.cpp:147
MinipixDummy
Definition: minipix_dummy.h:15
MinipixDummy::sleep
virtual void sleep([[maybe_unused]] const uint16_t &milliseconds)
Definition: minipix_dummy.h:23
MinipixDummy::boot_count_
uint16_t boot_count_
Definition: minipix_dummy.h:30
MinipixDummy::mode_
uint8_t mode_
Definition: minipix_dummy.h:32
MinipixDummy::sendByte
virtual void sendByte([[maybe_unused]] const uint8_t &byte_out)
Definition: minipix_dummy.h:20
MinipixDummy::frame_id_
uint16_t frame_id_
Definition: minipix_dummy.h:31
MinipixDummy::update
void update(void)
Definition: minipix_dummy.cpp:79
MinipixDummy::tx_buffer_
uint8_t tx_buffer_[LLCP_RX_TX_BUFFER_SIZE]
Definition: minipix_dummy.h:37
MinipixDummy::sendError
void sendError(const uint8_t &id)
Definition: minipix_dummy.cpp:363
MinipixDummy::simulateFrameAcquisition
virtual void simulateFrameAcquisition([[maybe_unused]] const uint16_t &acquisition_time)
Definition: minipix_dummy.h:25
LLCP_RX_TX_BUFFER_SIZE
#define LLCP_RX_TX_BUFFER_SIZE
Definition: llcp.h:54
pixel_encoder.h
MinipixDummy::sendAck
void sendAck(void)
Definition: minipix_dummy.cpp:348
MinipixDummy::sendMessageNoAck
void sendMessageNoAck([[maybe_unused]] const uint8_t *bytes_out, [[maybe_unused]] const uint16_t &len)
Definition: minipix_dummy.cpp:337
MinipixDummy::acquisition_time_
uint16_t acquisition_time_
Definition: minipix_dummy.h:33
LLCP_Receiver_t
LLCP_Receiver_t
Definition: llcp.h:107
MinipixDummy::llcp_receiver_
LLCP_Receiver_t llcp_receiver_
Definition: minipix_dummy.h:25
MinipixDummy::sendString
virtual void sendString([[maybe_unused]] const uint8_t *bytes_out, [[maybe_unused]] const uint16_t &len)
Definition: minipix_dummy.h:21