MWM5 Library
0.4
0.4
  • The MWM5 Library
  • Changes & Download
  • License
  • Getting started
    • Environment
    • SDK
    • hardware
    • examples
      • AppTwelite_Recv
      • PAL_Recv
    • Using Library
      • Parser
      • Terminal
  • References
    • Parser
      • TWESERCMD
        • IParser
        • AsciiParser
      • TWEFMT
        • TwePacket, spTwePacket
          • E_PKT
          • idenify_packet_type()
          • newTwePacket()
          • refTwePacket()
        • Packet Types
          • TwePacketTwelite
            • DataTwelite
          • TwePacketPal
            • DataPal
            • E_PAL_PCB
            • PalBase
              • PalMag
              • PalAmb
              • PalMot
    • Terminal
      • TWETERM
        • ESC Sequence
        • TermAttr
        • ITerm
        • TWETerm_M5_Console
      • TWEFONT
        • FontDef
        • createFont???()
        • drawChar()
        • queryFont()
    • Basics
      • TWE
        • IStreamOut
        • Print Formatted
      • TWEUTILS
        • FixedQueue
        • SimpleBuffer
          • SmplBuf_Byte
GitBook提供
このページ内
  • メソッド
  • Parse(), operator << ()
  • state()
  • operator bool(), is_complete()
  • length()
  • operator[]()
  • get_payload()
  • reinit()
  • operator << ()
  • メソッド
  • _u8Parse()
  • _vOutput()
  • 状態
PDFとしてエクスポート
  1. References
  2. Parser
  3. TWESERCMD

IParser

パーサーの基底クラス

パーサーオブジェクトに1バイトずつ電文を投入することで、電文系列を解釈する状態遷移マシンです。

メソッド

Parse(), operator << ()

IParser& Parse(uint8_t u8b)
IParser& operator << (char_t c)

パーサーに1バイト入力します。入力のたびにパーサーの状態が変化し、パーサーの解釈が完了するとstate()がE_TWESERCMD_COMPLETEに変化し解釈完了状態となります。

state()

uint8_t state()

パーサーの状態を取得します。

operator bool(), is_complete()

operator bool()
bool is_complete()

パーサーの状態がE_TWESERCMD_COMPLETEの場合trueになります。

length()

uint16_t length()

パーサーで解釈済みのバイト列のデータ長を返します。

operator[]()

uint8_t operator[](int i)

パーサーの解釈済みのバイト列にアクセスします。

get_payload()

SmplBuf_Byte& get_payload()

パーサーの解釈済みのバイト列を格納した配列クラスSmplBuf_Byteを参照します。

reinit()

virtual void reinit()

パーサーの解釈途中の内容を破棄し、新たな解釈を始めます。

operator << ()

IStreamOut& operator << (TWE::IStreamOut& lhs, IParser& rhs)
IStreamOut& operator << (TWETERM::ITerm& lhs, IParser& rhs)

IStreamOutをベースクラスにもつストリームオブジェクトに、書式出力します。

メソッド

_u8Parse()

virtual uint8_t _u8Parse(char_t u8b) = 0

1バイト入力して解釈を進める仮想関数です。派生クラスにより実装されます。

_vOutput()

virtual inline void _vOutput(SmplBuf_Byte& bobj, IStreamOut& p) = 0

バイト配列bobjに格納されるバイト列に対応する書式をストリームpに出力する仮想関数です。派生クラスにより実装されます。

状態

状態名

値

状態

E_TWESERCMD_EMPTY

0

解釈前で、まだ系列のヘッダも認識できていない

1..0x7F

解釈中

E_TWESERCMD_COMPLETE

0x80

系列が正しく解釈できた

E_TWESERCMD_ERROR

0x81

系列の解釈にエラーがあった

E_TWESERCMD_CHECKSUM_ERROR

0x82

系列は得られたがチェックサムエラーだった

前へTWESERCMD次へAsciiParser

最終更新 5 年前