Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 22
1

На Делфи 10 зависает драйвер Атол

15.01.2019, 03:48. Показов 2814. Ответов 6
Метки нет (Все метки)

Доброго дня, вечера, утра

//Код на делфи 7
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
FDevice := CreateOleObject('AddIn.FprnM45');
 
FDevice.AddDevice;
FDevice.ENQTimeout := 60000;
FDevice.ApplicationHandle := Application.Handle;
 
FDevice.Model := 61;
FDevice.PortNumber := 1004;
//FDevice.BaudRate := BaudRate;
 
FDevice.DeviceEnabled := true; // Занимаем порт
if (FDevice.GetStatus = 0) then
begin
FDevice.ResetMode;
 
FDevice.Password := '30';
FDevice.Mode := 2;
FDevice.SetMode;
 
FDevice.ReportType := 2;
FDevice.Report;
end;
//и тд

//Код на делфи 10.2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
FDeviceAtol := CreateOLEObject('AddIn.FprnM45');
FDeviceAtol.ENQTimeout := 60000;
FDeviceAtol.ApplicationHandle := Form1.Handle;
 
FDeviceAtol.AddDevice;
 
FDeviceAtol.Model := Model;
FDeviceAtol.PortNumber := Port;
 
FDeviceAtol.DeviceEnabled := true; // Занимаем порт
if (FDeviceAtol.GetStatus = 0) then
begin
    FDeviceAtol.ResetMode;
 
    FDeviceAtol.Password := '30';
    FDeviceAtol.Mode := 2;
    FDeviceAtol.SetMode;
 
    FDeviceAtol.ReportType := 2;
 
    Res := FDeviceAtol.Report;    
end;
//и тд
Почему не отрабатывает на делфи 10, все тоже самое
На старом приложении работает порядка 1000 клиентких машин, все впорядке, на новой версии не могу запустить, в логах ошибко нет, просто прерывается запись в лог и зависает. Как быть? Хелп ми. Облазил все форумы, что мог. Документацию уже досканально изучил
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2019, 03:48
Ответы с готовыми решениями:

Постоянно отваливается ФР подключенный через СОМ (Драйвер Атол)
Добрый день уважаемые форумчане !!! прошу поделится опытом гуру ... Есть РИБ - Розница 2.0. -...

Подключение принтера чеков АТОЛ FPrint 55 к УТ 10.3 (Драйвер ФР не загружен)
ЗДРАВСТВУЙТЕ! Проблемы с подключением принтера чеков АТОЛ FPrint 55. 1) Установили драйвер АТОЛ....

БПО Драйвер Атол v9 СформироватьЧек получить номер чека за смену
Добрый день уважаемые форумчане !!! :senor: Прошу помощи у гуру ... Результат =...

Остаток по Платежной карте (Электронными) за смену, Настроить драйвер ККМ Атол 30Ф чтобы был виден остаток по ПК
Добрый день уважаемые форумчане !!! Прошу помощи у гуру. Подскажите пожалуйста - есть ФР Атол...

6
4974 / 3876 / 1286
Регистрация: 14.04.2014
Сообщений: 17,879
Записей в блоге: 18
15.01.2019, 09:03 2
для начала можно попробовать CoInitialize--CoUninitialize если их еще нет в программе
сервер ведь в другом потоке работает
0
1136 / 391 / 93
Регистрация: 31.03.2012
Сообщений: 1,048
15.01.2019, 12:09 3
Цитата Сообщение от krapotkin Посмотреть сообщение
можно попробовать CoInitialize--CoUninitialize
Как мне кажется и если я правильно путаю, - то , уже D2010 в модуле ComObj инициализация COM уже есть. В D7 её точно нет. Как пример приведу свои ответы в этом топике, а если точнее здесь
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 22
15.01.2019, 13:07  [ТС] 4
Пробовал делать, и ставил в поток и по TTimer, результат один драйвер Атол отрабатывает, но как то не полностью. На делфи 7 написанное работает отлично. Это все работает в цикле, проверяет БД на наличие новых команд, если есть новые то создает объект, создает новое устройство, выполняет команду и отключает его. может как то связано что это происходит в отдельном Unit-е? Получение состояния смены проходит на ура

Добавлено через 3 минуты
Уточню Delphi 10.2

Добавлено через 8 минут
Лог работы драйвера Д7
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
15.01.2019 06:51:32.795 0000978906 Посылка пакета: C2 24 
15.01.2019 06:51:32.796 0000000000 Посылка пакета: C1 01 25 00 00 48 
15.01.2019 06:51:32.796 0000000000 Received async answer: 55 00 00 
15.01.2019 06:51:32.796 0000000000 Driver.Set_Password 30
15.01.2019 06:51:32.797 0000000000 Driver.Set_Mode 2
15.01.2019 06:51:32.797 0000000000 Driver.SetMode
15.01.2019 06:51:32.797 0000000000 Посылка пакета: C2 25 
15.01.2019 06:51:32.797 0000000000 Посылка пакета: C1 01 26 00 00 48 
15.01.2019 06:51:32.797 0000000000 Received async answer: 55 00 00 
15.01.2019 06:51:32.798 0000000000 Посылка пакета: C2 26 
15.01.2019 06:51:32.798 0000000000 Посылка пакета: C1 01 27 00 00 56 02 00 00 00 30 
15.01.2019 06:51:32.799 0000000000 Received async answer: 55 00 00 
15.01.2019 06:51:32.799 0000000000 Driver.Set_ReportType 2
15.01.2019 06:51:32.799 0000000000 Driver.Report
15.01.2019 06:51:32.799 0000000000 Посылка пакета: C2 27 
15.01.2019 06:51:32.799 0000000000 Посылка пакета: C1 01 28 00 00 67 01 
15.01.2019 06:51:32.846 0000000047 Received async answer: 55 00 00 
15.01.2019 06:51:33.857 0000001014 Посылка пакета: C2 28 
15.01.2019 06:51:33.857 0000000000 Посылка пакета: C1 01 29 00 00 45 
15.01.2019 06:51:34.251 0000000390 Received async answer: 55 22 00 
15.01.2019 06:51:35.251 0000000999 Посылка пакета: C2 29 
15.01.2019 06:51:35.251 0000000000 Посылка пакета: C1 01 2A 00 00 45 
15.01.2019 06:51:35.891 0000000639 Received async answer: 55 22 00 
15.01.2019 06:51:36.901 0000001014 Посылка пакета: C2 2A 
15.01.2019 06:51:36.901 0000000000 Посылка пакета: C1 01 2B 00 00 45 
15.01.2019 06:51:39.544 0000002637 Received async answer: 55 02 00 
15.01.2019 06:51:39.544 0000000000 Таймауты по умолчанию
Лог Д10
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
15.01.2019 04:57:00.268 0000003994 Initializing control...
15.01.2019 04:57:00.273 0000000000 Driver.DoneDriverObj
15.01.2019 04:57:00.273 0000000000 Driver.Set_ENQTimeout 60000
15.01.2019 04:57:00.273 0000000000 Driver.Set_ApplicationHandle 1836930
15.01.2019 04:57:00.273 0000000000 Driver.AddDevice
15.01.2019 04:57:00.273 0000003994 Создание удаленного объекта нижнего уровня с ПК <>
15.01.2019 04:57:00.274 0000000000 Протокол = 17
15.01.2019 04:57:00.274 0000000000   Объект нового протокола создан
15.01.2019 04:57:00.274 0000000000 Скорость обмена = 18
15.01.2019 04:57:00.274 0000000000 Номер порта = 67
15.01.2019 04:57:00.274 0000000000 Адрес ККМ = 192.168.10.1:5555
15.01.2019 04:57:00.274 0000000000 Driver.Set_Model 61
15.01.2019 04:57:00.274 0000000000 Driver.Set_PortNumber 1004
15.01.2019 04:57:00.275 0000000000 Номер порта = 1004
15.01.2019 04:57:00.275 0000000000 Driver.Set_DeviceEnabled -1
15.01.2019 04:57:00.275 0000000000 Porter created.
15.01.2019 04:57:00.275 0000000000 TPortQueuePool.Add: 1004
15.01.2019 04:57:00.275 0000000000 TPortQueuePool.GetPortQueue
15.01.2019 04:57:00.275 0000000000 TPortQueue.Add: 1004
15.01.2019 04:57:00.276 0000000000 Устройство включено = 1
15.01.2019 04:57:00.276 0000000000 OpenPort
15.01.2019 04:57:00.278 0000000015 Посылка пакета: C4 
15.01.2019 04:57:00.278 0000000015 Driver.GetStatus
15.01.2019 04:57:00.278 0000000000 Посылка пакета: C1 01 01 00 00 A5 
15.01.2019 04:57:00.279 0000000000 Received async answer: 00 01 01 3D 10 00 03 00 00 12 45 80 92 8E 8B 20 33 30 94 
15.01.2019 04:57:00.279 0000000000 ROM build = 1245
15.01.2019 04:57:00.279 0000000000 Посылка пакета: C2 01 
15.01.2019 04:57:00.279 0000000000 Посылка пакета: C1 01 02 00 00 3F 
15.01.2019 04:57:00.281 0000000000 Received async answer: 44 30 01 19 01 15 05 00 05 5F 00 12 74 99 3D 33 30 02 06 12 00 81 00 00 00 00 00 00 02 04 
15.01.2019 04:57:00.281 0000000000 Посылка пакета: C2 02 
15.01.2019 04:57:00.282 0000000000 Посылка пакета: C1 01 03 00 00 91 18 00 00 
15.01.2019 04:57:00.283 0000000000 Received async answer: 55 00 32 03 84 00 00 00 00 00 00 
15.01.2019 04:57:00.283 0000000000 RcpPixelLineLength = 384
15.01.2019 04:57:00.283 0000000000 Посылка пакета: C2 03 
15.01.2019 04:57:00.283 0000000000 Посылка пакета: C1 01 04 00 00 91 36 00 00 
15.01.2019 04:57:00.283 0000000000 Received async answer: 55 00 02 01 02 21 03 17 02 00 01 
15.01.2019 04:57:00.284 0000000000 Посылка пакета: C2 04 
15.01.2019 04:57:00.284 0000000000 Посылка пакета: C1 01 05 00 00 91 16 00 00 
15.01.2019 04:57:00.285 0000000000 Received async answer: 55 00 00 10 61 01 27 49 91 
15.01.2019 04:57:00.285 0000000000 Driver.ResetMode
15.01.2019 04:57:00.285 0000000000 Посылка пакета: C2 05 
15.01.2019 04:57:00.285 0000000000 Посылка пакета: C1 01 06 00 00 48 
15.01.2019 04:57:00.286 0000000000 Received async answer: 55 00 00 
15.01.2019 04:57:00.286 0000000000 Driver.Set_Password 30
15.01.2019 04:57:00.286 0000000000 Driver.Set_Mode 0
15.01.2019 04:57:00.286 0000000000 Driver.SetMode
15.01.2019 04:57:00.286 0000000000 Посылка пакета: C2 06 
15.01.2019 04:57:00.286 0000000000 Посылка пакета: C1 01 07 00 00 48 
15.01.2019 04:57:00.287 0000000000 Received async answer: 55 00 00 
15.01.2019 04:57:00.287 0000000000 Driver.GetStatus
15.01.2019 04:57:00.287 0000000000 Посылка пакета: C2 07 
15.01.2019 04:57:00.287 0000000000 Посылка пакета: C1 01 08 00 00 3F 
15.01.2019 04:57:00.290 0000000000 Received async answer: 44 00 01 19 01 15 05 00 05 5F 00 12 74 99 3D 33 30 00 06 12 00 81 00 00 00 00 00 00 02 04 
15.01.2019 04:57:00.290 0000000000 Посылка пакета: C2 08 
15.01.2019 04:57:00.290 0000000000 Посылка пакета: C1 01 09 00 00 91 18 00 00 
15.01.2019 04:57:00.291 0000000000 Received async answer: 55 00 32 03 84 00 00 00 00 00 00 
15.01.2019 04:57:00.291 0000000000 RcpPixelLineLength = 384
15.01.2019 04:57:00.291 0000000000 Посылка пакета: C2 09 
15.01.2019 04:57:00.292 0000000000 Посылка пакета: C1 01 0A 00 00 91 36 00 00 
15.01.2019 04:57:00.293 0000000000 Received async answer: 55 00 02 01 02 21 03 17 02 00 01 
15.01.2019 04:57:00.293 0000000000 Посылка пакета: C2 0A 
15.01.2019 04:57:00.293 0000000000 Посылка пакета: C1 01 0B 00 00 91 16 00 00 
15.01.2019 04:57:00.294 0000000016 Received async answer: 55 00 00 10 61 01 27 49 91 
15.01.2019 04:57:00.294 0000000016 Driver.ResetMode
15.01.2019 04:57:00.294 0000000000 Посылка пакета: C2 0B 
15.01.2019 04:57:00.294 0000000000 Посылка пакета: C1 01 0C 00 00 48 
15.01.2019 04:57:00.295 0000000000 Received async answer: 55 00 00 
15.01.2019 04:57:00.295 0000000000 Driver.Set_Password 30
15.01.2019 04:57:00.295 0000000000 Driver.Set_Mode 2
15.01.2019 04:57:00.295 0000000000 Driver.SetMode
15.01.2019 04:57:00.295 0000000000 Посылка пакета: C2 0C 
15.01.2019 04:57:00.296 0000000000 Посылка пакета: C1 01 0D 00 00 48 
15.01.2019 04:57:00.296 0000000000 Received async answer: 55 00 00 
15.01.2019 04:57:00.296 0000000000 Посылка пакета: C2 0D 
15.01.2019 04:57:00.297 0000000000 Посылка пакета: C1 01 0E 00 00 56 02 00 00 00 30 
15.01.2019 04:57:00.297 0000000000 Received async answer: 55 00 00 
15.01.2019 04:57:00.298 0000000000 Driver.Set_ReportType 2
15.01.2019 04:57:00.298 0000000000 Driver.Report
15.01.2019 04:57:00.298 0000000000 Посылка пакета: C2 0E 
15.01.2019 04:57:00.298 0000000000 Посылка пакета: C1 01 0F 00 00 67 01 
15.01.2019 04:57:00.345 0000000047 Received async answer: 55 00 00 
15.01.2019 04:57:01.346 0000000998 Посылка пакета: C2 0F 
15.01.2019 04:57:01.346 0000000000 Посылка пакета: C1 01 10 00 00 45 
15.01.2019 04:57:01.748 0000000406 Received async answer: 55 22 00
0
4974 / 3876 / 1286
Регистрация: 14.04.2014
Сообщений: 17,879
Записей в блоге: 18
15.01.2019, 13:28 5
чот не вижу как без экспериментов тут помочь ((
0
0 / 0 / 0
Регистрация: 27.09.2018
Сообщений: 22
15.01.2019, 18:09  [ТС] 6
Цитата Сообщение от krapotkin Посмотреть сообщение
чот не вижу как без экспериментов тут помочь ((
Жаль, буду пробовать методом тыка, наука чет дала сбой) Спасибо всем
0
20 / 18 / 9
Регистрация: 23.09.2014
Сообщений: 291
16.01.2019, 08:22 7
iron_spb, хм. работу с драйвером Атола я писал год назад... у меня создается объект так.
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
constructor TKKM.Create;
const
  ModuleName = 'TKKM.Create';
var
  PCD: TStringList;
 
  procedure SetKKMParam(PCD: TStringList; ParamName: string);
  const
    ModuleName = 'TKKM.Create.SetKKMParam';
  var
    ParamValue: string;
    ParamValueInt: Integer;
  begin
    ParamValue := PCD.Values[ParamName];
    ParamValueInt := StrToInt(ParamValue);
    if AnsiCompareStr(ParamName, 'PortNumber') = 0 then
    begin
      KKM_DRV.PortNumber := ParamValueInt;
      Exit;
    end;
 
    if AnsiCompareStr(ParamName, 'BaudRate') = 0 then
    begin
      KKM_DRV.BaudRate := ParamValueInt;
      Exit;
    end;
 
    if AnsiCompareStr(ParamName, 'Model') = 0 then
    begin
      KKM_DRV.Model := ParamValueInt;
      Exit;
    end;
  end;
 
begin
  inherited Create;
  try // загружаем ole-объект для работы с кассой
    KKM_DRV := CreateOleObject('AddIn.FPrnM8'); // было FPrnM45
    IsAlive:=true;
  except // что-то не получилось ...
    Application.MessageBox('TKKM.Create: Не удалось создать объект драйвера ККМ FPrnM8!', PChar(Application.Title), MB_ICONERROR + MB_OK);
    IsAlive:=False;
  end;
 
  KKM_DRV.TestMode := False;
 
  // необходимо для корректного отображения окон драйвера в контексте приложения
  KKM_DRV.ApplicationHandle := Application.Handle;
 
  // новое и единственное логическое устройство, с ним и работаем:
  if (KKM_DRV.DeviceCount = 0) then
    KKM_DRV.AddDevice;
   if not LogResultCode(ModuleName) then
       Exit;
 
  // параметры текущего устройства из реестра в массив строк
  PCD := TStringList.Create;
  ParamCurDev(PCD);
 
  // установить параметры у нашего логического устройства
  SetKKMParam(PCD, 'PortNumber');
  SetKKMParam(PCD, 'BaudRate');
  SetKKMParam(PCD, 'Model');
 
  if assigned(PCD) then
  PCD.Free;
end;

Работает и на XE7 и на Berlin.

попробуйте
Delphi
1
CreateOLEObject('AddIn.FprnM45');
Заменить на
Delphi
1
CreateOleObject('AddIn.FPrnM8');
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2019, 08:22

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Касса атол
Здравствуйте подскажите кто знает порядок процедуры внедрения работы с кассой атол через андроид...

АТОЛ FPrint-03K
Всем доброго времени суток. Необходимо подключить ККМ АТОЛ FPrint-03K к программе и настроить текст...

Атол Фронтол И РМК
вместе дружная семья... вопросик..... Есть 1С УТ и РМК-Атол, товар частично не загрузился в...

1с 8.2, АТОЛ и Фискальный регистратор
Добрый всем день! К сожалению, в рунете не нашел ничего по этой проблеме. У меня сложилась...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.