11. Шаблон программы.

Для написания тестовых программ не обязательно писать всю программу с нуля самому. В большинстве случаев можно воспользоваться шаблоном и, проведя некоторые изменения, быстро и безболезненно создать тестовую программу. Предыдущие главы содержат полное описание всех конструкций, использованных в программе, поэтому ниже приведён только её текст, в принципах её работы следует разобраться самостоятельно:

new   //  новая программа
////////////////////////////////////////////////////////////////
string  Dev="Vector"       // наименование блока
string  SubDev="Demo board"  // наименование платы (субблока)
string  Date="30.06.08"      // дата разработки программы
string  Name="Viktor"        // разработчик программы
////////////////////////////////////////////////////////////////
init enall  //инициализация стенда
{}=la dprb  //режим логического анализатора, разрешить работу пробника
exe "base.crt"  //переименовать каналы в соответствии с наклейкой
{^}=nf,x start(2) sound(2000,100) cls(177) //все каналы как входы
//
@fr=2000000    //частота выдачи тестовых воздействий (Гц)
@start=1024*8  //число тактов последовательности
{^} = db>"Start" //имя файла базы данных (Start -потом изменить)
@dbp=5  //  число проходов теста для анализа результатов
//==============================================================
def Terrors=0,Tst    //вспомогательные переменные для программы
string ChList,Stmp1,Stmp2,Signat //вспомогательные переменные для программы
string rn="\r\n" //вспомогательные переменные для программы
//==============================================================
type (10,15)
color (15,1 )
window (1,2,79,8)
"        Блок: " Dev     rn
"       Плата: " SubDev  rn
"        Дата: " Date    rn
" Разработчик: " Name    rn
color(10)
" Нажмите любую клавишу ..."  pause  "\r                 "
close
//==============================================================
type (10,15)
color (15,3)
window (20,10,79,22)
   frame (0b01110000)
  
//  название тестов (Test #1) - потом уточнить 
//  название тестов (Test #2) - потом уточнить 
     case " ~ Test #1        ~\r\n" test1  continue
     case " ~ Test #2        ~\r\n" test2  continue
//     case " ~ Test #3        ~\r\n" test3  continue
  //   case " ~ Test #4        ~\r\n" test4  continue
    // case " ~ Test #5        ~\r\n" test5  continue
     case " ~ Exit           ~   "  errors break
   endf
close
exit
//==============================================================
//  Вспомогательные подпрограммы
errors:
  type (10,15)
  if Terrors==0
          color(15,2) window (30,8,63,10)
        sound(1000,300) sound(3000,200)
          endif
  if Terrors!=0
          color(15,4) window (30,8,63,10)
          sound(3000,200) sound(1000,300)
          endif
    " Общее число ошибок: " Terrors " "
    pause
  close
return
//============================= Фрагмент программа для теста 1 ===============      
test1: window(2,3,70,5)
// название теста (нужно уточнить при необходимости
       "Выполняется тест #1 " 
       close
       screen(2,5,70,19) 
//**************************************************************
   {03b,04b,05b}=nf,ct   // Для примера //...
//   {03b,04b,05b,prb}=lp   // Для примера //...
   ChList="03b,04b,05b"  // Для примера // максимум 16 входов-выходов
   Signat="cmpeic"       // Для примера
//**************************************************************
Control  close return
//=====================Конец фрагмента программы для теста #1 =======      

//============================= Фрагмент программа для теста 1 ======      
test2: window(2,3,70,5)
       "Выполняется тест #2 " 
       close
       screen(2,5,70,19) 
//**************************************************************
//   {03b,04b,05b}=nf,ct   // Для примера //...
//   ChList="03b,04b,05b"  // Для примера // максимум 16 входов-выходов
//   Signat="cmpeic"       // Для примера
//**************************************************************
Control  close return
//========================== Конец фрагмента программы для теста #2  ========      

// test3:
// test4:
// test5:


//  Вспомогательные подпрограммы
 
Control:
ifs ChList=="" return
//
Stmp1= "{"+ChList+"}="+Signat #Stmp1
if @dberror!=0
  Stmp2= "{"+ChList+",prb}=lp"
   @dberror=0 Terrors=Terrors+1
  #Stmp2 
endif 
return