|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
У меня проблема с устройством Терминал учёта рабочего времени. Если размер накопившихся в нём данных превышает 9000 байт, не отдаёт ВСЕХ данных!!! Делаю несколько попыток - результат не стабильный: то 50%, то 80% ... Бред какой-то. Читаю данные через MSCOMM6. Инициализирую объект так: oCom.RThreshold = 1 oCom.SThreshold = 1 oCom.DTREnable = .T. oCom.RTSEnable = .T. oCom.CommPort = nPort oCom.Settings = "57600,N,8,1" oCom.InBufferSize=8192 oCom.OutBufferSize=512 oCom.Handshaking=0 oCom.InputLen=0 Читаю так: lYield=_VFP.AutoYield _VFP.AutoYield=.F. oCom.OUTPUT=cCommand &&передаю команду DOEVENTS cCode=oCom.INPUT && в режиме отладчика, почти всегда отрабатывает правильно!!! DO WHILE oCom.InBufferCount>0 cCode=cCode+oCom.INPUT ENDDO _VFP.AutoYield=lYield Что не правильно? Может что-то с самим железом? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2010, 18:46 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
> Автор: Victoriacom На прием данных у MSCOMM6 есть событие OnComm, в котором и отрабатывать принимаемые данные. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 10:24 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
Игорь Горбонос, это всё уже опробовано... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2010, 16:44 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
Как согласуется это: Код: plaintext
И это ? Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2010, 18:29 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
50копеек, Нормально согласуется. InBufferSize имеет ограничения. Я пробовал увеличивать - результат тот же. К тому же алгоритм, предполагает вычищать буфер до нуля. А размер данных по максимуму может достигать 80000 байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 14:02 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
Victoriacom К тому же алгоритм, предполагает вычищать буфер до нуля. А размер данных по максимуму может достигать 80000 байт. Из Вашего алгоритма видно, что Вы опустошаете буффер и.. все. В нем новые данные не успели образоваться, скорее всего. У устройства можно спросить объем данных, которые оно планирует отдать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 14:30 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
x1ca4064, Понятно. Но в переменную "cCode" по-моему должно попадать всё, пока InBufferCount будет больше нуля. ... DO WHILE oCom.InBufferCount>0 cCode=cCode+oCom.INPUT ENDDO К тому же, в момент выгрузки данные в устройстве не будут пополняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 14:39 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
Victoriacom, Да, но данные попадают в буффер очень медленно, а читаются быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2010, 14:49 |
|
Проблемы с СОМ-портовым устройством
|
|||
---|---|---|---|
#18+
> Автор: Victoriacom В обработчике события OnComm стоит следующий код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2010, 10:25 |
|
|
start [/forum/topic.php?fid=41&msg=36690005&tid=1585180]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 145ms |
0 / 0 |