M5Unit-RFID 0.1.0 git rev:06ade4b
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
64 inline config_t config() const
65 {
66 return _cfg;
67 }
72 inline void config(const config_t& cfg)
73 {
74 _cfg = cfg;
75 UnitMFRC522::config(static_cast<const UnitMFRC522::config_t&>(cfg));
76 }
78
81
85 inline m5::nfc::NFC NFCMode() const override
86 {
87 return _mode;
88 }
89
96 bool configureNFCMode(const m5::nfc::NFC mode) override;
98
101
112 bool nfcbTransceive(uint8_t* rx, uint16_t& rx_len, const uint8_t* tx, const uint16_t tx_len,
113 const uint32_t timeout_ms);
114
120 bool readTypeBReg(uint8_t& value);
127 bool writeTypeBReg(const uint8_t value);
129
130protected:
131 virtual bool self_test() override;
132
134 bool configure_nfca();
136 bool configure_nfcb();
137
138protected:
139 config_t _cfg{};
140 m5::nfc::NFC _mode{m5::nfc::NFC::A};
141};
142
143} // namespace unit
144} // namespace m5
145#endif
Radio frequency identification unit.
Definition unit_MFRC522.hpp:89
config_t config()
Gets the configuration.
Definition unit_MFRC522.hpp:145
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
m5::nfc::NFC NFCMode() const override
Gets the current operating mode.
Definition unit_WS1850S.hpp:85
bool writeTypeBReg(const uint8_t value)
Write the TypeBReg (PN512 Page 1, address 0x1E)
Definition unit_WS1850S.cpp:218
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:213
UnitWS1850S(const uint8_t addr=DEFAULT_ADDRESS)
Constructor.
Definition unit_WS1850S.hpp:42
config_t config() const
Gets the configuration.
Definition unit_WS1850S.hpp:64
void config(const config_t &cfg)
Set the configuration.
Definition unit_WS1850S.hpp:72
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:167
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.