SM_ADC  1.0
Приём данных АЦП через разделяемую память
sm_adc.h
Go to the documentation of this file.
1 /**
2 
3  \mainpage
4 
5  <h2>
6  C++ S-function для приёма данных от АЦП через разделяемую память
7  </h2>
8 
9  ####Входные порты
10  <list type="unnumbered" >
11  <item> START_IN - вход сигнала старта
12  <item> GET_DATA - получение данных
13  </list>
14 
15  ###Выходные порты
16  <list type="unnumbered" >
17  <item> DATA - выход данных, массив 16384 отсчёта, double
18  <item> START_OUT - выход сигнала старта
19  </list>
20 
21  По фронту START_IN происходит передача через разделяемую память сигнала на начало сбора данных,
22  после подтверждения начала сбора данных производится формирование фронта на выходе START_OUT
23 
24  По фронту GET_DATA из разделяемой памяти принимается блок данных и передаётся на выход GET_DATA
25 
26  ### Основные функции и классы:
27  <list type="unnumbered" >
28  <item> BaseBlock - базовый класс для создания S-Function из библиотеки easyLink
29  <item> Block - класс S-Function sm_adc
30  <item> Block::start() - начало сеанса моделирования
31  <item> Block::outputs() - формирование выходных сигналов
32  <item> TF_SimulinkShared - обмен с приложением через разделяемую память
33  <item> TL_SharedMemoryWrapper - управление разделяемой памятью
34  </list>
35 
36 
37  Для реализации S-Function используется библиотека <b>easyLink-3.3.0</b>
38 
39  ### About easyLink-3.3.0
40 
41  easyLink is developed and maintained within the FEMTO-ST Institute located in
42  Besanзon, France and hosted by Renater.
43 
44  easyLink official site is: http://sourcesup.renater.fr/easylink/
45 
46  contact: Guillaume J. Laurent, http://www.femto-st.fr/~guillaume.laurent/
47 
48 
49 
50  */
51 
52 #define S_FUNCTION_NAME sm_adc
53 
54 
55 //------------------------------------------------------------------------------
56 // Specify the number, the type and the sizes of the parameters of the block
57 // A parameter is set to tunable if its values can change during the simulation
58 //
59 // The possible types of the paramaters are:
60 // * 1 for real parameters (scalar or array, use -1 as size to specify
61 // a dynamically dimensioned array)
62 // * 2 for literal string parameters
63 // * 3 for literal identifiers of MATLAB variables
64 //
65 //------------------------------------------------------------------------------
66 #define PARAMETER_NUMBER 2
67 //enum parameterName { PAR1, PAR2, PAR3, PAR4, PAR5, PAR6 };
68 //int parameterType[PARAMETER_NUMBER] = { 1, 1, 1, 1, 2, 3 };
69 //int parameterRows[PARAMETER_NUMBER] = { 1, 2, 1, -1, -1, -1 };
70 //int parameterCols[PARAMETER_NUMBER] = { 1, 3, -1, -1, 1, 1 };
71 //int parameterTunable[PARAMETER_NUMBER] = { 1, 0, 1, 1, 1, 1 };
72 
78 
79 
80 #define INPUT_PORT_NUMBER 2
84 
85 const int blockSize = 16384;
86 
87 //------------------------------------------------------------------------------
88 // Specify the number and the sizes of the output ports of the block
89 //
90 // Use -1 to specify a dynamically dimensioned output signal
91 //------------------------------------------------------------------------------
92 #define OUTPUT_PORT_NUMBER 2
96 
97 //------------------------------------------------------------------------------
98 #include "easylink.h"
99 
100 class TF_SimulinkShared;
101 
102 
103 //! S-Function sm_adc.mex64w
104 class Block : public BaseBlock
105 {
106 
107 private:
108 
109 
112 
115 
117 
118  unsigned indexReq;
119  unsigned indexWr;
120 
123 
125 
126 public:
127 
128  void start();
129 
130  void outputs();
131 
132  void terminate();
133 };
134 
135 //------------------------------------------------------------------------------
136 #include "mdldefinitions.h"
137 
138 //------------------------------------------------------------------------------
Definition: sm_adc.h:73
int flagError
Definition: sm_adc.h:116
#define PARAMETER_NUMBER
Definition: sm_adc.h:66
int parameterRows[PARAMETER_NUMBER]
Definition: sm_adc.h:75
int outputPortRows[OUTPUT_PORT_NUMBER]
Definition: sm_adc.h:94
unsigned indexWr
Definition: sm_adc.h:119
int flagLowVal_0
Definition: sm_adc.h:110
unsigned indexReq
Definition: sm_adc.h:118
outputPortName
Definition: baseblock.h:28
int parameterTunable[PARAMETER_NUMBER]
Definition: sm_adc.h:77
parameterName
Definition: baseblock.h:36
int parameterCols[PARAMETER_NUMBER]
Definition: sm_adc.h:76
#define OUTPUT_PORT_NUMBER
Definition: sm_adc.h:92
void outputs()
Definition: sm_adc.cpp:92
void start()
Definition: sm_adc.cpp:14
void terminate()
Definition: sm_adc.cpp:260
int inputPortCols[INPUT_PORT_NUMBER]
Definition: sm_adc.h:83
S-Function sm_adc.mex64w.
Definition: sm_adc.h:104
int outputPortCols[OUTPUT_PORT_NUMBER]
Definition: sm_adc.h:95
int flagHighVal_0
Definition: sm_adc.h:113
int flagHighVal_1
Definition: sm_adc.h:114
const int blockSize
Definition: sm_adc.h:85
string m_SharedFileName
Definition: sm_adc.h:122
inputPortName
Definition: baseblock.h:20
int parameterType[PARAMETER_NUMBER]
Definition: sm_adc.h:74
Definition: sm_adc.h:93
TF_SimulinkShared * m_pSimulinkShared
Definition: sm_adc.h:124
int m_DataSize
Definition: sm_adc.h:121
int flagLowVal_1
Definition: sm_adc.h:111
int inputPortRows[INPUT_PORT_NUMBER]
Definition: sm_adc.h:82
#define INPUT_PORT_NUMBER
Definition: sm_adc.h:80