Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];

Вниз

Сканер Штрих-кодов   Найти похожие ветки 

 
DelphiNew   (2003-12-17 12:12) [0]

Возникла такая проблема: Когда я считываю сканером код мне иногда приходят 2 строки, причём 2-ая строка мешает в работе. Сделал проверку по времени, т.е если за опред. промежуток времени приходит вторая строка то она не обработывается. Но после этого у меня считывается строка толька один раз, когда пытаюсь считать вторй раз ничего не происходит. Вот код:

procedure TFrmMain.OnGetDataFromScaner;
var
ScanSt: string;
T1,T2: TTime;
r: real;
begin
ScanerThread.Suspend;
T1:=Time;
if ReadTime=0 then
ReadTime:=Time-0.0007;
r:=T1-ReadTime;
if r<0.000001 then
begin
ScanerThread.Resume;
exit;
end;
ReadTime:=Time;
ScanSt:=copy(ScanerThread.StrResult,1,2);
showmessage (ScanerThread.StrResult);
FrmTara.IBQTar.Close;
FrmTara.IBQTar.SQL.Clear;
FrmTara.IBQTar.SQL.Add("select namecode, A1,EANCODE, A3, A4, JC1, PRICE from view_1500001");
FrmTara.IBQTar.SQL.Add("where eancode="""+ScanSt+"""");
FrmTara.IBQTar.Open;
if FrmTara.IBQTar.RecordCount <> 0 then
begin
FrmTara.IBQInsTar.ParamByName("NAMETARA").AsString:=FrmTara.IBQTarA1.AsString;
FrmTara.IBQInsTar.ParamByName("CODETARA").AsString:=ScanerThread.StrResult;
FrmTara.IBQInsTar.ParamByName("VES").AsFloat:=FrmTara.IBQTarA3.AsFloat;
FrmTara.IBQInsTar.ParamByName("NCTARA").AsInteger:=FrmTara.IBQTarNAMECODE.AsInteger;
FrmTara.IBQInsTar.ParamByName("LINKHEAD").AsInteger:=nc;
FrmTara.IBQInsTar.ParamByName("QUAN").AsInteger:=1;
FrmTara.IBQInsTar.ParamByName("VESTOTAL").AsFloat:=FrmTara.IBQTarA3.asFloat * StrToFloat(FrmTara.EdtVes.Text);
FrmTara.IBQInsTar.ParamByName("PRICE").AsFloat:=FrmTara.IBQTarPRICE.AsFloat;
FrmTara.IBQInsTar.ParamByName("SUMMATOTAL").AsFloat:=FrmTara.IBQTarPRICE.AsFloat * StrToFloat(FrmTara.EdtVes.Text);
FrmTara.IBQInsTar.ExecSQL;
FrmMain.IBTransaction1.Commit;
FrmMain.IBTransaction1.StartTransaction;
FrmMain.IBQSpec.Open;
end;
ScanerThread.Resume;
end;
Буду благодарен за все идеи


 
DelphiNew   (2003-12-17 12:16) [1]

Дополнение: Сканер подключен к com порту
и на всякий случай:

procedure TThread.Suspend;
var
OldSuspend: Boolean;
begin
OldSuspend := FSuspended;
try
FSuspended := True;
{$IFDEF MSWINDOWS}
CheckThreadError(Integer(SuspendThread(FHandle)) >= 0);
{$ENDIF}
{$IFDEF LINUX}
CheckThreadError(pthread_kill(FThreadID, SIGSTOP));
{$ENDIF}
except
FSuspended := OldSuspend;
raise;
end;
end;


 
Talla2k   (2003-12-18 00:45) [2]

Во первых,запрограммируй сканер ПРАВИЛЬНО!!!(с ним книжечка идет при покупке).
Во-вторых,скан-код ВСЕГДА ограничен chr($0d)!!!Соответственно,все что до chr($0d) это скан-код,а остальное ...
И еще сколько я не писал прог для работы со сканером такого никогда не было!!!Наверно с портом не правильно работаешь!ВОТ!!


 
tesseract   (2003-12-18 15:11) [3]

я вообще не вижу работы с портом. И хотелось бы взглянуть на то, что же пришло с порта.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
14-12500
Verg
2004-02-13 09:50
2004.03.05
Сегодня можно программировать?


1-12419
Dysan
2004-02-24 16:00
2004.03.05
ошибка при возвращении функцией интерфейса в COM


7-12543
Meskalito
2003-12-03 13:46
2004.03.05
Температура Процессора


14-12538
slippery
2004-02-13 21:42
2004.03.05
Помогите найти!!!


1-12409
Ivolg
2004-02-24 17:11
2004.03.05
Шрифты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский