[ОТВЕТИТЬ]
30.09.2013 12:58
OlegON
 
Кто-нибудь пробовал расковыривать механизм загрузки весов Супермага с целью подмены этого самого механизма? Ну типа грузятся DIGI, вырываем, клеим подмену, грузятся какие-то другие?
03.10.2013 13:43
mighty
 
Ну механизм сам скрыт внутри DLL насколько я понимаю.
Как вариант, можно посадить хук на кнопки загрузки весов и по нажатию вызывать самописную процедуру Оракла, которая будет вызывать заполнение файла с данными и потом сама запускать собственный загрузчик.
03.10.2013 13:54
OlegON
 
Я уже думал над этим, правда не на кнопку загрузки весов, что замучаешься баги ловить, а в меню пункт встроить... Но все равно, это путь очень корявый и костылистый...
03.10.2013 15:16
grannie
 
К тому же, я не очень понимаю, чем это сильно поможет: протоколы загрузки разных весов космически далеки друг от дружки. Узнавание, какие команды уходят в диджи, не даст нам ровным счётом ничего при попытке подцепить иные весы, там всё по-другому.
03.10.2013 15:18
OlegON
 
Я предполагаю, что в DLL уходит список товаров с командой "Загрузить" или вообще одна команда, вряд ли основной модуль содержит команды под каждые весы, это было бы архитектурной ошибкой.
03.10.2013 16:49
mighty
 
А если написать свою DLL, использующую драйвер для другой марки весов и подменить стандарную? Так пробовал Олег?
03.10.2013 16:52
OlegON
 
О том и речь идет, что расковыривать все эти интерфейсы, еще с учетом версионности Супермага, это, мне кажется, нетривиальная задача. Но не пробовал, потому и спрашиваю.
03.10.2013 16:56
mighty
 
Вот билбиотека SmScaleDIGIEthernet.dll
а вот её интерфейс загрузки
Код:
[
  uuid(373EB01A-0918-11D3-8649-0080AD509959), 
  helpstring("ISmScale Interface")
]
 interface ISmScale: IUnknown
{
  [
  helpstring("Start load scales")
  ]
  HRESULT _stdcall LoadScales([in] int aScaleCount, [in] int * aScales );
  [
  helpstring("Get progress and state of scales load process")
  ]
  HRESULT _stdcall GetProgress([out] int * aPercent, [out] BSTR * aOperation, [out] tagEScaleState * aState /*Warning: unable to validate structure name: */ );
  [
  helpstring("Abort loading")
  ]
  HRESULT _stdcall Abort( void );
  [
  helpstring("Get current scale state")
  ]
  HRESULT _stdcall GetScaleState([in] int aScale, [out] tagEScaleState * aState /*Warning: unable to validate structure name: */, [out] BSTR * aError );
  [
  helpstring("Get title of parameters  load scales page")
  ]
  HRESULT _stdcall GetParamLoadPage([out] BSTR * aTitle );
  [
  helpstring("Show parameters  page of load scales")
  ]
  HRESULT _stdcall ShowParamLoadPage([in] wireHWND aTabCtrl /*Warning: unable to validate structure name: */, [in] wireHWND aDlg /*Warning: unable to validate structure name: */ );
  [
  helpstring("Store Params in load scales page")
  ]
  HRESULT _stdcall StoreParams( void );
};
03.10.2013 17:00
OlegON
 
Ожидаемо. Но уверен, что с кучей подводных камней. Если интересно, могу предоставить финансируемую задачу. Но это уже по Контактам вверху.
03.10.2013 17:02
whitewizard
 
Тогда уж лучше писать универсальный драйвер, который будет данные забирать с супермага и выгружать в любые весы.
03.10.2013 17:03
mighty
 
Я сейчас сильно занят по основной работе, как освобожусь если еще задача будет не реализована в принципе можно будет связаться попробовать, но это думаю не ранее 2014, мне еще надо нормальное срезание СМ написать, уж очень хочется, аж до тряски, алгоритм уже продуман. Надеюсь срезание будет очень быстрым..
03.10.2013 17:12
mighty
 
Цитата:
whitewizard Тогда уж лучше писать универсальный драйвер, который будет данные забирать с супермага и выгружать в любые весы.
Уже написано у меня на базе собственного загрузчика, который использует драйверы Атол и Штрих. Но кроме загрузчика используется еще Шедуллер со схемой в Оракле чтобы получать только изменения по товарам.

Кроме того здесь задача немного другая - в СМ установить один тип весов, а грузить дугой, заранее известный, как я понял.
03.10.2013 17:45
whitewizard
 
Цель то та же самая
03.10.2013 18:20
OlegON
 
Да, цель - загрузить штатно из Супермага другие, неподдерживаемые весы.
Опции темы


Часовой пояс GMT +3, время: 19:17.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.