Subscribe

Powered By

Free XML Skins for Blogger

Powered by Blogger

..:: Perbuatan yang baik selalu dihasilkan oleh pikiran yang baik::..

"Kegagalan bukanlah untuk ditangisi,tetapi untuk di insyafi.
Manakala kejayaan bukan untuk dimegahi,tapi untuk disyukuri!"

الأحد، 16 مارس 2008

PENGOLAHAN FILE KOMUNIKASI

Pada QBasic tersedia fasilitas untuk melakukan komunikasi data
melalui interface RS232 pada Serial Port COM1 dan COM2 yang
diperlakukan seperti pengolahan file.

Pada fasilitas perkantoran peralatan seperti PABX dapat
dihubungkan dengan PC melalui interface RS232 pada Serial Port
COM1 maupun COM2 untuk mendapatkan CMDR log dari pemakaian
telepon.

Dengan menggunakan fasilitas pada QBasic, anda dapat membuat
program untuk membaca data CMDR dari Serial Port COM1 maupun COM2
untuk disimpan maupun diolah menjadi informasi yang lebih baik,
misalnya perhitungan tarif pemakaian telepon tiap individu.


1. Perintah membuka dan menginisialisasi saluran komunikasi

Perintah OPEN COM harus dilakukan sebelum peralatan dapat
digunakan untuk komunikasi melalui interface RS232.

OPEN "COMn: list1 list2" FOR RANDOM AS [#]nomor]

dimana :
n adalah nomor port komunikasi yang ingin dibuka
(1 = COM1, 2 = COM2).

list1 adalah parameter komunikasi yang sering digunakan :
[baud] [,[parity] [,[data] [,[stop]]]]

baud adalah baud rate dari peralatan yang dibuka :
75, 110, 150, 300, 600, 1200, 2400, 4800, 9600

parity adalah metode dari pemeriksaan pariti :
N (none) E (even) O (odd)
S (space) M (mark) PE (enable error checking)

data adalah jumlah data bit setiap byte :
5, 6, 7, 8

stop adalah jumlah stop bit :
1, 1.5, 2

Defaultnya: 300 baud, even parity, 7 data bits, 1 stop bit.

list2 adalah parameter komunikasi yang jarang digunakan yang
dipisahkan dengan koma.

Option Description

ASC Opens the device in ASCII mode.
BIN Opens the device in binary mode.
CD[m] Sets the timeout period (in milliseconds) on the
Data Carrier Detect (DCD) line.
CS[m] Sets the timeout period (in milliseconds) on the
Clear to Send (CTS) line.
DS[m] Sets the timeout period (in milliseconds) on the
Data Set Ready (DS) line.
LF Sends a line-feed character after a carriage
return.
OP[m] Specifies how long (in milliseconds) OPEN COM
waits for all communications lines to become open.
RB[n] Sets the size (in bytes) of the receive buffer.
RS Suppresses detection of Request to Send (RTS).
TB[n] Sets the size (in bytes) of the transmit buffer.

Contoh :

OPEN "COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1

Akan membuka Serial Port COM1 sebagai file nomor 1, mengenai
parameter komunikasi sangat bergantung kepada setting pabrik
peralatan tersebut.


Membaca dari peralatan yang terbuka

INPUT$(n,nomor)

dimana
n adalah jumlah karakter yang dibaca.
nomor adalah nomor file yang terbuka.

Contoh :

A$ = Input$(1,1)

Dimana akan menbaca 1 huruf dari file nomor 1


Mengirim data ke peralatan yang terbuka

Anda dapat menggunakan perintah print untuk mengirim data ke
peralatan yang terbuka.

Print #nomor, ekspresi

Contoh :

Print #1, "A"

Akan mengirim huruf "A" ke file nomor 1


Memeriksa keberadaan data pada Receive Buffer file komunikasi.

Anda dapat menggunakan fungsi LOC(nomorfile) untuk mengetahui
apakah input buffer dalam keadaan kosong atau berisi data.


Contoh :

OPEN "COM1:300,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1

DO

tekan$ = INKEY$
IF tekan$ <> "" THEN
PRINT #1, tekan$; 'Kirim apa yang ditekan
END IF
IF LOC(1) <> 0 THEN 'Jika ada data pada Recieve Buffer
baca$ = INPUT$(1, 1) 'Baca satu huruf
PRINT baca$;
END IF

LOOP

CLOSE #1


Program diatas adalah contoh Chatting sederhana melalui kabel
LapLink antara dua komputer yang dihubungkan melalui COM1.


Menutup file

Untuk menutup file, anda dapat menggunakan perintah close.

Close #nomor

Contoh :

Close #1


Contoh program komunikasi RS232 antara Pabx Rolm vscbx dengan PC
melalui COM1, untuk maintenance :

OPEN "COM1:300,E,7,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1

DO

tekan$ = INKEY$

IF tekan$ <> "" THEN
PRINT #1, tekan$; 'Kirim apa yang ditekan
END IF

IF LOC(1) <> 0 THEN 'Jika ada data pada Recieve Buffer
baca$ = INPUT$(1, 1) 'Baca satu huruf
PRINT baca$;
END IF

LOOP

CLOSE #1


Contoh program komunikasi RS232 antara Pabx Rolm vscbx dengan PC
melalui COM2, untuk CMDR Log :

OPEN "COM2:1200,E,7,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1
OPEN "CMDR.LOG" FOR BINARY AS #2

JlhByte = LOF(2)

DO

tekan$ = INKEY$

IF LOC(1) <> 0 THEN 'Jika ada data pada Recieve Buffer
baca$ = INPUT$(1, 1) 'Baca satu huruf
JlhByte = JlhByte + 1
PUT #2, JlhByte, Baca$
PRINT baca$;
END IF

LOOP UNTIL tekan$ <> ""

CLOSE #1

CLOSE #2


ليست هناك تعليقات: