Raskruti-igru.ru

Передача данных по радиоканалу

Организация рабочего места и безопасность проведения тестирования

int CheckCommRequest(char *DATA) // Проверка корректности номера

// объекта связи (парохода), по

// которому происходит связь с данным

// объектом

{

int j=0,tmp;

for(j=0;DATA!=';';)

{

tmp = DATA;

if(!(tmp>='0' && tmp<='9')) // цифры не могут быть кодом объекта

{

SendHostError(11,tmp); /* ERR;01.1;ID WRONG DIGIT (%c),ID */

return 1;

}

CALL_ID = tmp;

j++;

if(j>9) break;

}

CALL_ID=0;

if(j!=4 && j!=5 && j!=9) /* incorrect ID */ // символ ';' в коде должен быть // третьим, четвертым или восьмым

{

SendHostError(12,j);

return 1;

}

return 0; // проверка успешна, возврат 0.

}

/*-------------------------------------------------------------*/

// массив названий команд для функции SendCommandHost(char *cmd, .)

char *cmds =

{

"TXT","ARQ","CFE","SFE","SET", /* 0 . 4 */

"STA","INI","DEB","DBG","DIA", /* 5 . 9 */

"FRE","STB","TST","STR","FCC", /* 10 .14 */

NULL

};

int CheckCommRequest(char *DATA);

/*-------------------------------------------------------------*/

Программа модуляции

За основу данного способа модуляции взята - частотная модуляция с использованием протокола морского телеграфа NBDP ( narrowband direct printing) - узкополосное буквопечатанье. В основе лежит таблица кодовых значений сиволов, которые представляются в виде комбинации 1 и 0 и после модулируются с соответственно частотами 1615 Hz и 1785 Hz. ( таблица символов в файле nbdp_table.c ).

Mod.c

// Подключаем заголовочные файлы и объявляем локальные и глобальные // переменные

#include <drivers.h>

#include <template.h>

#include <nbdp.h>

/*-------------------------------------------------------------*/

/*#define OUT_KOEFF 0x6000*/

#ifdef RX_TO_TX_

extern int RX_TO_TX;

#endif

/*-------------------------------------------------------------*/

int PH_ACC,TMP_PH_ACC;

int PH_INC;

int mod_ready=1;

int BITTIME=1;

int bits_left;

int out_data;

volatile int l_out,r_out;

extern int FDIV,FS_PTT_OFF;

int dbg_cntr;

/*-------------------------------------------------------------*/

/* MODULATOR */

/*-------------------------------------------------------------*/

extern void Timing(void);

void modulator(void)

{

// Возможна работа в тестовом режиме.

if(SelfTest) goto test_modes;

FDIV++;

// через 10 мс обнуление отсчетов и посылка в хост синхронизирующего // сигнала цикла ARQ.

if(FDIV==80) {FDIV=0;NBDP_THR_TX();}

#ifdef RX_TO_TX_

tx_buf = RX_TO_TX;

tx_buf = RX_TO_TX;

return;

#endif

// Проверка нужна ли модуляция, если нет то возврат

if(!Modulator_ON)

{

PH_ACC = 0;

return;

}

restart:

if(mod_ready)

{

tx_buf = tx_buf = 0;

if(FS_PTT_OFF) // выключение модуляции

{

FS_PTT_OFF=0;

PTT_OFF();

}

return;

}

test_modes:

BITTIME--;

if(BITTIME==0)

{

/*=== determine the new bit from out byte ===*/

// Режим реальной работы

if(!SelfTest) out_data <<= 1; /* 7 bit mode */

if(out_data & 0x80) /* MARK */

{

PH_INC = MARK_INC;

asm("

#define PFDATA 0x3fe5

ar = b#0000000001000000; /* set 1 PF6/TLG OUT */

ay1 = dm(PFDATA);

ar = ar or ay1;

dm(PFDATA) = ar;");

}

else /* SPACE */

{

PH_INC = SPACE_INC;

asm("

ar = b#1111111110111111; /* reset 1 PF6/TLG OUT */

ay1 = dm(PFDATA);

ar = ar and ay1;

dm(PFDATA) = ar;");

}

// Тестовый режим, работа в 8-битном режиме

if(SelfTest) out_data <<= 1;

BITTIME = BITLENGTH;

bits_left--;

if(bits_left<0)

{

mod_ready=1;

modulating();

goto restart;

}

else

{

/* blink by PF7 as syncro_out */

asm("

ar = dm(PFDATA);

ar = tglbit 7 of ar;

dm(PFDATA) = ar; ");

/* -------------------------- */

}

}

/*asm ("dis m_mode;");*/

PH_ACC += PH_INC;

l_out = sin_i(PH_ACC);

tx_buf = l_out; // выдача результатов в порт ( связь с кодеком)

}

/*-------------------------------------------------------------*/

void modulating(void)

{

if(SelfTest)

{

if(SelfTest==1) /* space */

{

out_data = 0;

}

else if(SelfTest==2) /* mark */

{

out_data = 0xFF;

}

else if(SelfTest==3) /* dot */

{

/* 10101010 */

out_data = 0xAA;

}

else if(SelfTest==4) /* big dot */

{

/* 11110000 */

out_data = 0xF0; Перейти на страницу: 1 2 3 4 5 6 7 8

Советуем почитать:

Проектирование устройства преобразования и воспроизведения музыкальных звуков Для определения необходимой архитектуры разрабатываемого программно-аппаратного средства, необходимо проанализировать цель и особенности его применения. Основной целью применения разраба ...

Проект внедрения волоконно-оптической линии связи между УТС Югорскгазтелеком и 5 городскими АТС Последние десятилетия двадцатого века характеризовались бурным ростом спроса на услуги связи и передачи информации. Согласно статистике объем передаваемой в мире информации и оказываемых ...

Источники питания электронных устройств Применение различного рода электронных устройств для управления производственными процессами подразумевает использование электрической энергии определенного вида для их питания (постоян ...