M5Unit-RFID 0.0.2 git rev:1dc8f67
Loading...
Searching...
No Matches
unit_WS1850S.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
10#ifndef M5_UNIT_RFID2_UNIT_WS1850S_HPP
11#define M5_UNIT_RFID2_UNIT_WS1850S_HPP
12
13#include "unit_MFRC522.hpp"
14
15namespace m5 {
16namespace unit {
17
23class UnitWS1850S : public UnitMFRC522 {
24 M5_UNIT_COMPONENT_HPP_BUILDER(UnitWS1850S, 0x28);
25
26public:
35 uint8_t nfcb_ask_depth{11};
36 };
37
42 explicit UnitWS1850S(const uint8_t addr = DEFAULT_ADDRESS) : UnitMFRC522(addr)
43 {
44 }
48 virtual ~UnitWS1850S()
49 {
50 }
51
56 virtual bool begin() override;
57
60
61 inline config_t config() const
62 {
63 return _cfg;
64 }
66 inline void config(const config_t& cfg)
67 {
68 _cfg = cfg;
69 UnitMFRC522::config(static_cast<const UnitMFRC522::config_t&>(cfg));
70 }
72
75
79 inline m5::nfc::NFC NFCMode() const
80 {
81 return _mode;
82 }
83
90 bool configureNFCMode(const m5::nfc::NFC mode) override;
92
95
106 bool nfcbTransceive(uint8_t* rx, uint16_t& rx_len, const uint8_t* tx, const uint16_t tx_len,
107 const uint32_t timeout_ms);
108
114 bool readTypeBReg(uint8_t& value);
121 bool writeTypeBReg(const uint8_t value);
123
124protected:
125 virtual bool self_test() override;
126
128 bool configure_nfca();
130 bool configure_nfcb();
131
132protected:
133 config_t _cfg{};
134 m5::nfc::NFC _mode{m5::nfc::NFC::A};
135};
136
137} // namespace unit
138} // namespace m5
139#endif
Radio frequency identification unit.
Definition unit_MFRC522.hpp:89
config_t config()
Gets the configuration.
Definition unit_MFRC522.hpp:141
Radio frequency identification unit.
Definition unit_WS1850S.hpp:23
bool configure_nfca()
Switch chip to NFC-A mode (default)
Definition unit_WS1850S.cpp:71
virtual ~UnitWS1850S()
Destructor.
Definition unit_WS1850S.hpp:48
virtual bool self_test() override
self test
Definition unit_WS1850S.cpp:51
bool writeTypeBReg(const uint8_t value)
Write the TypeBReg (PN512 Page 1, address 0x1E)
Definition unit_WS1850S.cpp:216
virtual bool begin() override
Begin the unit.
Definition unit_WS1850S.cpp:36
bool readTypeBReg(uint8_t &value)
Read the TypeBReg (PN512 Page 1, address 0x1E)
Definition unit_WS1850S.cpp:211
UnitWS1850S(const uint8_t addr=DEFAULT_ADDRESS)
Constructor.
Definition unit_WS1850S.hpp:42
config_t config() const
Gets the configuration.
Definition unit_WS1850S.hpp:61
m5::nfc::NFC NFCMode() const
Gets the current operating mode.
Definition unit_WS1850S.hpp:79
void config(const config_t &cfg)
Set the configuration.
Definition unit_WS1850S.hpp:66
bool configureNFCMode(const m5::nfc::NFC mode) override
Configure NFC mode.
Definition unit_WS1850S.cpp:58
bool configure_nfcb()
Switch chip to NFC-B mode (PN512-compatible silicon only)
Definition unit_WS1850S.cpp:103
bool nfcbTransceive(uint8_t *rx, uint16_t &rx_len, const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms)
Transceive an NFC-B frame.
Definition unit_WS1850S.cpp:165
Top level namespace of M5Stack.
Unit-related namespace.
Settings for begin.
Definition unit_MFRC522.hpp:97
Settings for begin / configureNFCMode.
Definition unit_WS1850S.hpp:32
uint8_t nfcb_ask_depth
Definition unit_WS1850S.hpp:35
MFRC522 Unit for M5UnitUnified.