مركز آموزش IT

مركز آموزش IT

با سلام خدمت دوستان از اينكه نتونستم مقالات جديد رو توي وبلاگ بزارم متاسفم شايد اين هفته اين كار رو بكنم. دليل تاخير هم راه اندازي مركز آموزشي فن آوري اطلاعات با همكاري دوستام در اميديه هست كه به اميد خدا اسفند ماه افتتاح خواهد شد

درس اول : آغاز ارتباط و کنترل خط

درس اول : آغاز ارتباط و کنترل خط

نکته : برای ایجاد ارتباط بایستی حتما یک دستگاه مودم بر روی کامپیوتر شما نصب باشد و خط تلفن به آن متصل باشد.

جهت ایجاد ارتباط بایستی سه عمل اولیه انجام دهید:

1-             ابتدا بایستی خط ارتباطی را برای برنامه مشخص کنید. منظور اینست که شما از طریق کدام پورت یا کدام مودم می خواهید تماس را برقرار کنید و آن خط را بایستی فعال کنید.

2-             بایستی شماره گیری را آغاز کنید. پس از اجرای درست و موفقیت آمیز مرحله بالا خط تلفن آماده خواهد بود که شماره تلفن مورد نظر را بصورت رشته ای وارد کنید و شماره گیری را آغاز کنید.

3-                   بایستی وضعیت ارتباطی را بررسی کنید. پس از شماره گیری بایستی بررسی کنید که آیا ارتباط برقرار شد، خط مشغول است و...

برای درک بیشتر و بهتر مثالی در زیر آماده کرده ام که با همدیگر آن را مورد مطالعه قرار می دهیم:

ابتدا وارد دلفی شده و یک پروژه جدیدی شروع کنید و اجزاء زیر را بر روی فرم مانند شکل را قرار دهید:

                             

در مثالهای زیر توابع، متدها و خصوصیهای مربوط به کامپوننتهای تلفن را با رنگ نارنجی جهت راحتی کار نشان داده ایم و در مورد آنها توضیحاتی را نوشته ایم،  البته لازم بذکر است که کلیه توابع در صورت موفقیت مقدار صفر را بر می گردانند و در صورت عدم موفقیت کد مربوط به خطا را بصورت عدد بر می گردانند که ما در برنامه زير از متغیر err برای ذخیره کد خطا و سپس نمایش خطای مربوط به آن استفاده کردیم.

1-                   ابتدا در قسمت Var اصلی برنامه سه متغیر با نامهای زیر تعریف کنید:

var

    Form1: TForm1;

    I       : Word;

    S      : WideString;

    err    : Word; 

implementation

2-                  بر روی فرم دوبار کلیک کرده تا رویداد OnCreate فرا خوانی شود و سپس کد زیر را وارد کنید:

procedure TForm1.FormCreate(Sender: TObject);

begin

    for I := 0 to KDPhone1.NumberOfLines-1 do

       begin

             KDPhone1.GetLineName( i,s );

             ComboBox1.Items.Add(S)

       end;

end;

در کد فوق همانگونه که مشاهده می کنید از یک حلقه شمارشی برای بدست آوردن خطوط ارتباطی موجود در کامپیوترمان استفاده کرده ایم. در این حلقه از خصوصیت NumberOfLines برای بدست آوردن تعداد خطوط استفاده کردیم سپس با استفاده از تابع GetLineName( i,s ) برای بدست آوردن نام خط ارتباطی و ذخیره آن در متغیر S  استفاده کردیم و در انتها مقدار S را درون ComboBox1 اضافه کردیم تا برنامه موقع اجراء لیستی از خطوط ارتباطی را جته انتخاب به ما نشان دهد.

3-                  اکنون بر روی ComboBox1 دابل کلیک کنید و کد زیر را وارد کنید:

 procedure TForm1.ComboBox1Change(Sender: TObject);

begin

  err :=  KDPhone1.LineActive(ComboBox1.ItemIndex,True);

  if err<>0 then ShowMessage(KDPhone1.GetErrorMsg(err))

  else Memo1.Lines.add('خط ارتباطی آماده می باشد');

end;

در فوق ما کدی نوشتیم که کاربر با انتخاب هر کدام از خطوط موجود در ComboBox1 بتواند آن خط را بعنوان خطوط فعال توسط تابع  LineActive( LineNumber , True )  معرفی و فعال کند. چنانچه فعال سازی خط با مشکل مواجه شود آنگاه با استفاده از تابع GetErrorMsg(err) پیغام مربوط به آن خطا را بدست آورده و نمایش می دهیم. شما می توانید درون اسامی مربوط به خطوط و دستگاههاي ارتباطي نام مودم خود را یافته و آنرا انتخاب کنید.

4-              اکنون بر روی دکمه Dial  دابل کلیک کنید و کد زیر را بنویسید:

procedure TForm1.Button1Click(Sender: TObject);

begin

  err := KDPhone1.DialNumber( Edit1.Text,0 );

  if err<>0 then ShowMessage(KDPhone1.GetErrorMsg(err)); 

end;

توسط تابع  DialNumber( Edit1.Text,0 ); شماره تایپ شده توسط کاربر در Edit1.Text شروع به شماره گیری می گردد. شما می توانید شماره ثابتی را درون این تابع بصورت رشته ای بنویسید.

 5-         در این قسمت ما با کنترل وضعیتهای مختلف تلفن آشنا می شویم که می توان توسط آن سیستمی بسیار قوی و با دقت طراحی کرد. وضعیتهای مختلف هنگام فعالیتKDPhone  در جدول زیر آمده اند اما ما در این تمرین فقط با چندتا از آنها که اهمیت ویژه ای دارند آشنا می شویم:

csError

csRemotePartyDisconnected

csDisconnected

csOfferedCallDropped

csBusy

csConnected

csWaitingDisconnection

csOffering

csProceeding

csNoDialTone

csRing

csDialing

csWaitingForFaxCommand

csRemovedFromConference

csInConference

csOnHold

csRingBack

csDialTone

 

 

csUnhold

اکنون شئی KDPhone1 را انتخاب کرده و سپس از پنجره Object Inspector به تب Events رفته و در مقابل OnCallState دابل کلیک کنید و سپس کد زیر را بنویسید:

procedure TForm1.KDPhone1CallState(Sender: TObject; CallState: TCallState;

  Param1, Param2, CallHandle: Integer);

begin

   case CallState of

     csDialing :     Memo1.Lines.Add( 'در حال تماس گرفتن');

      csConnected  :

begin

                     Memo1.Lines.Add( 'تماس برقرار شد' );

                     Err := KDVoice1.Play( KDPhone1. WavePlayID,'C:\ Wellcome.Wav',0,-1 );

                     if err<>0 then ShowMessage(KDPhone1.GetErrorMsg(err))

                    else Memo1.Lines.Add('در حال پخش پیغام');

                end;    

     csDisconnected : Memo1.Lines.Add( 'ارتباط قطع شد' );

     csBusy: 

begin

                      Memo1.Lines.Add( 'خط تلفن مشترک مشغول می باشد' );

                      KDPhone1.Hangup;

                end;

     csError:

begin

       Memo1.Lines.Add( 'خطایی در تماس رخ داده است' );

                     KDPhone1.Hangup;

end;

 end; //of case

end;

به نظر می رسد کمی گیج کننده باشه ولی کامل منطقی و جالب می شه گفت با کد نویسی درست وضعیتها می شه کنترل بیشتری بر روی سیستم داشته باشیم اما شرح کدها:

وضعيت   csDialing موقعي اتفاق مي افتد كه تلفن طرف مقابل در حال زنگ خوردن باشد.

وضعیت csConnected  موقعی اتفاق می افتد که خط ارتباطی و شماره طرف مقابل با موفقيت وصل شود که در اینصورت ما بعد از نمایش پیغامی مناسب توسط شئی KDVoice1 و با استفاده از تابع Play  فایل صوتی Wellcome.Wav واقع در درایو C: را پخش کردیم که در این هنگام طرف مقابل آن صدا را خواهد شنید لازم بذکر است که فایل صوتی حتما باید از نوع Wav باشد.

وضعیت csDisconnected موقعی رخ دهد که به هر طریق ارتباط قطع گردد.

وضعیت csBusy موقعی رخ می دهد که تلفن مقابل زنگ مشغولی بخورد که ما در این هنگام پس از نمایش پیغام مناسب سعی بر قطع ارتباط با استفاده از متد Hangup کردیم این متد هر کجا بکار رود موجب قطع ارتباط شده و وضعیت   csDisconnected  را بوجود می آورد.

وضعیت  csError  موقعی بکار می رود که در هر صورتی خطای در ارتباط رخ دهد. که در این هنگام ما سعی بر قطع ارتباط می کنیم.

توضیح در مورد تابع Play : این تابع برای پخش صدا بکار می رود که پارامتر اول آن نشان دهنده محل پخش فایل صوتی است اگر مقدار آن 1- باشد یعنی صدا از طریق کارت صدای کامپیوتر جاری پخش شود و اگر از تابع WavePlayID مربوط به شیئ KDPhone استفاده کنیم آنگاه خط تلفن را برای پخش بکار می گیرد، در پارامتر دوم بایستی مسیر و نام فایل صوتی را مشخص کنیم، پارامتر سوم محل آغاز پخش فایل را مشخص می کند که عدد صفر نشانه شروع از ابتدا می باشد و آخرین پارامتر محل پایان فایل صوتی را نشان می دهد که مقدار 1- نشان دهنده پایان فایل است.

6-            اکنون شئی KDVoice1 را انتخاب کرده و سپس از پنجره Object Inspector به تب Events رفته و در مقابل OnSoundState دابل کلیک کنید و سپس کد زیر را بنویسید:

procedure TForm1.KDVoice1SoundState(Sender: TObject; State: TSoundState; BytePosition, ErrorNumber: Integer);

begin

    Case State of

          ssPlayDone:

                begin

       Memo1.Lines.Add( 'پخش فایل صوتی با موفقیت به پایان رسید' );

                     KDPhone1.Hangup;

                end;

          ssError:

              begin

                    KDPhone1.Hangup;

       Memo1.Lines.Add( 'خطایی در پخش صدا رخ داده است' );

              end;

     end; // of case

end;

شئی KDVoice داری 11 وضعیت مختلف و کاربردی می باشد که در اینجا فقط به 2 از آنها اشاره کردیم (در مقالات بعدی این شئ بیشتر مورد بررسی قرار خواهد گرفت) . در وضعیت اول که در هنگام پایان پخش فایل صوتی اتفاق می افتد ما پیغامی را نمایش دادیم و سپس ارتباط را قطع کردیم.

اين هم تصويري از برنامه اجرا شده:

                                     

اینجانب در حال آماده کردن یک فایل ini مرجع کل خطاهای کامپوننت به زبان فارسی هستم که در اسرع وقت در اختیار شما قرار خواهم داد.

شما می توانید با استفاده از یک بانک اطلاعاتی برنامه ای بنویسید که به تلفن نفرات موجود تماس گرفته و پیغامی را پخش کند و در صورتی که موفق نشود فلگی (یک فیلد از نوع بولی) را علامت بزند تا شما بعدا به آن رسیدگی کنید و در صورت موفقیت نفر بعدی را بگیرد. مثلا سیستمی یادآوری تاریخ آزمون شاگردان. البته میشه برنامه های دیگری را نوشت در مقالات بعدی شما را با مطالب جالبتر و کاربردیتر آشنا می کنم.

خوب دوستان عزیز تا اینجا چطور بود نظر خودتان را برای بهتر شدن مطالب بنویسید منتظر نظرات شما هستم

در روهاي آينده بيش از۵ مقاله كاربردي و بهتر قرار خواهم داد منتظر باشيد...

مقدمه مقالات تلفن : آموزش نصب

مقدمه مقالات تلفن : آموزش نصب

با سلام همانگونه كه قول دادم مطالب را از امروز شروع مي كنم

ابتدا کامپوننت را از پایین دانلود کرده و سپس آنرا از حالت فشرده در آورده (با برنامه Winrar) و سپس آنرا در مسیر دلخواهی کپی کرده و نصب کنید در ضمن پس از باز كردن فايل از حالت فشرده پوشه اي با نام Sound را در آن پيدا خواهيد كرد كه فايلهاي صوتي مورد نياز تمارين و مثالها درون آن هست.

نحوه نصب به این شکل می باشد که ابتدا دلفی را اجرا کرده و سپس از منوی Component > Install Packges را کلیک کرده و سپس بر روی دکمه Add.. کلیک کرده و سپس وارد مسیر شده و فایل KDTeleDelphi2006.bpl یا KDTeleDelphi7.bpl (بستگی به نسخه دلفی شما) را انتخاب کرده و در خاتمه OK را کلیک کنید.

اکنون گروه جدیدی با نام KDTele Tools به کامپوننتهای دلفی اضافه می شود که شامل 8 جزء زیر می باشد:

KDPhone

 ایجاد ارتباط تلفی و کنترل تلفن

KDVoice

ضبط و پخش صدا بر روی خط تلفن

KDFax

ارسال و دریافت فکس

KDFile

ارسال و دریافت هر گونه فایل

KDSpeack

پخش متن دلخواه بصورت صدا بر روی خط تلفن

KDListen

دریافت فرمانهای صورتی

KDSerialPort

کنترل و ارسال داده از طریق پورت سریال

KDWaveEditor

کنترل صدا و نمایش موج صوتی

در مقالات بعدی استفاده از این اجزاء را همراه با ذکر مثال توضیح خواهم داد و سعی بر این است که با ساده ترین مثالهای ممکن نحوه استفاده از آنها را توضیح دهم و انشا... به یاری امام زمان در پایان سعی بر نوشتن پروژه های حرفه ای و کاربردی خواهم کرد. یا علی................

                                                                                      دانلود

برنامه نویسی خط تلفن

برنامه نویسی خط تلفن

      

این بار می خواهم با یک مقاله جذاب و کاربردی شما را قافل گیر کنم که ممکن است این مقاله تا 3 قسمت  طول بکشد، در این مقاله با مطالب زیر آشنا می شویم:

·                      نصب و آشنايي با متدها

·                      راهندازي و ارسال پيغام از طريق خط تلفن

·                      شماره گیری و پخش صدا از طریق تلفن

·                      طراحی تلفن پیامگیر ( عکس العمل به شماره فشرده شده)

·                      ارسال فایل از طریق تلفن

·                      ارسال فکس

·                      ظبط صدای تماس گیرنده و تارخ و ساعت تماس

·                      و...

تنها کاری که شما بایستی انجام دهید اینست که ابتدا کامپوننت تلفن را که در پستهای پیشین قرار داده ام دانلود کنید و پس از نصب آن بر روی دلفی کارهای زیر را انجام دهید:

1.                     از نصب بودن مودم روی کامپیوتر خود مطمين شويد

2.                    خط تلفن را به مودم وصل کنید

3.                   گام به گام مطالب آتی را دنبال کنید.

به زودي ....

يا اباعبدالله الحسين