QtSerialPort, Проблема сборки QtSerialPort под Windows |
Здравствуйте, гость ( Вход | Регистрация )
QtSerialPort, Проблема сборки QtSerialPort под Windows |
lkslks |
18.10.2012, 8:40
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 18.10.2012 Пользователь №: 3566 Спасибо сказали: 0 раз(а) Репутация: 0 |
При сборке получаю такое сообщение:
.... g++ -Wl,-s -o release\libSerialPort.a release/serialport.o release/serialportinfo.o release/serialport_win.o release/serialportinfo_win.o -L".\lib" -L"c:\Qt\4.8.3\lib" -lsetupapi -ladvapi32 -lQtCore4 c:/qt/qtcreator-2.5.2/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16' collect2: ld returned 1 exit status ------------------- Qt 4.8.3 MinGW 4.4.0 Кто может прояснить ситуацию ? |
|
|
kuzulis |
15.3.2013, 12:45
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Мож у тебя вирус какой или троян?
Чудес не бывает (с). Цитата Порт открыт процессом "cms.exe" Это чей процесс? |
|
|
NAUGREEM |
15.3.2013, 15:07
Сообщение
#3
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мож у тебя вирус какой или троян? Чудес не бывает (с). На всякий случай проверил всё свежим каспером - всё чисто... Интересно - создатели терминалки так же делали? а про какую именно речь ? http://logic-bratsk.ru/radio/util/tstcomu/tstcomu.htm |
|
|
kuzulis |
15.3.2013, 15:12
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Такое впечатление что у тебя несколько потоков пытаются открыть одно и то-же устройство.
Что это вообще за хренота? Цитата ... 24,IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 25, IRP_MJ_CREATE,DOWN,TRUE,0x0,63 00 6D 00 73 00 2E 00 65 00 78 00 65 00 00 00 ,c.m.s...e.x.e..., 26, IRP_MJ_CREATE,UP,FALSE,0xc0000022,,, 27,IRP_MJ_CREATE,UP,FALSE,0x0,,, ... Разбирайся со своим кодом. |
|
|
NAUGREEM |
15.3.2013, 16:18
Сообщение
#5
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
Такое впечатление что у тебя несколько потоков пытаются открыть одно и то-же устройство. хм... действительно... я не подозревал, что QSerialPortInfo::availablePorts() пытается открыть все порты... а как мне тогда посмотреть, какие порты есть в системе, не открывая их? мне нужен вотчдог на отвалившиеся и появившиеся порты... |
|
|
kuzulis |
15.3.2013, 16:53
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Цитата(NAUGREEM) хм... действительно... я не подозревал, что QSerialPortInfo::availablePorts() пытается открыть все порты... Он ничего не открывает сам. Ты скорее всего вызываешь isBusy() или isValid(). Вот эти методы и открывают. Просто не вызывай их. Цитата(NAUGREEM) а как мне тогда посмотреть, какие порты есть в системе, не открывая их? см. выше. Цитата(NAUGREEM) мне нужен вотчдог на отвалившиеся и появившиеся порты... Сам напиши. Можешь взять код из QSerialDevice (master ветку) - класс SerialDeviceEnumerator: http://gitorious.org/qserialdevice/qserial...eviceenumerator Или из QExtSerialPort: http://code.google.com/p/qextserialport/so...owse/#git%2Fsrc А если по-простому - то просто по таймеру делай QSerialPortInfo::availablePorts() и все. UPD: Если тебе нужен вачдог на выдергивание ранее открытого порта - то можешь просто приконнектиться к сигналу ResourceErorr. Сообщение отредактировал kuzulis - 15.3.2013, 16:56 |
|
|
NAUGREEM |
19.3.2013, 14:43
Сообщение
#7
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
kuzulis |
19.3.2013, 14:49
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
|
|
|
NAUGREEM |
19.3.2013, 16:01
Сообщение
#9
|
Студент Группа: Участник Сообщений: 28 Регистрация: 16.1.2013 Пользователь №: 3675 Спасибо сказали: 0 раз(а) Репутация: 0 |
что-то я не нашёл - кто этот сигнал посылает? Класс QSerialPort посылает сигнал QSerialPort::error(SerialPortError err) со значением ResourceError если ты выдернул из системы уже открытый USB/Serial порт. но если ты вырубил блютузовый девайс - то никакой ошибки не возникает, пока ты не пошлёшь в порт какой-нибудь байт... а при отправке данных в порт - возникает ошибка 11 (неизвестная ошибка) но у девайса нету команды ping, чтобы пинать его... и в некоторых режимах вообще нельзя в него ничего посылать... засада получается... |
|
|
Текстовая версия | Сейчас: 25.11.2024, 4:34 |