SIMULINK_ADC  1.0
Приём данных от АЦП
main.cpp
Go to the documentation of this file.
1 
2 /**
3 
4  \mainpage Программа приёма данных от АЦП
5 
6  \section Main Основные функции и классы:
7 
8  <list type="unnumbered">
9  <item> BRDC_main() - точка входа
10  <item> TF_SimulinkAdc - основной класс теста
11  <item> TF_SimulinkShared - обмен с Simulink через разделяемую память
12  <item> TL_SharedMemoryWrapper - управление разделяемой памятью
13  <item> TF_BaseSource - базовый класс источника сигналов
14  <item> TF_SourceImit - источник данных - имитатора
15  <item> TF_SimulinkAdc - источник данных - модуль АЦП
16  </list>
17 
18 
19 */
20 
21 #include "stdafx.h"
22 #include <locale.h>
23 
24 #include "ConsoleTestApi.h"
25 #include "TableApi.h"
26 
27 #include "CL_AMBPEX.h"
28 
29 #include "TF_Test.h"
30 #include "TF_SimulinkAdc.h"
31 
32 
33 U08 g_isTStudio = 0;
34 
35 //
36 //=== Console
37 //
38 HANDLE hConsoleOut;
39 
40 
41 int BRDC_main(int argc, BRDCHAR* argv[])
42 {
43 
44  int isFirstCallStep=1;
45  COORD rCursorPosition;
46 
47  // анализ командной строки
48  setlocale( LC_ALL, "Russian" );
49 
50  //=== Console Settings
51  {
52  SMALL_RECT rWindow;
53  COORD rCoord;
54  BOOL bret;
55  CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
56 
57  hConsoleOut = GetStdHandle( STD_OUTPUT_HANDLE );
58 
59  GetConsoleScreenBufferInfo(hConsoleOut, &csbiInfo);
60 
61  rCoord=csbiInfo.dwSize;
62  rCoord.X=120;
63 
64  rWindow=csbiInfo.srWindow;
65  rWindow.Right = rCoord.X-1;
66 
67 
68  bret=SetConsoleScreenBufferSize(hConsoleOut, rCoord);
69  bret=SetConsoleWindowInfo( hConsoleOut, TRUE, &rWindow );
70  }
71 
72 
73  char *asColumnName[256] = {" TEST_NAME ", " S0 ", " S1 ", " S2 ", " S3 ", " S4 ", " S5 ", " S6 ", " S7 " };
74 
75  int i, j, k;
76 
78 
79  // Разбор командной строки
80 
81  TParse arParse[] = {
82  {_BRDC("tstudio"), &g_isTStudio, PARSE_CMDLINE_DEC }
83  };
84 
85 
86  int nCnt = sizeof(arParse)/sizeof(TParse);
87 
88  ParseCommandLine(argc, argv, arParse, nCnt);
89 
90  printf("LOG:Start test.\n");
91 
93 
94  TF_Test *pTest=NULL;
95  TF_Test *pTest2=NULL;
96 
97 
98 
99  try
100  {
101  int ret;
102 
103 
104  CL_AMBPEX *pBrd = NULL;
105 
106 
107  pTest = new TF_SimulinkAdc( argc, argv );
108  pTest2 = NULL;
109 
110 
111  pTest->Prepare();
112  if( pTest2 )
113  pTest2->Prepare();
114 
115 
116 
117  CreateTable(asColumnName, 9, g_isTStudio);
118 
119  Sleep( 10 );
120  pTest->Start();
121  Sleep( 10 );
122  if( pTest2 )
123  pTest2->Start();
124 
125 
126  //int key;
127  for( ; ; )
128  {
129  if( kbhit_ex( g_isTStudio ) )
130  {
131  int key=_getch();
132  if( key==0x1B )
133  {
134  printf("LOG:Stop test.\n");
135  pTest->Stop();
136  if( pTest2 )
137  pTest2->Stop();
138  BRDC_printf( _BRDC("\n\nОтмена\n") );
139  Sleep( 100 );
140  }
141 
142 
143 
144  }
145  ret=pTest->isComplete();
146  if( ret )
147  {
148  BRDC_printf( _BRDC("\n\nВыход\n") );
149  if( pTest2 )
150  {
151  ret=pTest2->isComplete();
152  if( ret )
153  break;
154  } else
155  {
156  break;
157  }
158 
159  }
160 
161 
162 
163  pTest->Step();
164  if( pTest2 )
165  pTest2->Step();
166  Sleep( 100 );
167  }
168  pTest->GetResult();
169  if( pTest2 )
170  pTest2->GetResult();
171 
172 
173  delete pTest; pTest=NULL;
174  delete pTest2; pTest2=NULL;
175 
176  //delete pBrd; pBrd=NULL;
177 
178  }
179  catch( BRDCHAR* str )
180  {
181  BRDC_printf( _BRDC("ERROR: %s \n"), str );
182  }
183  catch( ... )
184  {
185  BRDC_printf( _BRDC("ERROR: Неизвестная ошибка выполнения программы\n") );
186  }
187 
188 
189  if( 0==g_isTStudio )
190  {
191  printf( "\n Press any key\n" );
192  _getch();
193  }
194 
196 
197  return 0;
198 }
199 
virtual int isComplete(void)=0
Definition: TF_Test.h:5
void StartSignal(int isTStudio)
virtual void Stop(void)=0
Работа с аппаратным модулем через библиотеку BARDY.
Definition: CL_AMBPEX.h:23
virtual void Step(void)=0
void StdoutFlushAndSetBufNull()
HANDLE hConsoleOut
Definition: main.cpp:38
virtual void Prepare(void)=0
virtual void Start(void)=0
virtual void GetResult(void)=0
void StopSignal(int isTStudio)
U08 g_isTStudio
Definition: main.cpp:33
void ParseCommandLine(int argc, BRDCHAR *argv[], TParse arParse[], int nCnt)
int BRDC_main(int argc, BRDCHAR *argv[])
Definition: main.cpp:41
S32 CreateTable(char *pColumnName[], U32 nCount, U08 isTStudio)
Definition: TableApi.cpp:25
int kbhit_ex(int isFlg)