Coverage Report

Created: 2023-03-26 06:08

/src/openthread/src/cli/cli_history.hpp
Line
Count
Source
1
/*
2
 *  Copyright (c) 2021, The OpenThread Authors.
3
 *  All rights reserved.
4
 *
5
 *  Redistribution and use in source and binary forms, with or without
6
 *  modification, are permitted provided that the following conditions are met:
7
 *  1. Redistributions of source code must retain the above copyright
8
 *     notice, this list of conditions and the following disclaimer.
9
 *  2. Redistributions in binary form must reproduce the above copyright
10
 *     notice, this list of conditions and the following disclaimer in the
11
 *     documentation and/or other materials provided with the distribution.
12
 *  3. Neither the name of the copyright holder nor the
13
 *     names of its contributors may be used to endorse or promote products
14
 *     derived from this software without specific prior written permission.
15
 *
16
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
 *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20
 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
 *  POSSIBILITY OF SUCH DAMAGE.
27
 */
28
29
/**
30
 * @file
31
 *   This file contains definitions for CLI to control History Tracker
32
 */
33
34
#ifndef CLI_HISTORY_HPP_
35
#define CLI_HISTORY_HPP_
36
37
#include "openthread-core-config.h"
38
39
#include <openthread/history_tracker.h>
40
41
#include "cli/cli_config.h"
42
#include "cli/cli_output.hpp"
43
44
#if OPENTHREAD_CONFIG_HISTORY_TRACKER_ENABLE
45
46
namespace ot {
47
namespace Cli {
48
49
/**
50
 * This class implements the History Tracker CLI interpreter.
51
 *
52
 */
53
class History : private Output
54
{
55
public:
56
    typedef Utils::CmdLineParser::Arg Arg;
57
58
    /**
59
     * Constructor
60
     *
61
     * @param[in]  aInstance            The OpenThread Instance.
62
     * @param[in]  aOutputImplementer   An `OutputImplementer`.
63
     *
64
     */
65
    History(otInstance *aInstance, OutputImplementer &aOutputImplementer)
66
        : Output(aInstance, aOutputImplementer)
67
7.92k
    {
68
7.92k
    }
69
70
    /**
71
     * This method interprets a list of CLI arguments.
72
     *
73
     * @param[in]  aArgs        A pointer an array of command line arguments.
74
     *
75
     */
76
    otError Process(Arg aArgs[]);
77
78
private:
79
    static constexpr uint16_t kShortAddrInvalid   = 0xfffe;
80
    static constexpr uint16_t kShortAddrBroadcast = 0xffff;
81
    static constexpr int8_t   kInvalidRss         = OT_RADIO_RSSI_INVALID;
82
83
    using Command = CommandEntry<History>;
84
85
    enum RxTx : uint8_t
86
    {
87
        kRx,
88
        kTx,
89
        kRxTx,
90
    };
91
92
    template <CommandId kCommandId> otError Process(Arg aArgs[]);
93
94
    otError ParseArgs(Arg aArgs[], bool &aIsList, uint16_t &aNumEntries) const;
95
    otError ProcessRxTxHistory(RxTx aRxTx, Arg aArgs[]);
96
    void    OutputRxTxEntryListFormat(const otHistoryTrackerMessageInfo &aInfo, uint32_t aEntryAge, bool aIsRx);
97
    void    OutputRxTxEntryTableFormat(const otHistoryTrackerMessageInfo &aInfo, uint32_t aEntryAge, bool aIsRx);
98
99
    static const char *MessagePriorityToString(uint8_t aPriority);
100
    static const char *RadioTypeToString(const otHistoryTrackerMessageInfo &aInfo);
101
    static const char *MessageTypeToString(const otHistoryTrackerMessageInfo &aInfo);
102
};
103
104
} // namespace Cli
105
} // namespace ot
106
107
#endif // OPENTHREAD_CONFIG_HISTORY_TRACKER_ENABLE
108
109
#endif // CLI_HISTORY_HPP_