Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #30 : 22-01-2011 09:53 » |
|
ffobos, а отсутствие запятых и неправильные буквы в словах - тоже из-за спешки ?
|
|
|
Записан
|
|
|
|
Dale
|
|
« Ответ #31 : 22-01-2011 09:55 » |
|
подскажите как в ANSI курсор спрятать
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #32 : 22-01-2011 10:11 » |
|
ffobos, а отсутствие запятых и неправильные буквы в словах - тоже из-за спешки ? да Добавлено через 3 минуты и 6 секунд:подскажите как в ANSI курсор спрятать благодарю
|
|
« Последнее редактирование: 22-01-2011 10:14 от ffobos »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #33 : 22-01-2011 10:18 » |
|
ffobos, на этот раз поверю
|
|
|
Записан
|
|
|
|
Dale
|
|
« Ответ #34 : 22-01-2011 17:42 » |
|
По-моему, такое изучение управляющих последовательностей (по одной) не слишком продуктивно. Их ведь достаточно много. Я бы спросил по-другому: "Где можно посмотреть коды управляющих ESC-последовательностей для терминалов ANSI?". И ответил бы: "Например, здесь: http://portal.istra.ru/mirror/linuxdoc/www.linuxdoc.ru/manpages/man4/console_codes.4.html ". Все, вопрос полностью закрыт, можно приступать к изучению чего-то поинтереснее.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #35 : 24-01-2011 11:38 » |
|
Приходится по одной последовательности.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет. J. Ganssle
некогда заниматься визуализацией, срочно нужен демо режим.
Добавлено через 14 минут и 50 секунд: А про что здесь речь? ESC l Блокирование памяти (для HP-терминалов). Блокирует память выше курсора.
|
|
« Последнее редактирование: 24-01-2011 11:52 от ffobos »
|
Записан
|
|
|
|
Dale
|
|
« Ответ #36 : 24-01-2011 12:06 » |
|
Насколько я помню, область выше курсора "замораживается", ее содержимое нельзя менять.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
RXL
|
|
« Ответ #37 : 25-01-2011 16:11 » |
|
Dale, в пределах экрана - можно - записью поверх.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #38 : 25-01-2011 21:38 » |
|
А в чем тогда смысл блокировки?
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Sla
|
|
« Ответ #39 : 25-01-2011 22:07 » |
|
стоп... ESC l Блокирование памяти (для HP-терминалов). Блокирует память выше курсора. это специфическая последовательность... Вы где-нибудь видели HP терминалы?
вот как увидите, тогда поймете нахрена эта штука нужна.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #40 : 25-01-2011 22:18 » |
|
скорее всего, блокируется прокрутка текста (вернее, уезжание текста вверх)
как это было в Орионе
|
|
|
Записан
|
|
|
|
Dale
|
|
« Ответ #41 : 25-01-2011 22:41 » |
|
Не, для прокрутки есть отдельная ESC-последовательность, точно помню. Задается левый верхний угол окошка и правый нижний, и в этих пределах производится скроллинг, а остальная часть стоит на месте. Но при этом остальная часть не замораживается: если явно адресовать курсор за пределы окошка, можно менять содержимое.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #42 : 26-01-2011 04:56 » |
|
Как отследить работу мыши в терминале? Следующий код отслеживает работу не только клавиатуры но мыши #include <errno.h> /* Объявления кодов ошибок */ #include <time.h> #include <stdlib.h> #include <termios.h> int c; int main (int argc, char ** argv) { struct termios oldsettings, newsettings; tcgetattr(fileno(stdin), &oldsettings); newsettings = oldsettings; newsettings.c_lflag &= ~(ECHO|ICANON|ISIG); newsettings.c_cc[VMIN] = 0; newsettings.c_cc[VTIME] = 0; tcsetattr(fileno(stdin), TCSANOW, &newsettings); printf(ESC "[?9h") >= 0; while((c=getchar()) != 'q') { sleep(1); printf("%x\n", c); } tcsetattr(fileno(stdin), TCSANOW, &oldsettings); printf(ESC "[?9l") >= 0; return EXIT_SUCCESS;
} при нажатие левой кнопки мыши, на экране выдаст следующию последовательность; 1b - ESC 5b - [ 4d - M 20 - нажатия кнопки 22 - X 21 - Y начало координат X,Y верхний левый угол терминала 20, 20.
|
|
|
Записан
|
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #43 : 02-10-2011 09:38 » |
|
Господа подскажите код, как в QT сделать управления rs232
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #44 : 02-10-2011 16:11 » |
|
ffobos, Через Qt скорее всего никак. Если ты работаеш в Linux. То у rs232 должен быть в /dev файл устройства. С ним напрямую и работатай. Или на уровне драйверов, если возможностей не хватает.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #45 : 03-10-2011 06:22 » |
|
|
|
|
Записан
|
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #46 : 09-10-2011 04:33 » |
|
ffobos, Через Qt скорее всего никак. Если ты работаеш в Linux. То у rs232 должен быть в /dev файл устройства. С ним напрямую и работатай. Или на уровне драйверов, если возможностей не хватает.
При работе на C я могу управлять портами но там надо задавать параметры порта скорость,четность итд. а как это делать в С++?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #47 : 09-10-2011 05:31 » |
|
ffobos, в языках Си и C++ нет последовательных портов. Зато поддержка есть на уровне API и не важно, из какого языка делаются вызовы к нему.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #48 : 09-10-2011 08:29 » |
|
не черта не получается
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #49 : 09-10-2011 13:12 » |
|
А подробнее?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
DneprSMV
|
|
« Ответ #50 : 09-10-2011 18:59 » |
|
ffobos, Есть отличная книжка - с комплектом примеров Системное программирование на C++ для Unix Теренс Чан. Посмотри, может пригодится.
Добавлено через 21 минуту и 45 секунд: ps - если нужна работа с последовательным устройством поищи исходники системной утилиты stty.
|
|
« Последнее редактирование: 09-10-2011 19:21 от DneprSMV »
|
Записан
|
"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #51 : 10-10-2011 02:08 » |
|
подробнее void GelixRed::COMOpen() {QFile COMFile("/dev/ttyUSB2"); if(!COMFile.open(QIODevice::ReadWrite)) {strTerm=("error open port");}
struct termios Options; /*структура для установки порта*/
tcgetattr(COMFile.handle(), &Options); /*читает пораметры порта*/
cfsetispeed(&Options, B115200); /*установка скорости порта*/ cfsetospeed(&Options, B115200); /*установка скорости порта*/
Options.c_cflag &= ~PARENB; /*выкл проверка четности*/ Options.c_cflag &= ~CSTOPB; /*выкл 2-х стобит, вкл 1 стопбит*/ Options.c_cflag &= ~CSIZE; /*выкл битовой маски*/ Options.c_cflag |= CS8; /*вкл 8бит*/ tcsetattr(COMFile.handle(), TCSANOW, &Options); /*сохронения параметров порта*/ } в режиме отладке пишет: &"warning: GDB: Failed to set controlling terminal: \320\235\320\265\320\264\320\276\320\277\321\203\321\201\321\202\320\270\320\274\321\213\320\271 \320\260\321\200\320\263\321\203\320\274\320\265\320\275\321\202\n"
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #52 : 10-10-2011 06:13 » |
|
>>Недопустимый аргумент
(в аттаче - самописная утилитка для конвертации таких последовательностей, если нужно. Правда, она виндовая)
|
|
« Последнее редактирование: 10-10-2011 06:16 от Алексей1153++ »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #53 : 10-10-2011 06:31 » |
|
"controlling terminal" - это к последовательному порту в данном случае не относится. У каждого процессора может быть управляющий терминал. Даже у фоновых задач. Они от него зависят, могут быть вызваны из фона в интерактивный режим, могут сами из фона запрашивать работу с терминалом (например, для ввода пароля), а также получат сигнал HUP при закрытии терминала. Отключенные от терминала процессы считаются демонами. У меня сохранился мой старый-старый код для настройки последовательного потрта. Полностью рабочий. tcgetattr(ftty, &tios); tios.c_iflag = IGNBRK; tios.c_oflag = 0; tios.c_lflag = 0; tios.c_cc[VMIN] = 1; tios.c_cc[VTIME] = 0; tios.c_cflag = CLOCAL | CREAD; tios.c_cflag |= CS8;
switch('N' /* управление потоком: None, Software (xon/xoff), Hardware */) { case 'N': break; case 'S': tios.c_cflag |= IXON | IXOFF; tios.c_cc[VSTOP] = 0x13; tios.c_cc[VSTART] = 0x11; break; case 'H': tios.c_cflag |= CRTSCTS; break; }
cfsetspeed(&tios, 115200); tcsetattr(ftty, TCSANOW, &tios);
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
ffobos
Интересующийся
Offline
|
|
« Ответ #54 : 25-10-2011 06:00 » |
|
пишет туже ошибку
|
|
|
Записан
|
|
|
|
|