Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
grebljmax
7 / 6 / 3
Регистрация: 07.01.2011
Сообщений: 22
1

Включение проектора через Com порт

08.01.2011, 20:25. Просмотров 1264. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток)

Проблема в следующем, нужно включить проетор через Com порт 1. Пробывал следующим образом-0 реакции. Есть программа Advanced Serial Port Monitor - через нее проектор запускается. Проектор BenQ Projector RS232 code for DDP2000 Version. Просьба посмотреть и исправить то что имеется или предложить что то новое...

Команды монитора

Power Write Turn on 0x06 0x14 0x00 0x03 0x00 0x34 0x11 0x00 0x5C
Turn off 0x06 0x14 0x00 0x03 0x00 0x34 0x11 0x01 0x5D
Read Power status( on/off/cool down) 0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x00 0x5E
Reset Excute 0x06 0x14 0x00 0x03 0x00 0x34 0x11 0x02 0x5E



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
var
 hcom : THandle;
 dcb: TDCB;
 cto: TCommTimeouts;
   KolByte: DWord;
 
 
procedure T_ComPort_OpenPort(PortName: String);
var
  Transmit:array [0..255] of char;
  str : String;
  i,k   : integer;
begin
 if hCom>0 then  Raise Exception.Create('Порт уже инициализирован');
  str:=Form1.Edit1.Text;
if length(str)>2
then
 begin
  hCom:=CreateFile( //uses Windows
                   pchar(PortName), //Имя COM-порта
                   GENERIC_READ or GENERIC_WRITE,
                   0, {exclusive access}
                   nil, {no security attrs}
                   OPEN_EXISTING,
                   0,{not overlapped}
                   0 {hTemplate}
                   );
 if hCom=INVALID_HANDLE_VALUE
 then RaiseLastOSError;
 
 //Выставляем параметры COM-порта
 
 if not GetCommState(hCom,dcb) //uses Windows
 then RaiseLastOSError;
 
 dcb.BaudRate:=CBR_9600;
 dcb.ByteSize:=8;
 dcb.Parity:=NOPARITY;
 dcb.StopBits:=ONESTOPBIT;
 
 if not SetCommState(hCOM,dcb) //uses Windows
 then RaiseLastOSError;
 
 //Выставляем параметры COM-порта
 if not GetCommTimeOuts(hCom,cto) //uses Windows
 then RaiseLastOSError;
 
   cto.ReadIntervalTimeout:=1;
   cto.ReadTotalTimeoutMultiplier:=1;
   cto.ReadTotalTimeoutConstant:=10;
 
   cto.WriteTotalTimeoutMultiplier:=0;
   cto.WriteTotalTimeoutConstant:=0;
 
 if not SetCommTimeOuts(hCom,cto) //uses Windows
   then RaiseLastOSError;
 
  //послать один символ в порт
   k:=0;
   for i:=1 to length(str) do
   if str[i]='#'
   then begin
          transmit[k]:=chr(StrToInt('$'+str[i+1]+str[i+2]));
          showmessage(transmit[k]+' '+IntToStr(ord(transmit[k]))+'  '+IntToStr(k));
          k:=k+1;
        end;
 
     KolByte:=k+1;
   WriteFile(hcom,Transmit,  KolByte,  KolByte,nil);
 //  CloseHandle(hcom);
 
 
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2011, 20:25
Ответы с готовыми решениями:

Lpt порт, включение и отключение питания контакта
Доброго времени суток. Суть в том, что я хочу подключить лампочку к...

Не передает полностью сообщение через COM порт
Товарищи! Помогите пожалуйста. Я написал программу используя BComPort чтобы она...

Управление изображением на мониторе через COM порт
На экране отображается модель пассажирского или грузового лифта,к COM порту...

Включение проектора в c#
Не подскажите пожалуйста, как программно включить\выключить проектор в c#? ...

При подключении проектора к компу через S-Video - изображение плохое и тормозит
Проблема c S-Video: При подключении проектора к компу через S-Video -...

2
Rabbano
2 / 2 / 1
Регистрация: 12.07.2010
Сообщений: 21
10.01.2011, 09:01 2
Я бы для начала что бы не сомневаться задал бы все явным способом.
a : array [0..20] of byte;

a[0]:=$06;
...
a[8]:=$5C;
WriteFile(..., a, 9, Bytes, nil).
Проверяешь на выходе Bytes=9, тогда все в порядке.

И обрати внимание на
dcb.BaudRate:=CBR_9600;
dcb.ByteSize:=8;
dcb.Parity:=NOPARITY;
dcb.StopBits:=ONESTOPBIT;

Они должны быть точными.
0
grebljmax
7 / 6 / 3
Регистрация: 07.01.2011
Сообщений: 22
10.01.2011, 12:31  [ТС] 3
Цитата Сообщение от Rabbano Посмотреть сообщение
И обрати внимание на
dcb.BaudRate:=CBR_9600;
dcb.ByteSize:=8;
dcb.Parity:=NOPARITY;
dcb.StopBits:=ONESTOPBIT;

Они должны быть точными.
Все эти данные проерял не один раз, а вот про колличество байтов обязательно проверю,спасибо за совет. О результате сообщу в ближайшее время)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2011, 12:31

Можно ли через VB организовать связь (через паралельный порт) с отдельным устройством?
Вот хотелось бы узнать можно ли через VB организовать связь (через паралельный...

как вывести звук через обычный порт, а не через s/pdif ?
купил компьютер, установил win8, звук не работает (в "устройствах...

Включение,через раз
Здравствуйте.Не нашел ничего похожего,хотя у самого подобное уже было.В общем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru