Я бы вычислял хеш-функцию потока, и сравнивал с 15 константами.
Если я правильно понял, нужно распознать во входном потоке 15 разных строк ?
_https://ru.wikipedia.org/wiki/Хеширование
В настоящее время 4
Сообщений 951 страница 1000 из 1000
Поделиться95123-03-2018 23:49
Поделиться95224-03-2018 19:44
Вот, отличная штука.
https://ru.wikipedia.org/wiki/Adler-32
Там даже пример на Си есть.
Принимаешь поток побайтно. Каждый приятый байт суммируешь в результат, саму принятую строку даже хранить не надо.
Как только сумма совпадает с заранее известной константой (образом команды) - команда принята.
Обнуляем сумму, команду на обработку, и принимаем следующую команду.
Быстрее и экономичнее фиг придумаешь.
Если у тебя команды не простые, а с переменными параметрами, тоже можно реализовать. После приема команды, если она с параметрами - принимаем параметр.
Подробнее
_https://ru.wikipedia.org/wiki/Циклический_избыточный_код
Поделиться95324-03-2018 23:00
Если я правильно понял, нужно распознать во входном потоке 15 разных строк ?
Да. Но разве можно так определять строки переменной длинны?
У меня от 3 символов до 11. И есть такие у которых последние 3
символа совпадают.
Хотя... сейчас посмотрел таких всего два случая. Подумаю. Спасибо.
Поделиться95424-03-2018 23:04
Но разве можно так определять строки переменной длинны?
Здесь длина не имеет никакого значения. Сигнал, что мы закончили прием какой то команды - совпадение суммы c одним из 15 портретов (констант).
Если команды отличаются хоть одним символом, или этот символ стоит не там, суммы будут разные.
В 591 посте подробнее.
Поделиться95524-03-2018 23:28
Здесь длина не имеет никакого значения.
Извини - не понял.
Например строки:
ATD+79007650923\nOK\n
и
ATD+79007650856\nOK\n
.
Как видишь они отличаются номерами телефонов.
Но мне важно, что на конце ответ "ОК".
Если я вычисляю хеш по 8 последним символам,
то результаты будут разные. А если по трем, то
не различу такие строки:
+CLIP:
+DCLIP:
Поделиться95724-03-2018 23:37
15 вариантов. Да. Но переменной длинны.
Например:
"OK\n"
"ERROR\n"
"NO CARRIER\n"
"+CMGS:"
Поделиться95824-03-2018 23:38
Мне кажется что задачу я описал довольно полно.
А то что ты не обратил внимания на детали - не моя проблема.
Поделиться95924-03-2018 23:42
5 вариантов. Да. Но переменной длинны.
Тогда я вообще не понимаю.Телефоны в командах разные ?
Какая разница, какой длинны команды ?
ТЗ отсутствует полностью. Даже хуже, оно непонятное.
Поделиться96024-03-2018 23:44
Ты можешь показать все 15 команд ?
Поделиться96124-03-2018 23:51
оно непонятное.
Вот это правда. Ты - не понял. Но я то описал как мне кажется
довольно подробно.
1. Есть поток символов от модема.
2. Надо его принимать и вычислять наступление событий.
3. События - это последовательности символов в потоке
от модема совпадающие с шаблонами.
Как то:
Например:
"OK\n"
"ERROR\n"
"NO CARRIER\n"
"+CMGS:"
4. Не важно что было в потоке до и будет после.
Но если в потоке прошло "OK\n", надо взвести
соответствующий флаг. Т.к. это означает что
модем команду выполнил.
А если в потоке появилось: "ERROR\n", это значит что
модем команду не выполнил. И надо тоже взвести
соответствующий флаг.
5. Для чего это?
Например я подаю команду
"ATD+79008763456\n"
Модем отвечает либо:
"ATD+79008763456\nOK\n"
что означает что он набрал номер.
либо:
"ATD+79008763456\nERROR\n"
Что означает что почему-то команда не выполнена.
.
Соответственно при подаче команды на модем я жду либо
"OK\n", либо "ERROR\n", либо таймаута (модем вообще завис).
.
Что тут не понятного?
Поделиться96225-03-2018 00:02
Что тут не понятного?
Т.е. у тебя не 15 разных слов ?
Тебе нужно ловить "\nOk\n" или "\nERROR\n" ?
А к какому номеру относится этот ответ важно ?
А есть маркеры начала или конца передачи ?
Поделиться96325-03-2018 00:13
Т.е. у тебя не 15 разных слов ?
Тогда поясни что ты понимаешь под словами.
Тебе нужно ловить "\nOk\n" или "\nERROR\n" ?
И то и другое и еще 13 строк. Например я хочу послать СМС.
Я подаю команду:
gsm.println("AT+CMGS=\"+79537420439\"");
Далее надо дождаться либо "ERROR\n" либо "> ".
Последнее означает приглашение к вводу текста СМС.
Посылаю на модем текст с концами строк. И даю символ конца
файла: char (26).
Если СМС ушла, то я получаю от модема:
"+CMGS: 156\n"
Где 156 - номер СМС-ки в памяти СИМ-ки.
А есть маркеры начала или конца передачи ?
В каком смысле? Есть конец строки "\n".
Поделиться96425-03-2018 15:02
"+CMGS: 156\n"
Все сложнее.
Оно ?
http://www.2150692.ru/faq/47-at-komandy-a6
Поделиться96525-03-2018 15:49
Все сложнее.
Да. Не просто.
Оно ?
Ага. Но слава КПСС мне нужны далеко не все команды.
Поделиться96625-03-2018 15:51
В настоящее время все таки решил сделать хеш по 4-ем
последним символам. Просто суммируя их коды.
Получилась всего одна коллизия. В целом код здорово
полегчал. Спасибо тебе за наводку.
Поделиться96711-04-2018 12:54
Шендерович. Как всегда языкаст. Подведение итогов к
настоящему моменту.
С удвоением ВВП не получилось, с федерализмом не получилось, дорог как не было, так и нет; газификация - по праздникам... Чечня, конкурирующая с Альпами, и "Сколково", показывающее средний палец Силиконовой долине, приветствуют друг друга в одной и той же лубянской заднице... Ничего не получилось у Путина, кроме внутреннего абсолютизма и внешней изоляции, абсолютизму традиционно сопутствующей.
.
Причем изоляция эта в нашем случае - изоляция очень слабого, хотя и сильно хорохорящегося государства. Государства, объедаемого с востока, уже в открытую, мощным Китаем, а на Западе - сплотившего против себя весь цивилизованный мир... Это ж как надо было постараться, а?
С приехалом вас, дорогие россияне.
Поделиться97116-04-2018 07:42
Уже навигацию открыли? Не знал.
Поделиться97216-04-2018 08:35
Да. Вот что такое поздняя весна.
Поделиться97321-04-2018 11:07
Только что обнаружил, что из крана (артезианская скважина) течет подслащенная вода. Думал индивидуальный вкусовой глюк, но жена подтвердила. Не знаю что думать! Леша, проверь, как у тебя? Мож самогонку начать гнать прям из крана...
Поделиться97421-04-2018 11:10
Леша, проверь, как у тебя?
Попробовал. Обычная.
Ты эта. Поосторожней там. Даже если у вас со вкусом
все в порядке вряд ли это сахар. Налей бутылочку
на всякий случай. Может придется на анализ отнести.
Поделиться97521-04-2018 11:16
Ты эта. Поосторожней там
Не глотал! Сейчас еще раз снял пробу-концентрация заметно убавилась...
Поделиться97621-04-2018 11:17
Даже не знаю что предположить...
Поделиться97721-04-2018 11:36
Если вы не идете к Новичку, то Новичок идет к вам?
Поделиться97821-04-2018 11:38
Завидно?!
Поделиться97921-04-2018 11:41
Если вы не идете к Новичку, то Новичок идет к вам?
"Я вас Давид Маркович безумно уважаю,
но тьфу на вас за такие ваши слова!" (с)
Тетя Песя из сериала Ликвидация.
Поделиться98021-04-2018 11:47
но тьфу на вас за такие ваши слова!"
Во-первых по-моему ты переврал первоисточник "...тьфу вам под ноги за ваше каменное сердце".
Во-вторых это был вопрос.
Поделиться98121-04-2018 14:52
Во-первых по-моему ты переврал первоисточник "...тьфу вам под ноги за ваше каменное сердце".
Нашел. Да. У тебя память точнее.
И не Гоцману она это говорит. А соседу-вору, дяде Еште.
За то что он ей сказал: что вы жизнь сыну ломаете?
Поделиться98322-04-2018 21:16
Сегодня у дедушки Ленина день рождения.
Когда он возглавил революцию ему было 47, а умер в 53.
А все равно был дедушкой.
Поделиться98423-04-2018 03:01
Да. Мало тогда люди жили. Но разнообразно.
Поделиться98523-04-2018 07:41
Сегодня у дедушки Ленина день рождения.
Моему внуку 2 года исполнилось 22-го. Я тоже дедушка!
Поделиться98623-04-2018 11:08
Я тоже дедушка!
дедушка Ижин.
Поделиться98724-04-2018 23:35
В кратце: что происходит в русском интернете.
.
Кстати у меня отрубились Гугль карты и Гугль календарь.
А Скайп снова работает.
Поделиться98827-04-2018 21:19
Включите на полную громкость! Простите друг друга! Поиграйте в обнимашки друг с дружкой! Запустите свои руки в волосы друг дружке! И послушайте мою любимую Габриеллу, вам понравится.
Поделиться98928-04-2018 00:06
Да. Хорошо девчонка играет. Почему-то вспомнился Кузьмин...
Поделиться99028-04-2018 15:05
Компания Mail.Ru Group 27 апреля объявила о запуске трех прокси-серверов, при помощи которых пользователи могут обойти блокировку мессенджера Telegram.
https://hitech.newsru.com/article/28apr2018/mailru_tg
Че-то я не поняла. Совсем страх потеряли? В то время когда
все прогрессивное население борется с телеграфом они вона
че! Или Добродеев что-то знает чего не знаем мы?
Поделиться99128-04-2018 19:07
Прен-цен-дент однако.
Российский бизнесмен Александр Вихарев, возглавляющий компанию ООО "Инвестори", которая занимается привлечением инвестиций в коммерческую недвижимость, подал в Арбитражный суд Москвы иск с требованием взыскать с Роскомнадзора 5 млн рублей, передает РИА "Новости"
Между прочим это вот 100% вражеское действо.
Обращение в суд на государственный орган.
Так только пиндосы решают вопросы.
Поделиться99228-04-2018 19:12
Роскомнадзор возложил ответственность за вызванные блокировкой Telegram сбои на иностранные компании.
Об этом говорится в заявлении пресс-службы Роскомнадзора.
http://hitech.newsru.com/article/27apr2018/rkn_volk
- Кто это делать? Если никто не признаватса,
мы наказывать вся деревня!
.
Где-то я это уже слышал...
Поделиться99404-05-2018 07:54
Это если я так буду находить по две сережки в год, в среднем по 2-3 грамма, то через 100 лет жизни у меня будет примерно пол-кило золотишка! И это не считая брульянтов, гранатов, изумрудов и прочих радостей.
p.s. Ан нет! Первую сережку я нашел 15 января, следовательно клады я нахожу с регулярностью в 4 месяца! Золотишка то будет поболее, около килёграмма за 100 лет! Радость.
Поделиться99504-05-2018 09:07
Золотишка то будет поболее
Вот тебе и домик в деревне.
.
А представляешь сколько можно поиметь контролируя канализацию?
Поделиться99604-05-2018 09:09
Послушал Попова. Он поет: копите капиталл. Получается что
"капитал" происходит от "копить"? Т.е. это нечто скопленное.
Поделиться99704-05-2018 09:11
Капита́л (от лат. capitalis — главный, доминирующий, основной[1][п. 1]) — стоимость, используемая для получения прибавочной стоимости посредством производственной и экономической деятельности, основанной на добровольном обмене.
Поделиться99804-05-2018 09:17
А представляешь сколько можно поиметь контролируя канализацию?
Леха, ты знаешь, мы вчера промывали фильтры грубой и тонкой очистки и я шутя сказал напарнику и лаборанту: "Мдааа, каждый золотоискатель мечтает найти большой самородок!"
А сегодня утром, когда я неспеша дрипал по пустынной улице на работу, мне почему то вспомнилась молоденькая попутчица в поезде, которая рассказывала, что очень часто находит деньги, причем крупные купюры и из-за этого парень ее прям ревнует. И вот на тебе!
В чудеса я не верю, но не могу объяснить все это.
Поделиться99904-05-2018 09:44
дедушка Ижин.
Не понял шуткуюмора.
У В.И.Ленина дедушку по матери звали Бланк Израиль(Сруль) Мойшевич. Ты об этом?
С огромным удовольствием посмотрел две серии Парфенова "Русские евреи". Много стало понятно. Если кратко, то Русский народ в начале века снес нахер самодержавие и образованное русскую элиту и вместо нее встала еврейская образованная прослойка которая привнесла модерн, культуру, образование и образ мышления в титульную нацию. Посмотрите непредвзято. С нетерпением жду третью серию.
Поделиться100004-05-2018 11:27
Не понял шуткуюмора.
Ленин почему Ленин? Потому что в ссылке в Сибири жил на реке Лена.
А ты в Сибири жил на реке Иж. Потому Ижин.