roboforum.ru

Технический форум по робототехнике.

Терминал Help !!

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

Re: Терминал Help !!

Сообщение Korbofos » 18 авг 2011, 14:46

Вот оно
Код: Выделить всёРазвернуть
#include <vcl.h>
#include <windows.h>
#include <stdio.h>
#pragma hdrstop

#include "Unit1.h"
unsigned char tx_buffer[3];
unsigned char rx_buffer[3];
unsigned char status_rx_buffer;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void Open_Port (char name)
{
char port_name[8];
sprintf(port_name, "COM%d", name);
hCom = CreateFile(port_name ,GENERIC_READ | GENERIC_WRITE,0,NULL,
OPEN_EXISTING,0, NULL);
if( hCom == INVALID_HANDLE_VALUE )
{
ShowMessage("Com port error");
CloseHandle(hCom);
}
else
{
SetupComm(hCom,128,128);
GetCommState(hCom, &dcb);
dcb.fOutxCtsFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fInX = FALSE;
dcb.fOutX = FALSE;

dcb.BaudRate = CBR_9600;
dcb.fBinary = TRUE;
dcb.fAbortOnError = FALSE;
dcb.fNull = FALSE;
dcb.ByteSize = 8;
dcb.fParity = NOPARITY;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if (!SetCommState(hCom, &dcb))
{
CloseHandle(hCom);
ShowMessage("Com port error");
}

comm_timeouts.ReadIntervalTimeout = 5000;
comm_timeouts.ReadTotalTimeoutMultiplier = 5000;
comm_timeouts.ReadTotalTimeoutConstant = 5000;
comm_timeouts.WriteTotalTimeoutMultiplier = 5000;
comm_timeouts.WriteTotalTimeoutConstant =5000;
SetCommTimeouts(hCom, &comm_timeouts);

PurgeComm(hCom, PURGE_RXCLEAR);
PurgeComm(hCom, PURGE_TXCLEAR);
}
}
//--------------------------------------------------------------------------
void Close_Port(void)
{
CloseHandle(hCom);
}
//----------------------------------------------------------------------------

char Write_Port (unsigned char *buf, size_t raz)
{
DWORD dwWritten;
WriteFile(hCom,buf,raz,&dwWritten,NULL);
if(raz==dwWritten)
{return 1;}
else
{return 0;}
}

//-----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (ComboBox1->ItemIndex==0)
{
ShowMessage("Select COM Port");
return;
}
else
{
Open_Port(ComboBox1->ItemIndex);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close_Port();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
if (!hCom)
{
ShowMessage("First COM port connect");
return;
}
tx_buffer[0]=1;
tx_buffer[1]=3;
tx_buffer[2]=150;

if(Write_Port(tx_buffer,3)==false)
{ShowMessage("error write_port");}

}
Последний раз редактировалось Vooon 18 авг 2011, 18:04, всего редактировалось 1 раз.
Причина: [code=cpp]
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: Терминал Help !!

Сообщение dccharacter » 18 авг 2011, 15:31

Слуш, пихай целый буффер без всяких циклов и ищи проблему в терминале/протеусе. Как вариант попробуй сделать любой порт (например, блютуфный), и сериал-сниффером посмотреть что там улетает в порт у тебя. Либо протестируй настройки протеуса с каким-нибудь софтом заведомо рабочим, типа настрой puTTy на 9600 и проверь - работает ли.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Терминал Help !!

Сообщение Korbofos » 23 авг 2011, 19:33

Спасибо dccharacter!
Подцепил к теминалу монитор ком порта и определил что врёт протез!
Терминал по тихоньку оживает. :)
Вложения
2.JPG
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: Терминал Help !!

Сообщение dccharacter » 25 авг 2011, 15:17

А еще, посмотрев на скриншот, хочу порекомендовать взять orfa-terminal, поставить себе QT и переться - там уже все сделано.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Терминал Help !!

Сообщение Korbofos » 25 авг 2011, 18:47

Так не итересно)
Это пока только рулёжка,а потом туда автоматический режим приделаю.
Тем более, что в контроллере прошивка своя стоит дружить не будет. :pardon:
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: Терминал Help !!

Сообщение dccharacter » 26 авг 2011, 19:40

у меня тоже свой протокол - я допиливал орфу под работу с ТСП/ИП, менял свой протокол... В общем я на ней научился немножко работать с QT, серийным портом, ТСП и т.д. - правда в режиме почти процедурного программирования, но скоро перейду на нрмальный ООП :-) Короче, хороший старт... Спасибо ребятам.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Терминал Help !!

Сообщение Dmitry__ » 26 авг 2011, 23:09

dccharacter писал(а):почти процедурного программирования, но скоро перейду на нрмальный ООП

спасиба, поржал :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Терминал Help !!

Сообщение dccharacter » 27 авг 2011, 02:08

Не, ну а че, читаем пока... Наследование, фигедование.

Пока моих убогих скилов хватает только на это:
Вложения
terminal.jpg
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Терминал Help !!

Сообщение Grem » 27 авг 2011, 11:53

Dmitry__ писал(а):
dccharacter писал(а):почти процедурного программирования, но скоро перейду на нрмальный ООП

спасиба, поржал :D

На самом деле это не смешно, и ведь каждый, кто умеет нарисовать форму в дизайнере и дописать события - считает себя мега программистом :crazy:
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Терминал Help !!

Сообщение dccharacter » 29 авг 2011, 10:49

Че прилезли? Я ж написал - "хороший старт". У меня иллюзий нет, так что отлезьте :no:
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Терминал Help !!

Сообщение =DeaD= » 29 авг 2011, 10:53

Grem писал(а):На самом деле это не смешно, и ведь каждый, кто умеет нарисовать форму в дизайнере и дописать события - считает себя мега программистом :crazy:

Угу, можно еще обсудить сколько людей из считающих себя программистами понимает в таких вещах, как вычислительная сложность алгоритмов и т.п. :) тут то и выяснится, что реальных программистов вообще мало :crazy:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Терминал Help !!

Сообщение Korbofos » 29 авг 2011, 13:05

Я начал изучать программирование для роботостроения, роботомучения :)
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: Терминал Help !!

Сообщение Korbofos » 08 ноя 2011, 08:20

Меня тут сомнения терзают. Как лучше сделать работу радара(servo + sharp)?
Сейчас сделал так: Терминал кидает на контроллер: в какое положение выставить серву с дальномером. МК отвечает положение сервы и показания дальномера. Может лучше запускать функцию на мк двигать серву с дальномером каждые 40 милисекунд на несколько градусов и отправлять на данные ПК? Так сказать для экономии трафика!
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: Терминал Help !!

Сообщение =DeaD= » 08 ноя 2011, 09:11

Korbofos писал(а):Так не итересно)

И вот так уже скоро 10 лет и практически каждый. Итого все топчутся на месте :cry:

Добавлено спустя 59 секунд:
Korbofos писал(а):Может лучше запускать функцию на мк двигать серву с дальномером каждые 40 милисекунд на несколько градусов и отправлять на данные ПК? Так сказать для экономии трафика!

А его реально надо экономить уже, не пролезаете по трафику? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Терминал Help !!

Сообщение Korbofos » 08 ноя 2011, 10:34

=DeaD= писал(а):И вот так уже скоро 10 лет и практически каждый. Итого все топчутся на месте

Согласен с вами.
Но что бы с чего-то готового начать, надо хоть немного разбираться в этом. А я "пришёл сюда" к сожалению нечего не понимал в программировании. Ну вот и разминаюсь так сказать :)

=DeaD= писал(а):А его реально надо экономить уже, не пролезаете по трафику?

Иногда где-то минут через пять работы. Мк начинает отправлять символы не в правильной последовательности,
думаю не успевает что-ли? А так пусть шлёт данные в своём темпе ну и входящего трафика не нужно.
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Пред.След.

Вернуться в Компьютеры в роботостроении

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3