C++ Interfacing.

Slides:



Advertisements
Presentasi serupa
INTRO (TO BPOS). What is BPOS? Apakah BPOS itu? •BPOS = (Microsoft) Business Productivity Online Suite (Service) •adalah sebuah layanan online Microsoft,
Advertisements

Dasar dasar GUI programming di Java
MS. POWER POINT 2007 Kelas XII Semester 2
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation. All.
Kontrol Data Set.
Algoritma & Pemrograman #10
Array Multidimensi MATRIK.
Mata Kuliah : ALGORITMA dan STRUKTUR DATA 1.
Memulai Drive Test menggunakan TEMS Investigation 6.1.4
EL-3014 Sistem Mikroprosesor Mikrokontroler AVR.
File Handling.
Nama PerangkatSpesifikasi Internet ProcessorPentium lll 500 Hz PAM (Random Access Memory)64 MB Harddisk10 GB VGA card4 MB MonitorTidak.
PART 3 TRAINING OUTPUT LED Dosen : Dwisnanto Putro, ST, M.Eng.
Process to Process Delivery
Pemrograman Visual. Pernyataan IF…THEN…ELSE Pernyataan ini hanya memeriksa apakah suatu blok kode program dapat dieksekusi atau tidak. Jika kondisi pernyataan.
Basic I/O Interface. Instruksi I/O ◦ IN ◦ OUT ◦ INS ◦ OUTS.
Pemrograman Berorientasi Objek
Rully Yulian MF MCAD,MCPD,MCT,MVP VB.NET Independent IT Trainer – Application Developer
Pemrograman JAVA (TIB09)
Database Create-Retrieve-Update-Delete (CRUD)
PENGENALAN PL/SQL.
Ilmu Komputer, FMIPA UGM
PROSES PADA WINDOWS Pratikum SO. Introduksi Proses 1.Program yang sedang dalam keadaan dieksekusi. 2.Unit kerja terkecil yang secara individu memiliki.
Could not load an object because it is not avaliable on this machine. Tidak dapat memuat sebuah benda karena tidak tersedia pada mesin ini.
Interface Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Oracle Developer/2000. Developer/2000 Products FormsReportsGraphics.
JAVA CLASS Bahasa Pemrogramam BAHASA PEMROGRAMAN PERTEMUAN #9.
STRUKTUR DATA (5) Pointer dan Function
Menggunakan OLE Drag-Drop
Menggunakan Drag-Drop
TEKNIK ANTAR MUKA (INTERFACING)
Sesi 4 – Mengenal Tool Authoring Arief Bahtiar, ST.,MT. Kepala Comlabs USDI – ITB, Koordinator E-learning
NoObjekPropertiNilai 1FrmsegitigaNameFrmsegiitiga 2FrmsegitigaCaptionLuas Segi Tiga MDI ( Multiple Document Interface ) Pendahuluan MDI singkatan dari.
Array.
Array
Switch. Perluasan dari bridge Arsitektur switch: – Store and forward.
Function, Procedure, Unit
Selamat Datang Peserta Workshop
LOGO Manajemen Data Berdasarkan Komputer dengan Sistem Database.
Chapter 1 Pendahuluan Komputer sebagai sebuah sistem yang berhirarki
Lecture 1 Introduction to C# Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
Definisi VLAN Pemisahan jaringan secara logis yang dilakukan pada switch Pada tradisional switch, dalam satu switch menunjukkan satu segmentasi LAN.
Operator dan Assignment Pertemuan 3 Pemrograman Berbasis Obyek Oleh Tita Karlita.
© 2009 Fakultas Teknologi Informasi Universitas Budi Luhur Jl. Ciledug Raya Petukangan Utara Jakarta Selatan Website:
#4. 12 APRIL 2013 Kompetensi : LIST. Kompetensi 5.
Pengaksesan Port Parallel Dengan VB
SUMBER CLOCK AVR UNIVERSITAS JENDERAL ACHMAD YANI RIZAL SURYANA.
Lazarus? Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal.
Web Teknologi I (MKB511C) Minggu 12 Page 1 MINGGU 12 Web Teknologi I (MKB511C) Pokok Bahasan: – Text processing perl-compatible regular expression/PCRE.
Person 19 || Marty Rori 1. Apa yang Buruk Tentang Menggunakan? Vairables global? 2 tidak aman!  Jika dua atau lebih programmer bekerja sama dalam program,
Fungsi Lecture 7. Motivation Complexity of programming problem  more difficult to consider the solution as a whole  clue: dividing the problem into.
STRUKTUR DATA (5) Pointer dan Function
STRUKTUR DATA Pointer dan Function
Pertemuan 1 Dasar Pemrograman Triana Elizabeth S. Kom Dibuat o/ : Renni Angreni, S.Kom.
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
File & Stream Kegunaan File :
Struktur Program Pascal
PERTEMUAN 3 KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
DASAR DASAR JAVA Dengan Netbans PBO Java.
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
TEKNIK ANTAR MUKA (INTERFACING)
Algoritma dan Pemrograman
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
TEL 2112 Dasar Komputer & Pemrograman
TEL 2112 Dasar Komputer & Pemrograman
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Pemrograman Terstruktur
File & Stream Kegunaan File :
TCP Socket Programming
Transcript presentasi:

C++ Interfacing

Bloodshed Dev C++ Compiler C GNU(GPL) dengan library MingW (porting dari GCC) Dapat dikombinasikan dengan Cygwin maupun kompiler lain yang dasarnya dari GCC Fitur : - Support GCC-based compilers - Integrated debugging (using GDB) - Project Manager - Customizable syntax highlighting editor - Class Browser - Code Completion - Function listing - Profiling support - Quickly create Windows, console, static libraries and DLLs - Support of templates for creating your own project types - Makefile creation - Edit and compile Resource files - Tool Manager - Print support - Find and replace facilities - CVS support

Struktur program C++ Program yang baik : Kepala program : mendeskripsikan sekilas info tentang programnya Deklarasi library, header file, konstanta, prototipe fungsi/prosedur dengan jelas Pisahkan fungsi/prosedur tambahan sebagai file terpisah -> program utama lebih pendek Berikan komentar yang jelas dan deskriptif untuk setiap bagian program

/* titel : tes c++ untuk interface author : xxx tgl : ... deskripsi : bla...bla..bla... */ //lib #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <windows.h> //global var - const #define Port_data 0x378 #define Port_ctrl Port_data++ #define Port_status Port_ctrl++ //proto func/sub /* ----Prototypes of Inp and Outp--- */ typedef short _stdcall (*inpfuncPtr)(short portaddr); typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); //main program int main() { //var library HINSTANCE hLib; oupfuncPtr Out32; inpfuncPtr Inp32; //Load the library hLib = LoadLibrary("inpout32.dll"); //get the address of the function Out32 = (oupfuncPtr) GetProcAddress(hLib, "Out32"); Inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32"); //use the function Out32(Port_data, 1); _sleep(1000); Out32(Port_data, 0); getch(); return 0; }

Mengakses Port Metode : Direct : Indirect Mengakses port secara langsung dengan mengakses alamat registernya (sederhana) Terbatas pada WIN98, WIN NT melarang akses langsung sebuah port Linux hanya membutuhkan privilege access dari admin Indirect Mengakses port sebagai sebuah file (kompleks) Windows => membutuhkan bantuan DLL eksternal Linux => secara default semua hardware pada Linux diakses sebagai sebuah file

Akses Port C++ Dengan Inpout32.dll Inpout32.dll merupakan library yang diperuntukkan untuk akses port secara bebas Untuk semua versi Windows Bisa dipakai oleh semua bahasa pemrograman yang mengenal akses librari eksternal Prototipe fungsi : void _stdcall Out32(short PortAddress, short data); short _stdcall Inp32(short PortAddress);

Mengakses Inpout32.dll Deklarasikan pointer fungsinya : /* ----Prototypes of Inp and Outp--- */ typedef short _stdcall (*inpfuncPtr)(short portaddr); typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); Deklarasi variabel pointer fungsinya : HINSTANCE hLib; oupfuncPtr Out32; inpfuncPtr Inp32; Load library inpout32.dll hLib = LoadLibrary("inpout32.dll"); Ambil alamat fungsinya Out32 = (oupfuncPtr) GetProcAddress(hLib, "Out32"); Inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32"); Free DLL dari memori FreeLibrary(hLib);

Mengakses Port Paralel Mendefinisikan alamat port yang dipakai #define Port_data 0x378 // port data #define Port_status 0x379 // port status #define Port_ctrl 0x37a // port control Mengeluarkan data ke Port Data Out32(Port_data, 1); //mengeluarkan data 1 ke port data Out32(Port_data, 0x3a); //mengeluarkan data 3AH ke port data Membaca Port Status sebagai input int ReadPortStatus(); //read port status int ReadPortStatus() { int dt1; dt1 = Inp32(Port_status); //ambil data dr port status dt1 ^= 128; //invert bit ke-7(s7 inverted) dt1 >>= 3; //shift 3bit kekiri, port status hardwired s3-s7 return dt1; }

Mengeluarkan data ke Port Control void WritePortControl(int adata); void WritePortControl(int adata) { Out32(Port_ctrl, adata ^ 0x0b); //bit 0,1,3 inverted } Membaca Port Data sebagai input Hanya pada mode ECP atau EPP Langkah : Set port data dengan 0xFF Set bit ke-5 port control menjadi 1 untuk mengaktifkan port data sebagai input Set bit ke-5 port control menjadi 0 untuk menghentikan pembacaan port data

void StartReadPortData(); void StopReadPortData(); int ReadPortData(); //start baca dari port data void StartReadPortData() { Out32(Port_data, 0xff); //set port data = 0xff Out32(Port_ctrl, 0x20); //set port ctrl.5 = 1 } //stop baca dari port data void StopReadPortData() Out32(Port_ctrl, 0); //set port ctrl.5 = 0 //baca dari port data int ReadPortData() return Inp32(Port_data); //read port data

Inpout32.dll Dengan Delphi Inpout32.dll dapat dipakai pada pemrograman lain, contohnya Delphi Kelebihan dibanding C++ : Inisialisasi DLL lebih mudah Bahasa mudah dimengerti daripada C GUI based -> lebih mudah menambahkan kontrol apapun -> lebih menarik Penggunaan memori seefisien C

Mengakses Port Paralel Inisialisasi fungsi : procedure Out32(wAddr:word;bOut:byte); stdcall; external 'inpout32.dll' function Inp32(wAddr:word):integer; stdcall; external 'inpout32.dll' Mendefinisikan alamat port yang dipakai Const Port_data = $378; //port data Port_status = Port_data + 1; // port status Port_control = port_status + 1; // port control Mengeluarkan data ke Port Data Out32(Port_data, 1); //mengeluarkan data 1 ke port data Out32(Port_data, $3a); //mengeluarkan data 3AH ke port data Membaca Port Status sebagai input Function ReadPortStatus: integer; Var integer : dt1; begin dt1 = Inp32(Port_status); //ambil data dr port status dt1 := dt1 xor 128; //invert bit ke-7(s7 inverted) dt1 := dt1 shr 3; //shift 3bit ke kanan, port status hardwired s3-s7 result dt1; end;

Mengeluarkan data ke Port Control Procedure WritePortControl(adata: integer) begin Out32(Port_ctrl, adata xor $0b); //bit 0,1,3 inverted end; Membaca Port Data sebagai input //start baca dari port data Procedure StartReadPortData Out32(Port_data, $ff); //set port data = 0xff Out32(Port_ctrl, $20); //set port ctrl.5 = 1 //stop baca dari port data Procedure StopReadPortData Out32(Port_ctrl, 0); //set port ctrl.5 = 0 //baca dari port data Function ReadPortData: integer result Inp32(Port_data); //read port data