-
02.02.2011, 05:56 #1
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
Вывод данных из Delphi
Всем привет!
Дано:
1. Есть программка, написанная в Делфи7.
2. В программке используются несколько переменных (9...12), имеющих числовое значение, не превышающее 64.
Задачи:
1. Вывести эти переменные через USB-порт во внешнее устройство-интерфейс, на выходах которого будут представлены все переменные в двоичном коде с TTL-уровнями.
2. Нужна прога вывода переменных на USB-порт.
3. Нужен сам интерфейс.
Пояснения:
По п.2 Задач - ссылки на похожие исходники.
По п.3 Задач - ссылки на методы/подходы/варианты. Интерфейс должен иметь количество выходов, равное количеству перемнных (9...12). Каждый из выходов должен представлять собой "шину" из пяти проводов: дата1, дата2, дата4, дата8 и общий провод.
Вот такая задача...Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
-
02.02.2011, 06:38 #2
- Регистрация
- 11.03.2006
- Адрес
- Гродно
- Возраст
- 60
- Сообщений
- 2,016
- Поблагодарили
- 359
- Поблагодарил
- 23
-
02.02.2011, 06:45 #3
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
Привет, Игорь!
Во, заметил .
Тут я чуток намудрил - хотел упростить ТЗ.
Там все шины 4-хразрядные, а две - 6-тиразрядные.
Мне важно понять принципы вывода данных из проги и преобразование их сначала из десятичной формы в двоичную - внутри тела самой проги, потом вывести значение в интерфейс для получения ТТЛ выходов...Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
-
02.02.2011, 06:59 #4
- Регистрация
- 12.03.2007
- Адрес
- Грац, Австрия - Санкт-Петербург, Россия
- Возраст
- 60
- Сообщений
- 1,749
- Поблагодарили
- 375
- Поблагодарил
- 160
В два полубайта передавать - единственный вариант. Сначала младший, а затем старший. Поскольку всего 5 линий данных,
включая землю. То есть будет так для 64-х - 01000000, 0100 - старший, а 0000 - младший.
Если перевести десятичное в двоичную, код ниже:
function DecimalToBinary(var x: integer): string;
var result: string;
y: integer;
begin
result := ''; y := x;
Repeat
if (y mod 2 = 0) then result := '0' + result
else result := '1' + result;
y := y div 2;
Until y < 1;
DecimalToBinary := result;
end;Последний раз редактировалось RX1AL; 02.02.2011 в 07:00. Причина: Добавлено сообщение
73! Михаил (OE6MAF) :: HB9/OE6MAF, DL/OE6MAF
-
02.02.2011, 07:11 #5
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
Привет, Михаил!
Спасибо!
Хотя с этим пока сложностей не возникает.
Основная сложность пока - это вывод.
Тем не менее, большое спасибо за инфо.
А мучать вопросами ещё буду ...
Я тут Делфи пять дней назад "открыл" для себя, но основное тело проги уже почти готово.Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
-
02.02.2011, 08:17 #6
- Регистрация
- 22.01.2004
- Адрес
- г. Кировск, 40 км на восток от Питера
- Возраст
- 44
- Сообщений
- 266
- Поблагодарили
- 41
- Поблагодарил
- 51
А че нельзя в USB воткнуть FT232RL? На компе получим виртуальный ком порт, в который и выводить данные (примеров для рабоыт с ком портом из винды в инете навалом). С другой стороны имеем выход с ТТЛ уровнями.
Петр (UA1CBM)
Добро пожаловать!
-
02.02.2011, 08:59 #7
-
02.02.2011, 12:06 #8
- Регистрация
- 17.08.2002
- Адрес
- ko85mo, RDA MO-56
- Возраст
- 59
- Сообщений
- 2,983
- Поблагодарили
- 396
- Поблагодарил
- 158
Во всей этой задачке самое гнусное - это написание драйвера для устройства, которое будет подключено к шине USB и является получателем информации.
На сегодняшний день:
1. Без дополнительных внешних устройств проблему не решить.
2. Если есть допустройство, то к нему нужен драйвер с соответствующим API.
3. Если Ваше устройство может быть подключено к USB-шине (фактически имеет в своем составе допустройство), то ему требуется драйвер и у драйвера д/б API, либо он должен поддерживать функции типа DeviceIoControl.
Короче - исходных данных мало. Это у Вас гипотетическая задача из института, где Вам надо просто показать принцип или реальное задание на работе?Михаил, RK3FW
-
02.02.2011, 13:23 #9
- Регистрация
- 12.03.2007
- Адрес
- Грац, Австрия - Санкт-Петербург, Россия
- Возраст
- 60
- Сообщений
- 1,749
- Поблагодарили
- 375
- Поблагодарил
- 160
Бек, да не за что... Хочу дать вам совет, если вы только "пять дней назад" открыли для себя дельфи. Оставьте ее,
пока. Откройте для себя .NET Micro Framework и Netduino и поймете, насколько все просто и удобно. Можете здесь
почитать об этом:
http://www.microsoft.com/netmf/default.mspx - .NET Micro Framework
http://netduino.com/ - Open-source electronics platform
http://www.netduino.com/netduinoplus/specs.htm - Netduino Plus
http://netduino.com/projects/ - примеры различных проектов
Нет абсолютно никаких проблем, сами киты стоят очень дешево, среда разработки удобна, есть средства для отладки.
Будут вопросы по данному топику (см. выше), готов дать ответы, так как занимаюсь этим достаточно давно.73! Михаил (OE6MAF) :: HB9/OE6MAF, DL/OE6MAF
-
03.02.2011, 07:30 #10
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
Всем привет!
Спасибоа за "наводку"! Будем посмотреть...
Так же спасибо! Очень интересно, но нужно разбираться...
Нет, это конкретная идея - связать трансивер, РА, антенный тюнер и коммутатор антенн с компом.
Спасибо за предложение! Но, основная прога уже написана и даже отлажена.
Чуть позже выложу рисунок, поясняющий исходную задачу и цель, а также скриншот получившегося приложения.Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
-
03.02.2011, 08:26 #11
- Регистрация
- 11.03.2006
- Адрес
- Гродно
- Возраст
- 60
- Сообщений
- 2,016
- Поблагодарили
- 359
- Поблагодарил
- 23
Я бы делал не так... Исходные данные о диапазоне берем (на выбор, исходя из местных условий) - из логгера (COM порт или LPT), снимаем с гнезда трансивера или из потока обмена данными по CAT, заводим в "черную коробочку" с микроконтроллером и разводим на сколь угодно шин. При этом дополнительная прога на компе не нужна вовсе - исходные данные есть откуда взять. А внешняя черная коробочка все-равно нужна, вот на ней и сосредотачиваем свое внимание.
Игорь (EW4DX)
-
03.02.2011, 08:37 #12
-
03.02.2011, 08:38 #13
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
...красным шрифтом выделены "переменные" из моей проги...
Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
-
03.02.2011, 08:41 #14
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
А вот "лицо" получившейся у меня программки...
Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
-
03.02.2011, 08:47 #15
- Регистрация
- 27.12.2002
- Адрес
- Бишкек, Киргизия
- Возраст
- 61
- Сообщений
- 3,059
- Поблагодарили
- 405
- Поблагодарил
- 564
Образец работы в режиме настройки ("Tune")...
Пока и 73! :: Бек, (ех ЕХ8АВ, UM8QDX aka EX1EPC, EX9FF/p)
|
Социальные закладки