Advanced Robot Control System  5.1-REV.51SF170515
ARCSscreen.hh
[詳解]
1 //
7 // Copyright (C) 2011-2017 Yuki YOKOKURA
8 // This program is free software;
9 // you can redistribute it and/or modify it under the terms of the FreeBSD License.
10 // For details, see the License.txt file.
11 
12 #ifndef ARCSSCREEN
13 #define ARCSSCREEN
14 
15 #include <ncurses.h>
16 #include "ConstParams.hh"
17 
18 // 前方宣言
19 namespace ARCS {
20  class VariableParams;
21  class CuiPlot;
22 }
23 
24 namespace ARCS { // ARCS名前空間
26  class ARCSscreen {
27  public:
28  ARCSscreen(void);
29  ~ARCSscreen(void);
30  enum ARCScmd {
36  };
37  enum ARCSphase {
41  };
42  void PrintValue(VariableParams* VarParams); // 数値とグラフの描画を行う
43  enum ARCScmd CommandInput(ARCSphase phase); // 指令入力画面の描画と入力をする関数
44  void Start(void); // 開始画面描画
45  void Stop(void); // 終了画面描画
46  static void Refresh(void); // ARCS画面更新
47  static void ShowEmergencyWindow(const std::string& msg, const std::string& file, int line);
48  // 非常停止ウィンドウを表示する関数 msg : メッセージ, file : 該当ファイル名, line : 該当行番号, desc : 詳細な記述
49 
50  private:
51  ARCSscreen(const ARCSscreen&); // コピーコンストラクタ使用禁止
52  const ARCSscreen& operator=(const ARCSscreen&); // 代入演算子使用禁止
53  WINDOW* MainScreen; // WINDOWポインタ
54  int VERTICAL_MAX; // [文字] 画面最大高さ
55  int HORIZONTAL_MAX; // [文字] 画面最大幅
56  FrameGraphics* FG; // フレームバッファへのポインタ
57 
58  // 各プロット用のポインタ
59  CuiPlot* PlotA; // プロットA
60  CuiPlot* PlotB; // プロットB
61  CuiPlot* PlotC; // プロットC
62  CuiPlot* PlotD; // プロットD
63 
64  void DrawWaves(VariableParams* VarParams); // プロットの描画
65  static void AddHLine(int X1, int X2, int Y); // 水平罫線の描画
66  static void AddVLine(int Y1, int Y2, int X); // 垂直罫線の描画
67  void PrintScreen(void); // 画面の描画を行う 但し数値の描画は行わない
68  void OperationIndic(bool SW); // 「IN OPERATION」の描画を制御する関数
69  void StorageIndic(bool SW); // 「DATA STORAGE」の描画を制御する関数
70  void NetLinkIndic(bool SW); // 「NETWORK LINK」の描画を制御する関数
71  void InitIndic(bool SW); // 「INITIALIZATION」の描画を制御する関数
72  enum command_id {
76  };
77  enum text_color {
89  };
90  void StartCommand(enum command_id command);
91  void ExitCommand(enum command_id command);
92  void StopCommand(enum command_id command);
93  void DiscExitCommand(enum command_id command);
94  void SaveExitCommand(enum command_id command);
95  void CommandPrint(ARCSphase phase, int* count);
96  void CommandPrintInit(ARCSphase phase, int* count);
97  static void StatusIndic(int y, int x, double Iref, double Irat, double Imax); // モータ状態表示
98  void MessageText(const char* const Text, int color); // ARCS画面一番下にメッセージを表示する関数
99  void FinalLine(void); // 最後の行にカーソルを移動させる関数
100  };
101 }
102 
103 #endif
104 
void PrintScreen(void)
Definition: ARCSscreen.cc:224
CuiPlot * PlotD
Definition: ARCSscreen.hh:62
~ARCSscreen(void)
RCS画面表示の消去
Definition: ARCSscreen.cc:164
static void AddHLine(int X1, int X2, int Y)
Definition: ARCSscreen.cc:206
FrameGraphics * FG
Definition: ARCSscreen.hh:56
Definition: ARCSscreen.hh:74
Definition: ARCSscreen.hh:73
void SaveExitCommand(enum command_id command)
Definition: ARCSscreen.cc:495
static void StatusIndic(int y, int x, double Iref, double Irat, double Imax)
Definition: ARCSscreen.cc:592
Definition: ARCSscreen.hh:83
Definition: ARCSscreen.hh:86
Definition: ARCSscreen.hh:84
Definition: ARCSscreen.hh:34
ARCS状態定義
Definition: ARCSscreen.hh:38
WINDOW * MainScreen
Definition: ARCSscreen.hh:53
Definition: FrameGraphics.hh:25
void InitIndic(bool SW)
Definition: ARCSscreen.cc:439
static void AddVLine(int Y1, int Y2, int X)
Definition: ARCSscreen.cc:215
const ARCSscreen & operator=(const ARCSscreen &)
ARCSscreen(void)
画面描画の初期化と準備を行う
Definition: ARCSscreen.cc:20
ARCScmd
Definition: ARCSscreen.hh:30
Definition: ARCSscreen.hh:32
Definition: ARCSscreen.hh:78
ARCSphase
Definition: ARCSscreen.hh:37
void FinalLine(void)
Definition: ARCSscreen.cc:622
Definition: ARCSscreen.hh:81
void Stop(void)
Definition: ARCSscreen.cc:585
void NetLinkIndic(bool SW)
Definition: ARCSscreen.cc:427
int VERTICAL_MAX
Definition: ARCSscreen.hh:54
Definition: ARCSscreen.hh:85
定数値格納用クラス ARCSに必要な定数値を格納します。
void CommandPrint(ARCSphase phase, int *count)
Definition: ARCSscreen.cc:531
int HORIZONTAL_MAX
Definition: ARCSscreen.hh:55
void StorageIndic(bool SW)
Definition: ARCSscreen.cc:413
Definition: ARCSscreen.hh:35
void StopCommand(enum command_id command)
Definition: ARCSscreen.cc:473
static void ShowEmergencyWindow(const std::string &msg, const std::string &file, int line)
Definition: ARCSscreen.cc:627
enum ARCScmd CommandInput(ARCSphase phase)
Definition: ARCSscreen.cc:506
Definition: CuiPlot.hh:23
void DiscExitCommand(enum command_id command)
Definition: ARCSscreen.cc:484
Definition: ControlFunctions.hh:17
void StartCommand(enum command_id command)
Definition: ARCSscreen.cc:452
void OperationIndic(bool SW)
Definition: ARCSscreen.cc:401
Definition: ARCSscreen.hh:79
CuiPlot * PlotC
Definition: ARCSscreen.hh:61
Definition: ARCSscreen.hh:39
Definition: ARCSscreen.hh:33
Definition: ARCSscreen.hh:80
CuiPlot * PlotA
Definition: ARCSscreen.hh:59
Definition: VariableParams.hh:23
Definition: ARCSscreen.hh:88
CuiPlot * PlotB
Definition: ARCSscreen.hh:60
void MessageText(const char *const Text, int color)
Definition: ARCSscreen.cc:609
Definition: ARCSscreen.hh:75
void ExitCommand(enum command_id command)
Definition: ARCSscreen.cc:462
command_id
Definition: ARCSscreen.hh:72
void Start(void)
Definition: ARCSscreen.cc:573
ARCS画面描画クラス
Definition: ARCSscreen.hh:26
void PrintValue(VariableParams *VarParams)
Definition: ARCSscreen.cc:347
void CommandPrintInit(ARCSphase phase, int *count)
Definition: ARCSscreen.cc:554
Definition: ARCSscreen.hh:82
void DrawWaves(VariableParams *VarParams)
プロットの描画
Definition: ARCSscreen.cc:182
text_color
Definition: ARCSscreen.hh:77
static void Refresh(void)
Definition: ARCSscreen.cc:618
ARCS指令定義
Definition: ARCSscreen.hh:31
Definition: ARCSscreen.hh:40
Definition: ARCSscreen.hh:87