-
نحوه استفاده از دستگاه RFT-200
با سلام
دیروز یه دستگاه reader با مدل اشاره شده گرفتم.همراه اون یکسری فایل dll هم دادن.CC3260 و CC3260MT و EasyD12 و MF_API.
چجوری باید این dllها رو load کنم.یه چیزهایی توی سایت پیدا کردم.مثل این:
https://barnamenevis.org/showth...&highlight=dll
منتها متوجه نشدم که چجوری باید dll رو رجیستر کنم؟
فقط میخوام از دستگاه برای نوشتن و خواندن بارکد استفاده کنم.
در ضمن من توابع داخل فایلهای dll رو هم ندارم.
لطفا کمکم کنید.
ممنونم.
-
1 ضمیمه
نقل قول: نحوه استفاده از دستگاه RFT-200
یه فایل pdf هم همراهش هست که فکر میکنم توابع رو توضیح داده باشه.
لطفا توابع ارسال و دریافت داده رو معرفی کنید..فکر کنم به زبان c باشه.
ممنونم
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
منتها متوجه نشدم که چجوری باید dll رو رجیستر کنم؟
نيازي به رجيستر كردن نداري. فقط كافي است كه Dll ها رو در كنار برنامه خودت قرار بدي. البته اگه دوست داري كه Dll رو در يك پوشه ي ديگه قرار بدي بايد در اعلان تابعي كه مي نويسي مسير نسبي Dll رو نسبت به فايل اجرايي برنامه بنويسي:
به عنوان مثال:
function External_Fun(Par1:DataType): DataType ; external 'Directory\DllName.DLL';
بعد از انجام اين كار ميتوني كه توابع رو فراخوني كني (مثل همون صفحه اي كه لينكش رو گذاشتي)
دفت كن كه در مورد اعلان تابع به حروف كوچك و بزرگ توجه كني، در غير اين صورت با يك استثنا (Error) مواجه ميشي!!!
-
نقل قول: نحوه استفاده از دستگاه RFT-200
به عنوان مثال تابعي كه در فايل PDF اشاره شده به صورت int _stdcall MF_Halt(int DeviceAddr) است مي توان به شكل زير به معادل دلفي تعريف كرد.
function MF_Halt(DeviceAddr : Integer): Integer; external 'MF_API.dll';
در زير هم معادلهاي نوعهاي متغير در C و دلفي نشان داده شده است. (سمت چپ براي زبان C و سمت راست براي Delphi)
char -----------> ShortInt
BYTE, unsigned short -----------> Byte
short -----------> SmallInt
unsigned short -----------> Word
int, long -----------> Integer, LongInt
unsigned long -----------> Cardinal, LongWord
__int64 -----------> Int64
float -----------> Single
double -----------> Double
longdouble -----------> Extended
VARIANT, Variant, OleVariant -----------> Variant, OleVariant, TVarData
char -----------> Char
WCHAR -----------> WideChar
AnsiString -----------> String (before delphi 2009)
char * -----------> PChar
LPCWSTR -----------> PWideChar
WideString -----------> WideString
(Any 1-byte) -----------> Boolean, ByteBool
(Any 2-byte) -----------> WordBool
BOOL -----------> BOOL, LongBool
-
نقل قول: نحوه استفاده از دستگاه RFT-200
با تشکر از شما
ببینید من دستگاه رو با پورت usb وصل می کنم و فایل dl رو فراخونی میکنم:
Function MF_ControlBuzzer(DeviceAddr:Integer;BeepTimer:Word ):Integer;
External 'MF_API.dll';
و سپس به صورت زیر تابع رو فراخونی می کنم.این تابع باید یکی صدای بیپ به انداره 3 ثانیه تولید کنه.
Status:=MF_ControlBuzzer(0,30);
زمانی که برنامه رو اجرا میکنم عدد 33 رو نشون میده و بعد خطای زیر ظاهر میشه:
access violation at 0x78ecd:write of address0x00030ffc
-
1 ضمیمه
نقل قول: نحوه استفاده از دستگاه RFT-200
-
نقل قول: نحوه استفاده از دستگاه RFT-200
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من اين كدها رو تست كردم . به نظر من مشكل از جاي ديگه هست. شما در اينجا از روش فراخواني ايستا براي بكارگيري توابع درون DLL استفاده كرده ايد. اگر اين قسمت برنامه مشكل داشت برنامه شما اجرا نمي شد و اين در حالي است كه برنامه شما اجرا مي شود. من پيشنهاد مي كنم كه براي امتحان يك پروژه فاقد كدهاي اضافي توليد كنيد و اين تكه كدها را در آن تست كنيد. يا به عنوان روش دوم از بلوك try..except به شكل زير استفاده كنيد تا ببينيد كه مشكل از كجا است.
try
{ Write Code Here }
except on E: Exception do
ShowMessage(e.Message);
end;
-
نقل قول: نحوه استفاده از دستگاه RFT-200
يك سوال: آيا دستگاه شما براي اين كه درست كار كند نياز به نصب يك درايور مخصوص ندارد؟
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
Ashayeri
يك سوال: آيا دستگاه شما براي اين كه درست كار كند نياز به نصب يك درايور مخصوص ندارد؟
چرا من درایور رو نصب کردم.مشکلی با درایور نداره.
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
Ashayeri
من اين كدها رو تست كردم . به نظر من مشكل از جاي ديگه هست. شما در اينجا از روش فراخواني ايستا براي بكارگيري توابع درون DLL استفاده كرده ايد. اگر اين قسمت برنامه مشكل داشت برنامه شما اجرا نمي شد و اين در حالي است كه برنامه شما اجرا مي شود. من پيشنهاد مي كنم كه براي امتحان يك پروژه فاقد كدهاي اضافي توليد كنيد و اين تكه كدها را در آن تست كنيد. يا به عنوان روش دوم از بلوك try..except به شكل زير استفاده كنيد تا ببينيد كه مشكل از كجا است.
try
{ Write Code Here }
except on E: Exception do
ShowMessage(e.Message);
end;
دوست عزیز من با این روش کار نکردم.ممکنه یه نمونه کد کامل بذارید.(از همین بلاک)
-
نقل قول: نحوه استفاده از دستگاه RFT-200
اگه منظورت استفاده از اين دستگاهه :
http://www.smart-tap.com/components/...b6d93c8a34.jpg
شما نياز به هيچ گونه dll نداريد و به راحتي مي تونيد با استفاده از كامپوننت TComPort اون رو مديريت كنيد .
براي اين كار پس از نصب دراور دستگاه با مراجعه به Device Manager پورتي رو كه به دستگاه شما اختصاص يافته رو پيدا كنيد و در قسمت Properties كامپوننت Tcomport مقادير زير رو مقداردهي كنيد :
BaudRate = br9600
DataBits = dbEight
Discardull = True
Port = COM4 //نام پورت مربوط به دستگاه
StopBits = sbOneStopBit
پس از انجام تنظيمات مي توني با Active كردن كامپوننت در قسمت OnRxChar شماره كارت رو بخوني :
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
Count :Integer;
begin
ComPort1.ReadStr(Str, Count);
Memo1.Text := Memo1.Text + Str;
End;
-
نقل قول: نحوه استفاده از دستگاه RFT-200
با سلام و تشکر از شما
من از پورت usb استفاده میکنم.آیا کامپوننت جواب میده؟
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
Batman
با سلام و تشکر از شما
من از پورت usb استفاده میکنم.آیا کامپوننت جواب میده؟
پس از نصب درايور ، يه پورت كام به سخت افزار شما اختصاص پيدا ميكنه و اغلب COM4 رو بر ميداره ، پس صددرصد كار ميكنه .
من خودم باهاش برنامه نوشتم ، براي حضور غياب يه غذاخوري .
-
1 ضمیمه
نقل قول: نحوه استفاده از دستگاه RFT-200
من يه مثال دمو برات آپلود كردم ، موفق باشي ...
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
دلفــي
من يه مثال دمو برات آپلود كردم ، موفق باشي ...
برنامه شما خطای زیر رو میده:
Unable to open com port(win error code: 2)
در ضمن من از ویندوز 7 استفاده می کنم.ولی همراه این دستگاه(Buyer model:RFT-230-2 Ver:2) یک برنامه demo هم دادن که برنامه درست کار میکنه.ببینید برنامه demo برای خوندن tag باید 5 مرحله رو طی کنه:
1-request
2-Anticoll
3-select
4-load key
5-Authentication
6-read/write
توی مرحله 6 دستگاه آماده میشه تا داخل tag رو بخونه یا توش بنویسه.حالا من نمیدونم که شما چطوری میتونید به همین سادگی توش بنویسید یا ازش بخونید.
در ضمن من وقتی که دستگاه رو نصب میکنم توی device manager به قسمت Universal Serial Bus Controllers گزینه زیر اضافه میشه:
IC Card Reader
منتها اون گزینه هایی که شما گفتید رو نتونستم از توی Properties پیدا کنم.
در ضمن من کامپوننت ComPort رو هم نصب کردم.
به خاطر همین هستش که میگم باید تلفنی صحبت بشه.
راستی ممکنه source برنامه رو هم بذارید؟
بهرحال از اینکه وقت میذارید ممنونم.
-
نقل قول: نحوه استفاده از دستگاه RFT-200
راستی منظور از نوع داده AnsiChar چیه؟
-
نقل قول: نحوه استفاده از دستگاه RFT-200
دوست عزیز شما ظاهرا برنامه ای که نوشتید فقط بارکد رو میخونه.درسته؟
من موفق شدم که با دستگاه ارتباط برقرار کنم.(Port 3).منتها نمیدونم چجوری باید بارکد رو بخونم.در واقع اون دو تا متغیر از نوعهای AnsiChar و Count که از نوع integer هستش رو بیشتر توضیح بدید.و اینکه این procedure چجوری باید فرواخونی بشه.مثلا توی Button1 کد زیر درسته؟
ComPort1.OnRxChar(Owner,0);
یا باید این کد رو درون یه Timer نوشت؟
ممنونم.
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
دوست عزیز شما ظاهرا برنامه ای که نوشتید فقط بارکد رو میخونه.درسته؟
Card Reader است .
نقل قول:
در ضمن من وقتی که دستگاه رو نصب میکنم توی device manager به قسمت Universal Serial Bus Controllers گزینه زیر اضافه میشه:
IC Card Reader
شما پس از نصب درايور تو قسمت device manager بايد به گزينه ها (Ports (COM & LPT نگاه كنيد نه به Serial Bus Controllers !!!
نقل قول:
من موفق شدم که با دستگاه ارتباط برقرار کنم.(Port 3).منتها نمیدونم چجوری باید بارکد رو بخونم.در واقع اون دو تا متغیر از نوعهای AnsiChar و Count که از نوع integer هستش رو بیشتر توضیح بدید.و اینکه این procedure چجوری باید فرواخونی بشه.مثلا توی Button1 کد زیر درسته؟
ComPort1.OnRxChar(Owner,0);
یا باید این کد رو درون یه Timer نوشت؟
نيازي به تايمر نيست ، پس از اضافه كردن ابزار TComPort و Memo به روي فرم كافيه در روال OnRxChar از ابزار ComPort كد زير رو وارد كني :
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort1.ReadStr(Str, Count);
Memo1.Text := Memo1.Text + Str;
End;
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);varStr: String;Count :Integer;beginComPort1.ReadStr(Str, Count);Memo1.Text := Memo1.Text + Str;End;
یک شنبه 02 اسفند 1388 09:17 صبح
نقل قول:
برنامه شما خطای زیر رو میده:
کد:
Unable to open com port(win error code: 2)
به خاطر اينه كه شما پورت مربوط به دستگاه رو درست معرفي نكرديد !
نقل قول:
منتها اون گزینه هایی که شما گفتید رو نتونستم از توی Properties پیدا کنم.
اون مشخصات تو Properties هاي ابزار TcomPort هستند ، اگه در كامپوننتي كه شما نصب كرديد وجود ندارن حتما شما از كامپوننتي متفاوت استفاده كرديد ، تا اونجايي كه من اطلاع دارم دو نوع كامپوننت با اين نام وجود دارد .
كامپوننتي كه من مد نظرم است اينه : DsgnCport7.bpl كه 6 ابزار با خودش نصب مي كنه و يكيش هم همون TComPort است .
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من از ویندوز 7 استفاده میکنم.اما این قسمتی که توی device manager بهش اشاره کردید رو نمیتونم پیدا کنم.اما تو همون قسمت universal Serial Controllers برای دستگاه port3 رو معرفی کرده.در ضمن میشه درباره اون دو تا پارامتر هم توضیح بدید؟
ممنونم.
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من موفق شدم کامپوننت رو نصب کنم.دقیقا همون چیزی هستش که گفتید.6 تا ابزار داره.شی ComPort1 رو روی صفحه میذارم و تنظیمات زیر رو اعمال می کنم:
BaudRate = br9600
DataBits = dbEight
Discardull = True
Port = COM3
StopBits = sbOneStopBit
و یه memo و یه button و یه ComPort1 روی صفحه میذارم برای Button کد زیر رو می نویسم:
procedure TForm1.Button1Click(Sender: TObject);
begin
ComPort1.Connected:=True;
ComPort1.OnRxChar(Owner,0);
end;
و در رویداد OnRxChar مربوط به ComPort هم کد زیر رو مینویسم:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str:AnsiString;
begin
Str:='123';
ComPort1.ReadStr(Str,Count);
Memo1.Text:=Memo1.Text + Str;
end;
گاهی مواقع خطای زیر رو میده:
ComPort Error:Unknown Error #32 on Com3
و گاهی مواقع هم که Port رو درست شناسایی میکنه خطای AV میده:
Access Violation at Address 00000000 Read of address 00000000
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
Batman
من موفق شدم کامپوننت رو نصب کنم.دقیقا همون چیزی هستش که گفتید.6 تا ابزار داره.شی ComPort1 رو روی صفحه میذارم و تنظیمات زیر رو اعمال می کنم:
BaudRate = br9600
DataBits = dbEight
Discardull = True
Port = COM3
StopBits = sbOneStopBit
و یه memo و یه button و یه ComPort1 روی صفحه میذارم برای Button کد زیر رو می نویسم:
procedure TForm1.Button1Click(Sender: TObject);
begin
ComPort1.Connected:=True;
ComPort1.OnRxChar(Owner,0);
end;
و در رویداد OnRxChar مربوط به ComPort هم کد زیر رو مینویسم:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str:AnsiString;
begin
Str:='123';
ComPort1.ReadStr(Str,Count);
Memo1.Text:=Memo1.Text + Str;
end;
گاهی مواقع خطای زیر رو میده:
ComPort Error:Unknown Error #32 on Com3
و گاهی مواقع هم که Port رو درست شناسایی میکنه خطای AV میده:
Access Violation at Address 00000000 Read of address 00000000
نوشتن اين كد :
ComPort1.OnRxChar(Owner,0);
اضافيه !
درضمن براي Str هم نبايد مقدار بديد ! اين كد هم اضافيه !
Str:='123';
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نوع کارتهای شما چی بوده؟
یعنی اگه من از نوع کارتهای شما داشته باشم و روبه روی دستگاه بگیرم و سپس اون کد رو اجرا کنم محتویات کارت رو داخل Memo میتونم بببینم؟
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
Batman
نوع کارتهای شما چی بوده؟
نوع كارت هاي من از نوع RF card هستند .
مگه شما هنوز كارت نداريد ، پس با چي برنامه رو تست مي كنيد ؟!
نقل قول:
نوشته شده توسط
Batman
یعنی اگه من از نوع کارتهای شما داشته باشم و روبه روی دستگاه بگیرم و سپس اون کد رو اجرا کنم محتویات کارت رو داخل Memo میتونم بببینم؟
بله ، فقط يه كم بايد در نوشته بالاي شما تغيير داد و اينطوري نوشت :
یعنی اگه من از نوع کارتهای شما داشته باشم و اون کد رو اجرا کنم و سپس روبه روی دستگاه بگیرم محتویات کارت رو داخل Memo میتونم بببینم؟ بله
-
نقل قول: نحوه استفاده از دستگاه RFT-200
کارت من از نوع Mifare 1k هستش؟به خاطر همینه که میگم 5 مرحله داره.
-
2 ضمیمه
نقل قول: نحوه استفاده از دستگاه RFT-200
من دو نوع tag براتون میذارم لطفا بگید که کدوم یک از Tagهارو امتحان کردید.
tag اولی tag از نوع read/write هستش و tag دومی برای حضور و غیاب یه اداره هستش.
در ضمن من توی Procedure مربوط به RxOnChar کدهایی رو که گفتید نوشتم.خوب حالا چجوری و کجا Procedure رو فراخونی کنم؟
-
نقل قول: نحوه استفاده از دستگاه RFT-200
دوست عزیز میشه کامپوننت comportی رو که خوتون استفاده کردید رو واسم Upload کنید؟ممنونم
-
نقل قول: نحوه استفاده از دستگاه RFT-200
اين هم يك مثال از بلوك try..except براي به دام انداختن خطاها :
procedure TForm1.Button1Click(Sender: TObject);
var
a: extended;
b: Integer;
begin
a := 10;
b := 0;
try
ShowMessage(FloatToStr(a / b));
except
on E: Exception do
ShowMessage(e.Message);
end;
end;
نكته : هميشه كدهاي خود را در داخل اين بلاك بنويسيد، چون اگر در سيستم مشتري نرم افزار شما يك Remote Debuger نصب شده باشد با رخ دادن اولين استثناي مديريت نشده در برنامه، برنامه ي شما به طرز وحشتناكي خاتمه ميابد!!!!!!
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من یه درخواست Source code برای دلفی به سایت سازنده دستگاه دادم . اونها هم یه نمونه برام فرستادن.منتها من که چیزی ازش سر در نیاوردم.لطفا یه نگاهی بهش بندازید.
http://rapidshare.com/files/35440654..._code.rar.html
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
نوشته شده توسط
Batman
من دو نوع tag براتون میذارم لطفا بگید که کدوم یک از Tagهارو امتحان کردید.
tag اولی tag از نوع read/write هستش و tag دومی برای حضور و غیاب یه اداره هستش.
در ضمن من توی Procedure مربوط به RxOnChar کدهایی رو که گفتید نوشتم.خوب حالا چجوری و کجا Procedure رو فراخونی کنم؟
از هر دوتاش هم ميشه استفاده كرد ولي من از كارت استفاده كردم .
لازم نيست RxOnChar رو جايي فراخواني كنيد ، اين پروسيجر خود به خود هنگام دريافت داده از پورت مربوطه اجرا ميشه .
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من مثال كامل كار با كارتهاي مايفر و password دار كردن ركوردهاي آنها را با vb دارم اگر خواستيد براتون بگذارم
-
نقل قول: نحوه استفاده از دستگاه RFT-200
سلام.
ببخشین من به تازگی درگیر انجام پروژه ای برای کا با RFT-200 شدم
مباحث دوستان در این بخش را کامل مطالعه کردم. من هم مشکلاتی Batman دارم
دستگاه من از طریق کابل USB به سیستم (labtop) کانکت می شه و بعد از اتصال و نصب دریوار مربوطه اصلاً در Device Manager گزینه ای مربوط به Port(چه سریال و چه موازی) وجود نداره که بطونم از طریق TComPort بهش دسترسی پیدا کنم.
همراه با دستگاه چند DLL به من داده شده که باید از MF_API.dll استفاده کنم ولی مشکل اینجاست که با فراخوانی هر یک از توابع این Dll یک خطا(دسترسی غیر مجاز به حافظه) ایجاد میشه.
من در کارم متوقف شدم و احتیاج به کمک دارم.
لطفاً دریغ نکنید.
-
نقل قول: نحوه استفاده از دستگاه RFT-200
نقل قول:
دستگاه من از طریق کابل USB به سیستم (labtop) کانکت می شه و بعد از اتصال و نصب دریوار مربوطه اصلاً در Device Manager گزینه ای مربوط به Port(چه سریال و چه موازی) وجود نداره که بطونم از طریق TComPort بهش دسترسی پیدا کنم.
وقتي با usb اتصال برقرار ميشود نيازي به باز كردن port نيست فقط بجاي com3وارد ميكنيد usb
-
نقل قول: نحوه استفاده از دستگاه RFT-200
سلام
دوستان عزیز من هم مشکل دوستان را داشتم که با جستجو به تاپیک شما برخوردم .
آیا کسی مشکل دسترسی به حافظه را حل کرد ؟ من سورس #C و VB رو اجرا می کنم درسته ولی دلفی نه ؟
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من مشکل را حل کردم
اگر دوست داشین Email بدین تا راهنمای استفاده را برایتون ارسال کنم
-
نقل قول: نحوه استفاده از دستگاه RFT-200
من ایمیل شما رو پیدا نکردم ولی در پیغام خصوصی ایمیل خودم را فرستادم
با تشکر فراوان .
-
نقل قول: نحوه استفاده از دستگاه RFT-200
Aliasghar جان هنوز منتظریمــــــــــــــــــ ـــــــــــــــــــــــــ ــا . هیچ ایمیلی از شما دریافت نکردم .
ایمیل من : f.ghasemi@gmail.com
-
نقل قول: نحوه استفاده از دستگاه RFT-200
تورو خدا کامپوننت DsgnCport7.bpl رو بهم بدین
hesarkhani@gmail.com
-
2 ضمیمه
نقل قول: نحوه استفاده از دستگاه RFT-200
سلام
چرا قسم میدی ؟:لبخند:
بیا یه dll بدم برو مستقیم با RFT200 کار کن خودش مستقیم همه فانکشناشو ران می کنه (البته اگه مشکلتون همین بود)
-
نقل قول: نحوه استفاده از دستگاه RFT-200
سلام
ببخشید من این فایل شما را دانلود و اجرا کردم ولی هم فایل اجرایی که فرستادید و هم موقع اجرای برنامه از طریق سورس پیغام زیر داده میشه و برنامه دستگاه را نمیشناسه و برنامه اجرا نمیشه .
Class not registered,ClassID:{8A065704-BC54-421C-9026-FB97A3B03EC8}
ممنون میشم راهنماییم کنید .