Сейчас на форуме: -Sanchez- (+7 невидимых) |
eXeL@B —› Основной форум —› Помогите найти команду от контроллера к ПО по COM порту. |
Посл.ответ | Сообщение |
|
Создано: 01 октября 2017 02:06 · Личное сообщение · #1 Ребята нужна помощь. Был самодельный контроллер турникета который сожгли, я сделал новый. Пакеты которые передает программа в контроллер на закрытие и открытие турникета я перехватил, встала проблема найти команду которую контроллер должен передавать в программу на подтверждения прохода. Вся передача осуществляется по COM порту. Команда на открытие выглядит так: 49 49 49 49 49 49 49 49 13 10 Команда на закрытие: 50 13 10 Это в десятичной системе счисления. Помогите пожалуйста найти команду на подтверждения прохода. 5835_01.10.2017_EXELAB.rU.tgz - Tourniquet.exe |
|
Создано: 01 октября 2017 02:37 · Личное сообщение · #2 Code:
Code:
насколько я понял программа должна получить от контроллера 14байт, с номером "билета", проверить его в базе и пустить 9541_01.10.2017_EXELAB.rU.tgz - Tourniquet_src.rar |
|
Создано: 01 октября 2017 02:51 · Личное сообщение · #3 |
|
Создано: 01 октября 2017 02:59 · Личное сообщение · #4 Забыл сказать, что считывателем является сканер штрихкода который тоже подключен по COM порту только по другому порту. Допустим COM1 Соответственно код билета передается в COM1 порт и идет разрешение на проход, после чего в COM2 к которому подключен контроллер передается команда на открытия и после именно прохода контроллер передает посылку (которая мне нужна). Далее в базе отмечается что по данному билету проход совершён. Я предполагаю, но могу ошибаться, что посылка будет состоять из трех байт поскольку видел эту надпись: "Длина посылки от контроллера турникета не соответсвует 3 байтам" Добавлено спустя 6 минут private void ReadTourniquetData(object s, EventArgs e) { byte[] buffer = new byte[this.tourniquetSerialPort.BytesToRead]; if (buffer.Length >= 1) { this.tourniquetSerialPort.Read(buffer, 0, buffer.Length); if (buffer[0] == 0x35) { this.PassTimer.Stop(); if ((this.TicketSeria == "") && (this.TicketNumber == "")) { Log("Проход"); } Я правильно предполагаю из этой выдержки что команда на подтверждения прохода является 35 в Hex? Соответственно скорее всего мне нужно отправить 53 13 10 в порт и все будет замечательно? |
|
Создано: 01 октября 2017 03:55 · Поправил: LinXP · Личное сообщение · #5 да, по сути контроллер должен отправлять строку с буквой "S" + добавлять символы перевода строки 13 10 (0x0D, 0x0A они же CR+LF) = 3 байта, строка на открытие "11111111", на закрытие "P" | Сообщение посчитали полезным: Vovka001 |
|
Создано: 02 октября 2017 00:26 · Личное сообщение · #6 |
|
Создано: 02 октября 2017 01:07 · Личное сообщение · #7 через два дня в новостях.... из кремля был похищен чУмоЙданчик с красной кнопочкой, специалисты по безопасности говорят был взломана система прохода через турникеты в самом кремле, подозреваемых ищут... вы в следующих раз помогая думайте что и для кого вы делаете... | Сообщение посчитали полезным: v00doo |
|
Создано: 02 октября 2017 03:34 · Поправил: LinXP · Личное сообщение · #8 за вами начинают охотиться спец службы всех стран что бы привлечь к отвественности и наказать, говорят несколько нелегальных пользователей были схвачены, и сейчас отсиживаются в бутырке, другие на популярном острове наполеона... да-да, я в курсе... паранойя заразна... Vovka001 когда будешь выходить из кремля с чемоданчиком, не забудь оставить визитку яроша.. | Сообщение посчитали полезным: bartolomeo |
eXeL@B —› Основной форум —› Помогите найти команду от контроллера к ПО по COM порту. |
Эта тема закрыта. Ответы больше не принимаются. |