lex.lviv 1 Опубликовано: 2013-03-20 17:18:31 Share Опубликовано: 2013-03-20 17:18:31 Доброго дня Випала на мою голову задачка. є машина на фрі. на неї підчіплено по рс232 2 пристроя. треба на пхп щось там прочитати\записати\в базу данних пхнути\ в кроні відповідно отже для першого пристроя якось так function control_get_temp() { exec("echo 'INPUT B:TEMP?' > /dev/cuau0"); if (!$handle = fopen('/dev/cuau0', 'r')) { echo "Не могу открыть файл ($filename)"; exit; } flock($handle, LOCK_EX); $buffer = fread($handle,9); flock($handle, LOCK_UN); fclose($handle); return $buffer; } Все прекрасно для другого почався ад, щось подібне(стрічки закоменчені - різні спроби ) function control_get_e720() { #exec("echo '\x01' > /dev/cuau1"); if (!$handle = fopen('/dev/cuau1', 'w')) { echo "Не могу открыть файл ($filename)"; exit; } ftruncate($handle,0); rewind ($handle); if (fwrite($handle, pack("C", 1)) === FALSE) { echo "Не могу произвести запись в файл ($filename)"; exit; } fclose($handle); if (!$handle = fopen('/dev/cuau1', 'r')) { echo "Не могу открыть файл ($filename)"; exit; } $buffer = fread($handle,22); fclose($handle); $in= preg_split('//', $buffer, -1, PREG_SPLIT_NO_EMPTY); #$buffer=''; $i=0; #print_r ($in); while ($i<=21) { $in[$i]=ord($buffer[$i]); #$buffer.=chr($in[$i]); $i++; } return e720_decode($in); } Отже проблема в наступному. Минулого тижня без цих екскриментів працювало а потім стався зафтик пишу до прикладу символ \х01 результат пристрій іноді схавує(1-2 рази) і все, зафтик. ребутати треба в той же час пристрій постійно сре потрібними данними але сталось так що данні почали приходити зовсім не ті.... тє вивід до прикладу глюкнутий(данні бінарні, я іх обробляю але толку мало) temp:19.239014 e720:-1880 2380284 0 temp:19.237915 e720:32 2.105411E-82 8192 temp:19.236145 e720:2.022E+40 61952 0 temp:19.235870 e720:0 1.6515072E+79 3.2E+68 temp:19.235901 e720:67 4.211488E+134 0 temp:19.235992 e720:-1880 1.6514977E+78 0 temp:19.234955 e720:8259 2380540 0 temp:19.234711 e720:-7570 1.6514817E+86 0 temp:19.234100 e720:-1880 6.7E+129 8256 temp:19.233398 e720:-1880 1671.1492 8256 temp:19.232574 e720:0 5.438719E+42 0 temp:19.232025 e720:-7.68E+81 1.0690593E-103 3.2E+68 temp:19.231049 e720:-1880 1671.1492 8256 temp:19.230499 e720:1.6451E+132 1671.1492 0 temp:19.229126 e720:0 2379772 0 temp:19.227173 e720:2.022E+40 1.5794213E+39 0 temp:19.225769 e720:2.022E+40 2379516 0 temp:19.222992 e720:-1880 1.6515072E+88 0 temp:19.221344 e720:-1880 1.6515072E+78 0 temp:19.220337 e720:-7.68E+84 1.5794213E+39 0 temp:19.219666 e720:2.022E+40 1.5794213E+39 0 temp:19.220673 e720:-2550 5.242111E+42 0 temp:19.221832 e720:-1880 842.144 0 temp:19.222076 e720:-1880 1671.1492 8256 temp:19.222839 e720:82590 2380284 0 темп - відповідно пристрій 1(все ок) е720 - зло.... данні мали би бути приблизно такі temp:19.222839 e720:2000 9.2е-13 0 термінал name# stty -f /dev/cuau0 speed 9600 baud; lflags: -echo oflags: -oxtabs cflags: cs8 -parenb name# stty -f /dev/cuau1 speed 9600 baud; lflags: -echo oflags: -oxtabs cflags: cs8 -parenb name# Може хтось підкине ідею де то пошпортати... через таку дріботу не хочу ставити машину з уіндовсом і застосовувати програми комплектні(на уіндовсі все ок, код декодування використав такий самий і як писав до минулого тижні працювало, допоки додому не пішов і машину не погасив) Ссылка на сообщение Поделиться на других сайтах
lex.lviv 1 Опубліковано: 2013-03-28 07:20:41 Автор Share Опубліковано: 2013-03-28 07:20:41 (відредаговано) питання провисло вповітрі. вирішив так. 1. написав програмулю на делфі для цього адського пристроя, залив на тонкий термінал. 2. читає тонкий і відправляє на сервер в субд. 3. відповідно далі працює вебморда на сервері якщо хтось запропонує вирішення простіше - буду вдячний Відредаговано 2013-03-28 07:22:48 lex.lviv Ссылка на сообщение Поделиться на других сайтах
mlevel 52 Опубліковано: 2013-03-28 08:57:56 Share Опубліковано: 2013-03-28 08:57:56 Я думаю це трохи не той форум Ссылка на сообщение Поделиться на других сайтах
lex.lviv 1 Опубліковано: 2013-03-28 11:50:18 Автор Share Опубліковано: 2013-03-28 11:50:18 ну, я ніби теж не програмер Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас