ARCS6 AR6-REV.24062600
読み取り中…
検索中…
一致する文字列を見つけられません
ARCSthread.hh
[詳解]
1
8//
9// Copyright (C) 2011-2024 Yokokura, Yuki
10// MIT License. For details, see the LICENSE file.
11
12#ifndef ARCSTHREAD
13#define ARCSTHREAD
14
15#include <pthread.h>
16#include <memory>
17#include <functional>
18#include "ControlFunctions.hh"
19#include "SFthread.hh"
20#include "ARCSmemory.hh"
21
22// 前方宣言
23namespace ARCS {
24 class ARCSassert;
25 class ARCSscrparams;
26 class ARCSgraphics;
27}
28
29namespace ARCS { // ARCS名前空間
31 class ARCSthread {
32 public:
34 ~ARCSthread();
35 void Start(void);
36 void Stop(void);
37 void Reset(void);
38 void SaveDataFiles(void);
39
40 private:
41 ARCSthread(const ARCSthread&) = delete;
42 const ARCSthread& operator=(const ARCSthread&) = delete;
43
44 ARCSassert& ARCSast;
45 ARCSscrparams& ScrPara;
46 ARCSgraphics& Graph;
47 ARCSmemory ExpDatMem;
48
49 ControlFunctions CtrlFuncs;
50 std::array<std::function<bool(const double, const double, const double)>, ARCSparams::THREAD_MAX> CtrlFuncObj;
51 std::array<
52 std::unique_ptr< SFthread<EquipParams::THREAD_TYPE, EquipParams::THREAD_KP> >
53 , ARCSparams::THREAD_MAX> RTthreads;
54
56 enum InfoThreadState {
57 ITS_IDLE,
58 ITS_START,
59 ITS_DSTRCT
60 };
61 InfoThreadState InfoState;
62 pthread_mutex_t InfoMutex;
63 pthread_cond_t InfoCond;
64 pthread_t InfoGetThreadID;
65 static void InfoGetThread(ARCSthread* const p);
66 };
67}
68
69#endif
70
制御用周期実行関数群クラス
データメモリクラス
SCHED_FIFOリアルタイムスレッドクラス(sleep使用不使用テンプレート可変版, 関数オブジェクト版)
ARCS用ASSERTクラス
Definition ARCSassert.hh:21
グラフィッククラス
Definition ARCSgraphics.hh:23
データメモリクラス
Definition ARCSmemory.hh:22
static constexpr size_t THREAD_MAX
リアルタイムスレッド最大数 (変更不可)
Definition ARCSparams.hh:50
ARCS画面パラメータ格納クラス
Definition ARCSscrparams.hh:22
ARCSリアルタイムスレッド管理クラス
Definition ARCSthread.hh:31
void Stop(void)
スレッドを停止する関数
Definition ARCSthread.cc:89
void Start(void)
スレッドを開始する関数
Definition ARCSthread.cc:75
~ARCSthread()
デストラクタ
Definition ARCSthread.cc:61
ARCSthread(ARCSassert &ARCSast, ARCSscrparams &SP, ARCSgraphics &GP)
コンストラクタ
Definition ARCSthread.cc:26
void SaveDataFiles(void)
測定データを保存する関数
Definition ARCSthread.cc:113
void Reset(void)
スレッドをリセットする関数
Definition ARCSthread.cc:107
制御用周期実行関数群クラス 実際の制御プログラムを実行します。
Definition ControlFunctions.hh:28