Автор Тема: AT команди към Windows машина  (Прочетена 4066 пъти)

Ipolit

  • Напреднали
  • *****
  • Публикации: 418
    • Профил
    • WWW
AT команди към Windows машина
« -: Oct 26, 2015, 13:57 »
Здравейте,
имаме една система за контрол на достъпа с RFID чипчета и компютър с Windows, който я управлява. Сега разработваме една друга система (web базирана - php) и трябва да направим малко интеграция между двете. Новата система ще трябва да дава достъп на определен RFID чип до някакво място. Няма никакъв проблем да се добавя запис в базата на системата за контрол на достъпа, но въпросът е, че контролерите не четат базата поснтоянно, а само при старт или влизане в сервизен режим и трябва по някакъв начин да бъдат накарани да я прочетат. Свързах се с фирмата, която е разработила системата и хората ми обясниха, че трябва да се изпрати AT команда до контролера, която казва, че има запис за нов чип за този контролер и съответно ми дадоха АТ командите.
И тук е въпроса, как да се вържем към уиндоуса от уеб базираната си програма и да изпълним АТ командата. Гледах разни възможности за telnet, допълнителни програми и т.н., но някой ако го е правил да дава акъл.
Мерси предварително
Активен

Face Your FreeBSD at http://ipolit.hit.bg

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: AT команди към Windows машина
« Отговор #1 -: Oct 26, 2015, 14:16 »
От това, което обясняваш разбирам, че базата данни е в компютъра (Windows) и когато нещо бъде променено в нея, той уведомява даден четец с АТ команда, с която го кара да си обнови базата.
От това не следва, че трябва да подаваш някакви АТ команди на Windows-а, а че трябва да свържеш четец към компютър чрез RS-232 интерфейс, да настроиш скоростта и формата на данните на интерфейса на компютъра да са като на четеца и като му пратиш на четеца АТ, той да ти отговори с ОК. И от там нататък ...
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

Ipolit

  • Напреднали
  • *****
  • Публикации: 418
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #2 -: Oct 26, 2015, 14:46 »
Ами не съм сигурен, че разбирам как може да стане това, при положение, че контролерът има един RS-232 вход и той е вързан към компютъра с програмата и уиндоуса, и не ми идва на ума как да вържа втори компютър към този вход. Затова за мен звучи логично комтютърът с уиндоуса да подаде АТ командата, само че не през програмата, ами аз трябва да му я подам по някакъв начин отдалечено и той да я изпълни. Може да не съм те разбрал, тъй че ако може да ми обясниш по-подробно какво имаш предвид.

Иначе базата данни е на компютъра с уиндоуса, но ако нещо се промени в нея не през интерфейса на програмата, а по друг начин, контролерът не си ъпдейтва записите.
Активен

Face Your FreeBSD at http://ipolit.hit.bg

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: AT команди към Windows машина
« Отговор #3 -: Oct 26, 2015, 15:10 »
Най-работещият вариант, който си представям е да сложиш устройство (компютър) с два интерфейса, единият свързан към четеца (четците), а другия към компютъра с Windows. Програмата, която ще работи на това устройство ще трябва да го прави "прозрачно" за командите, които Windows-кото приложение изпраща, т.е. то ще препредава и тях, и отговорите на четците към Windows-кото приложение, а когато ти решиш, ще си "говориш" с четците, а към Windows-кото приложение ще свалиш сигнала за готовност, за да не реши и той в същия момент да си говори с тях.

ПС: Другият вариант е да изхвърлиш Windows-кото приложение, а в новото да пресъздадеш и неговите функционалности.
« Последна редакция: Oct 26, 2015, 15:19 от laskov »
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

Ipolit

  • Напреднали
  • *****
  • Публикации: 418
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #4 -: Oct 26, 2015, 15:31 »
Благодаря, laskov. Малко се отнесохме от въпроса, който всъщност беше "Как да дистанционно да накараме Windows да подава АТ команди към определен COM порт" с помощта на php.
« Последна редакция: Oct 26, 2015, 15:34 от Ipolit »
Активен

Face Your FreeBSD at http://ipolit.hit.bg

programings

  • Напреднали
  • *****
  • Публикации: 221
  • Distribution: Arch Linux, BunsenLabs Linux, FreeBSD
  • Window Manager: XFCE, MATE, Openbox
    • Профил
Re: AT команди към Windows машина
« Отговор #5 -: Oct 27, 2015, 00:44 »
Пишеш си сървър на python примерно, който стои на машината с Windows-а, и слуша в локалната мрежа (ако има такава между машините, и са в един broadcast домейн). Задачата му е да отвори listen сокет, ограничен до локалната мрежа, и да проверява какво идва на него. С PHP от контролната машина отваряш сокет до сървъра, и му говориш. Съответно, може да си измислиш свой протокол, тоест при каква команда какво да прави сървъра на Windows машината, статус кодове, ако искаш да връща такива, и прочие. Разгледай за питонски библиотеки за интеракция с COM порта. Също не би било зле да добавиш и команда за автентикация, за да не тръгне някой умник да се разпорежда. Така би било най-чисто.
« Последна редакция: Oct 27, 2015, 00:51 от programings »
Активен

BRADATA

  • Напреднали
  • *****
  • Публикации: 833
  • Distribution: Slackware/Mint/CentOS
  • Window Manager: console/KDE/LXDE
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #6 -: Oct 27, 2015, 06:41 »
Благодаря, laskov. Малко се отнесохме от въпроса, който всъщност беше "Как да дистанционно да накараме Windows да подава АТ команди към определен COM порт" с помощта на php.
С трици маймуни няма как да ловиш. Еле пък ако има замесен виндовс. Да започнем от това, че въпроса ти е зададен неправилно. Правилният е "Как две приложения да пишат по едно и също време в един сериен порт в Windows". За огромно твое съжаление тази операционна система не позволява две приложения да отворят за писане един сериен порт. Може да бъде отворен за четене, но това на теб не ти трябва. Та решението ти е написал laskov. Ако не можеш сам - вадиш едни пари и все ще се намери някой, който да ти го направи.
Активен

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #7 -: Oct 27, 2015, 09:49 »
Това или трябва да си пренапише софтуера за управление/комуникация с четеца или да пробва с прекъсването да прати SendMessage() и да накара софтуера да задейства процедурата по синхронизиране... Щото аз както го разбирам той иска хем старият софтуер да си комуникира с въпросния контролер, хем той да прави и web базиран интерфейс, който също да комуникира през този сериен интерфейс с контролера, което няма как да стане, освен ако софтуера не отваря серийния интерфейс, прави каквото прави и после пак го затваря, което обаче малко ме съмнява да е точно така :)
« Последна редакция: Oct 27, 2015, 09:51 от runtime »
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: AT команди към Windows машина
« Отговор #8 -: Oct 27, 2015, 09:52 »
Тая сутрин се сетих и за още един вариант. Има едни автоматични превключватели

два компютъра с един принтер. Те са за Centronics. Възможно е да има такива и за RS-232, или ако няма, да се направи.

PS 1: И ето какво ми показа Г като потърсих в Изображения "2 computers 1 rs232 device"
, което е в тази тема.

PS 2: Само дето това нещо НЯМА да работи :) . Предназначението му е друго.

PS 3: От тази тема пък стигнах до друга, където е това:
« Последна редакция: Oct 27, 2015, 10:55 от laskov »
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: AT команди към Windows машина
« Отговор #9 -: Oct 27, 2015, 10:14 »
Бря, че ми текна мисълта!!! :)

Още едно предложение: Слагаш Windows-а във виртуална машина и правиш гимнастика със хипервайзора. :)
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

BRADATA

  • Напреднали
  • *****
  • Публикации: 833
  • Distribution: Slackware/Mint/CentOS
  • Window Manager: console/KDE/LXDE
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #10 -: Oct 27, 2015, 10:33 »
Бря, че ми текна мисълта!!! :)

Още едно предложение: Слагаш Windows-а във виртуална машина и правиш гимнастика със хипервайзора. :)
Ма тая мисъл кат тече да не земе да удави някой :) Че това с виртуализатора ще излезе по-лесно да се напише от нулата... Не вярвам да е толкова сложно :)
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: AT команди към Windows машина
« Отговор #11 -: Oct 27, 2015, 10:41 »
Да, ама виж по-горе. Има PS 3 :)
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

Ipolit

  • Напреднали
  • *****
  • Публикации: 418
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #12 -: Oct 27, 2015, 11:16 »
Мерси на всички. Трябва да проверя дали е зает COM порта от приложението постоянно, ама мисля, че не е.
Иначе си направих едно perl скриптче дето се логва през телнета на уиндоуса, изпълнява командата и се логаутва.
Активен

Face Your FreeBSD at http://ipolit.hit.bg

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: AT команди към Windows машина
« Отговор #13 -: Oct 28, 2015, 09:36 »
Всъщност, първият въпрос, който трябваше да задам е, дали Windows-кото приложение е постоянно стартирано. Ако не, добре. Лесно е и проблем няма.
Аз предположих, че е постоянно стартирано и че портът е  постоянно зает.
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

luda_glawa

  • Напреднали
  • *****
  • Публикации: 652
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
    • WWW
Re: AT команди към Windows машина
« Отговор #14 -: Oct 28, 2015, 13:04 »
С риск да прозвуча като пълен идиот - не разбрах какъв е смисъла на цялото упражнение. Защо просто не се направи локално уиндоуско приложение, което да следи за промяна на някакъв флаг в базата и да изпраща нужните команди? Незнам защо го мразите толкова този уиндоус.
Активен

С Уважение:

Luda Glawa ;-)