LINUX.ORG.RU

Сообщения BK

 

RS232

Hi all!

Возникла такая проблема: есть девай, который подключается к ком-порту и шлёт на него всякую муру. Параметры протокола: 8 бит без бита парности и с 1 стоп битом, 19200бод.

Одно сообщение состоит: DLE STX <сообщение> <2 байта контрольной суммы> DLE ETX

Вот собственно програмка из SERIAL-PROGRAMMING HOWTO:

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <termios.h> #include <stdio.h>

#define BAUDRATE B19200 #define MODEMDEVICE "/dev/cuaa0" #define _POSIX_SOURCE 1 #define FALSE 0 #define TRUE 1

volatile int STOP=FALSE;

int main() { struct termios oldtio, newtio; char buf[255]; int fd, res, k;

fd = open( MODEMDEVICE, O_RDWR | O_NOCTTY ); if (fd <0) {perror(MODEMDEVICE); exit(-1); }

tcgetattr(fd, &oldtio); bzero(&newtio, sizeof(newtio)); newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR | ICRNL; newtio.c_oflag = 0; newtio.c_lflag = ICANON;

newtio.c_cc[VINTR] = 0; /* Ctrl-c */ newtio.c_cc[VQUIT] = 0; /* Ctrl-\ */ newtio.c_cc[VERASE] = 0; /* del */ newtio.c_cc[VKILL] = 0; /* @ */ newtio.c_cc[VEOF] = 4; /* Ctrl-d */ newtio.c_cc[VTIME] = 0; /* inter-character timer unused */ newtio.c_cc[VMIN] = 1; /* blocking read until 1 character arrives */ // newtio.c_cc[VSWTC] = 0; /* '\0' */ newtio.c_cc[VSTART] = 0; /* Ctrl-q */ newtio.c_cc[VSTOP] = 0; /* Ctrl-s */ newtio.c_cc[VSUSP] = 0; /* Ctrl-z */ newtio.c_cc[VEOL] = 0; /* '\0' */ newtio.c_cc[VREPRINT] = 0; /* Ctrl-r */ newtio.c_cc[VDISCARD] = 0; /* Ctrl-u */ newtio.c_cc[VWERASE] = 0; /* Ctrl-w */ newtio.c_cc[VLNEXT] = 0; /* Ctrl-v */ newtio.c_cc[VEOL2] = 0; /* '\0' */

tcflush(fd, TCIFLUSH); tcsetattr(fd, TCSANOW, &newtio);

while (STOP==FALSE) { res = read(fd, buf, 255); buf[res]=0; for(k=0; k<res; k++) printf("%d ", buf[k]); printf("\n"); }

tcsetattr(fd, TCSANOW, &oldtio); }

Вот то что я получаю в результате выполнения:

-128 96 32 26 -64 -64 32 -96 -15 -128 -128 -96 -24 -15 103 10 -128 96 -56 -64 -15 -64 -64 32 -96 -15 -128 -128 -96 -24 -15 103 10 -128 96 -56 -64 -15 -64 -64 32 -96 -15 -128 -128 -96 -24 -15 103 10 -128 96 -56 -64 -15 -64 -64 -24 32 -96 -15 -128 -128 -96 -24 -15 103 10 -128 96 -56 -104 -15 -64 -64 32 -96 -15 -128 -128 -96 -24 -15 103 10 -128 96 -56 -64 -15 -64 -64 32 -96 -15 -128 -128 -96 -24 -15 103 10 -128 96 -56 -64 -15 -64 -64 32 -96 -15 -128 -128 -96 -24 -15 103 10

Десятичный код DLE = 16 В выводе я его найти не могу :) Чего я не так делаю ? Или это траблы с девайсом ?

С уважением, Владимир

BK
()

Linux printing

Hi all! Помогите разобраться с печатью в Линухе. Дистрибутив: RedHat 7.2 Принтер: HP DeskJet 970Cxi Требуется напечатать для начала простой .ps файл.

Делаю test.ps в котором всего одна строка: Hello, World! Запускаю ghostscript: gs -sOutputFile=/dev/lp0 test.ps Вижу свой файл на экране, но на принтер ничего не идёт. Ещё в gs есть такая обция как -sDEVICE= перебрал названия всех девайсов - ничего, вылезает ошибка типа: -------------------------------------------------------------------------------- ---- Error: /invalidfileaccess in --.outputpage-- Operand stack: 1 true Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 0 3 %oparray_pop --nostringval-- --nostringval-- --nostringval-- --nostringval-- Dictionary stack: --dict:1026/1476(ro)(G)-- --dict:0/20(G)-- --dict:100/200(L)-- Current allocation mode is local Last OS error: 2 Current file position is 583628 GNU Ghostscript 6.51: Unrecoverable error, exit code 1 -------------------------------------------------------------------------------- -----

Если я просто посылаю строку в /dev/lp0 всё ОК. Т.е. # echo Hello, World > /dev/lp0 работает.

Помогите пожалуйста!!!!

BK
()

Ghostscript

hi all ! Вот такая проблема: есть postscript файл. Хочу его распечатать на принтере HP DJ 970Cxi. Пишу: gs -sDEVICE=deskjet test.ps и получаю огромную ошибку вида:

Error: /invalidfileaccess in --.outputpage-- Operand stack: 1 true Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 0 3 %oparray_pop --nostringval-- --nostringval-- --nostringval-- --nostringval-- Dictionary stack: --dict:1026/1476(ro)(G)-- --dict:0/20(G)-- --dict:84/200(L)-- Current allocation mode is local Current file position is 339 GNU Ghostscript 6.51: Unrecoverable error, exit code 1

Помогите plz.

BK
()

Perl/TK и печать

hi all! Надо в программек на Perl/Tk генерировать отчет и выводить его на принтер. Кто чего посоветутет ?

С уважением Владимир

BK
()

Perl/Tk

Как сделать выпадающее меню ?

А то я только Scrollbar нашел, но все равно не то.

С уважением Владимир.

BK
()

Perl/Tk

Привет всем! Народ, кто силен в сабже - отзовитесь.

BK
()

На чем писать посоветуете?

Привет народ!

Есть проблема: перенести БД (серверная и клиентская части) с Windows98 (Access98) на Linux'a. СУБД решил выбрать Postgres. Вернее уже выбрал. А вот на чем клиентские программки посоветуете писать ? Я пока начал на Perl+CGI но я думаю это не выход.Kylix - сыроват. Может Java ? В общем жду советов.

С уважением Владимир.

BK
()

RSS подписка на новые темы