|
|
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
Добрый день! Пишу программу для обработки результатов работы сканера Honeywell CT50 (Android 6). Сразу прошу прощения за простыни кода, упрощал изо всех сил. Главная форма: Код: pascal 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. PSTypes.pas Код: pascal 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. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. PSVars Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. formScanTakeOnStore Код: pascal 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. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. Итак, при запуске основной формы сканер активируется и появляется возможность чтения. Для получения и обработки данных я открываю форму frmScanTakeOnStore и выставляю статус либо ручное сканирование (btnManual) либо Автоматическое (btnContinuous) . Процедуры TJNASC.Start, TJNASC.Stop отвечают за Автоматическое сканирование ВКЛ и Выкл соответственно. Автоматическое = сканер постоянно пытается считать баркод. Ручное = чтение по триггеру (кнопке на аппарате). Поступила задача, если сканер в Автоматическом режиме, то после каждого сканирования надо делать паузу в 1-несколько секунд и выключать сканер, а потом активировать его снова. Я решил сделать это через штатный таймер. Он отрабатывает нормально, но ни TJNASC.Start, TJNASC.Stop ни симуляция нажатия кнопок в процедуре OnTimer не запускают режим автоматического скана. НО! Если просто нажать на кнопку btnContinuous, то сканер запускает постоянное чтение. Проблема: постоянное чтение не запускается программно, только через клик по кнопке. Коллеги, Подскажите, пожалуйста, что я делаю не так? Может быть необходимо методы по иному вызывать или я упускаю какие-то пункты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2020, 17:36 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
Мало что понял, но... вызов btnContinuousClick в обработчике таймера срабатывает или нет? Помимо этого перенеси отключение таймера в его обработчиках из конца метода в самое начало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2020, 00:09 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
white_nigger, Спасибо за идею, но не помогает :( Может станет понятнее: 1. Открыл форму formScanTakeOnStore, 2.нажал кнопку btnContinuos, хардварный сканер включился и светит своим лазером, выполняется TJASC.Start 3. Считываю баркод 4. Программа деактивирует сканер, чтобы а) автоматический режим выключился б) не было возможности нажать железную кнопку для сканирования. 5. Запускается Timer 6. По прошествии 3 секунд отрабатывает OnTimer 7. Если в п.2. был активирован режим Автоматического сканирования, то должна отработать процедура TJASC.Start или симулироваться нажатие кнопки btnContinuous. Проблема: в П.7 происходит вход и якобы выполнение данных процедур, но хардварный сканер не включается. Он включится если пальцем нажать на кнопку btnContinuous. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2020, 05:50 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
Kast2K, сканер скорее всего выполняет команды асинхронно и не берется за следующую, пока предыдущая не выполнена. Потому кнопками работает, а в коде - нет. И sleep в основном потоке - дурной тон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2020, 11:03 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
wadman, Спасибо. Sleep было просто для теста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2020, 13:33 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
Kast2K, TThread.synchronize? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2020, 13:35 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
Kast2K Kast2K, TThread.synchronize? Это-то тут при чем? В коде потоков нет. Нужно выяснить какой период нужен сканеру для выполнения команд. Хотя-бы с теми же таймерами. Начни с задержки 100мс. То есть серия нужных команд с такой задержкой. Не получится, увеличивай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2020, 20:21 |
|
||
|
FMX. Изменение типа чтения данных со cканера Android программно
|
|||
|---|---|---|---|
|
#18+
wadman Нужно выяснить какой период нужен сканеру для выполнения команд. Хотя-бы с теми же таймерами. Начни с задержки 100мс. Или можно начать с чтения документации на оборудование ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2020, 00:00 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=40&tid=2038140]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 323ms |

| 0 / 0 |
