Usart И Терминал Пк . Общение Пк С Контроллером.

18-04-2014, 13:46 От: admin Посмотрели: 516
Здравствуйте в этой теме хотел поговорить о совместной работе пк и контроллера по RS485. Задача следующая пояснить как организовать список команд в контроллере которые выполняли бы определенные действия после  посылки через терминал Имя этой команды. и получение ответа в конце выполнения. Для начало привожу пример кода

/************************Сравнение массивов************/

bit ArrayCompare (char x[10], char ref[10] ) {

//

char i=0;

char bt=1;

if (x!=0) {

while (ref[i] != '\0') {

if (x[i]==ref[i]) bt=1&&bt;

else bt=0&&bt;

i++;



}

}



if (bt) return 1 ;

if(bt!=1)return 0;





}

/*********** сравниваемые переменные***************** */

char VariableCompare (char x [50]) {

char Bstp=0;

const char

vari[30]={"|WRITE||READ|!"}; команды которые которые доступны через терминал

char numComm=0;

char ty[10];

char i=0;



do {



if (vari[i]=='|' && vari[i+1]=='|') {     если || то +1 к счетчику

numComm++;

}



if (vari[i]=='|' && vari[i+1]!='|') { если |W   (короче если после символа | появляется текст то присвоить этот тест строковому массиву ty[10])

i++;

while (vari[i]!='|'){

ty[10]=vari[i];

i++;

}

}

if (vari[i]=='\0'){      если |!    конец архива команд  вернет 255

Bstp=1;

numComm=255;

}

i++;

}while (ArrayCompare(x[10], ty[10]) ||  Bstp );    Пока Сравниваемые массивы  (тобиш одна из команд контроллера и команда терминала не совпадут  или не дастигнут конец массива команд делать выше сказанную хренатень. )))



return numComm;

}

он не совсем правильно работает .



Логика следующая я получил какую то текстовю  переменную (команду) например "WRITE" из буфера при запуске функциии Variable Compare  эту текстовую команду я должен найти в  "vari[30]" при этом команды в строковом массиве разделены ||  а конец массива |!  сравнивать естественно я должен по буквам начиная с 2 символа в массиве |WRITE||READ|! также должен быть счетчик команд. если команда WRITE есть то возвращает 1 если команда READ есть то возвращает 2  то есть || при переходе этих двух символов счетчик должен увеличиваться на 1 и если сравнение удачно то вернет 2. Может быть кто то по другому делал . все варианты принимаются
Раздел: Алгоритмы

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Usart И Терминал Пк . Общение Пк С Контроллером. все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031