Inledning till DLL för USB Experiment-Interfacekortet K8055



Documentos relacionados
MÓDULOS GAVETEIROS MGI-20/MGI-40 AC MGI 2000 AC. Manual de Instruções

Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows

NT_D1216.SYS DRIVER DA CDA12/16 PARA WINDOWS NT 4.0

WDM_1256.SYS DRIVER DA CAD12/56 PARA WINDOWS 98

Orientação a Objetos - Programação em C++

Delphi IDE. Jocélio Passos Delphi - IDE. Integrad Development Enviroment Ambiente de Desenvolvimento Integrado

FICHA DE ESPECIFICAÇÃO TÉCNICA. x PRODUTO PROCESSO DATA: 04/02/2013. PRODUTO: IcBox SUB-PRODUTO: DESCRIÇÃO: API DLL c++ (C++ builder e Delphi)

Evitando conflitos em aplicações multi-thread no Delphi/Kylix

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

MANUAL. Versão bits - 17/10/99. Para Windows 95/98

1. INTRODUÇÃO

Base RF para Terminais Shellby 915

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

Espectro da Voz e Conversão A/D

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

END OF FILE: Tutorial Chat Em Delphi

Inserindo Dados no Banco de Dados Paradox.

LW056 SWEEX WIRELESS LAN PC CARD 54 MBPS. O Windows detectará automaticamente o aparelho e aparecerá a seguinte janela.

Manual de Actualização de Firmware para câmaras fotográficas digitais Cyber-shot da Sony - DSC-F828

Seu manual do usuário EPSON LQ-630

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Trabalho Prático Nº2 Escrita e Leitura em Portos IO

Manual do Utilizador para DS150E. Dangerfield June V3.0 Delphi PSS

Projecto de uma placa com DIP-Switches e LCD com ligação à placa DETIUA

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Versão Portuguesa. Introdução. Conteúdo da embalagem. Especificações. PU002 Sweex 2 Port Serial PCI Card

Escola Secundária de Emídio Navarro

Manual PAG700/800 c/ comunicação WiFi

UNIVERSIDADE LUTERANA DO BRASIL DEPARTAMENTO DE ENGENHARIA ELÉTRICA DISCIPLINA DE ENGENHARIA DE PROCESSAMENTO DIGITAL II PROJETO DE SOFTWARE

Instalação do Sistema Operativo Windows XP

Copyright 2013 VW Soluções

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Guia de Instalação do Software

Guia de Instalação de Software

Câmara de vídeo digital. Manual do utilizador

Atenção ainda não conecte a interface em seu computador, o software megadmx deve ser instalado antes, leia o capítulo 2.

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Guia de Instalação e Licenciamento

Manual Técnico Módulo Ponte H Dupla

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

Prof. Sandrina Correia

Entradas/Saídas. Programação por espera activa Programação por interrupções

Versão Portuguesa. Introdução. Conteúdo da caixa. Especificações. PU001 Sweex 1 Port Parallel PCI Card

TUTORIAL DE PROGRAMAÇÃO. Configuração do cartão de entrada / saída analógica CP1W-MAD11.

MANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA Copyright 2002 Nokia. Todos os direitos reservados Issue 2

AD / DA. EXPERIMENTS MANUAL Manual de Experimentos Manual de Experimentos 1 M-1116A

Conteúdo do pacote. Lista de terminologia. Powerline Adapter

o Não tente usar WQV Link 2.0 com uma câmera CASIO WQV-1 ou WQV-2. Use o WQV Link 1.0 (WQV-1, WQV-2) apropriado.

Video Recording Manager export Wizard Version 1.0. Manual do software

STK (Start Kit DARUMA) Instalando o Driver USB para Mini-impressoras Daruma Windows XP

STK (Start Kit DARUMA) Procedimento de Instalação da FS700/MACH Conexão USB

MANUAL DE INICIAÇÃO RÁPIDA PARA. Instalar o Nokia Connectivity Cable Drivers

Introdução. à Estrutura e Funcionamento de um Sistema Informático

Leitor MaxProx-Lista-PC

GUIA DE INSTALAÇÃO E REFERÊNCIA ECR8200S/8220SPROGRAMMING UTILITY. P Code:

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

Manual Equipamento ST10 Flasher Rev. 1

Parallel to Serial Shifting IN

ÍNDICE 1. INTRODUÇÃO DESCRIÇÃO DO PICKIT Ligação da porta USB LEDs de estado Botão... 5

Roteador Load-Balance / Mikrotik RB750

Quadro de consulta (solicitação do mestre)

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Resumo da Instalação do Modelo HC-1180 Modbus RTU V Instalações Necessárias. P1- Drive USB para Windows do Conversor RS- 485 para USB.

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

UNIVERSIDADE LUTERANA DO BRASIL ULBRA CONTROLE DE MOTOR DE PASSO VIA PORTA PARALELA -BUILDER C++ FABRÍCIO DE MARI

Software para Leitura de Dados ITSW-U801

Cerne Tecnologia e Treinamento

INSTALAÇÃO DE NOKIA CONNECTIVITY CABLE DRIVERS

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

RECEPTOR GPS ME1513 ARM7 LPC ME Componentes e Equipamentos Eletrônicos Ltda

Multimedidores Inteligentes MGE G3 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Arquitetura de Rede de Computadores

Importante! Especificações. Instalação

Electrónica dos Sistemas Embebidos. Guia de Laboratório II

Tutorial exe elearning XHTML editor (versão 1.0x)

PROJECT 1 Delphi Project (Extensão. DPR)

Tutorial de Computação PWM v

SISTEMAS INFORMÁTICOS

Manual do utilizador Ethernet

QL-500 QL-560 QL-570 QL-650TD QL-1050

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC.

Protótipo de Software e Hardware para Aquisição de Dados.

Versão Portuguesa. Introdução. Atenção. Conteúdo da embalagem. Especificações SWEEX.COM. SC002 Sweex 5.1 PCI Sound Card

Aumenta a disponibilidade do sistema e a segurança dos processos industriais Permite que sinais de entradas e saídas convencionais possam ser

PARÂMETROS DO BLOCO SWITCH ESCOLHA ATRAVÉS DE UM SENSOR (TOQUE)

Lumitester PD-20. Manual de uso. Índice. Software de controlo

Manual de utilizador

8. Perguntas e Respostas

STK (Start Kit DARUMA) Procedimento de Instalação do Min200E Conexão USB

SCD 912. Dispositivo de comunicação e armazenamento. Apresentação. Dados Técnicos. Conexões

Figura 1 - O computador

Plugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4

Transcrição:

K8055D.DLL 1 Inledning till DLL för USB Experiment-Interfacekortet K8055 O K8055, Interface USB, tem 5 canais digitais de entrada e 8 canais digitais de saída. Adicionalmente, existem duas entradas analógicas, duas saídas de tensão analógicas e duas saídas PWM (Pulse Width Modulation) com uma resolução de 8 bit. É possível aumentar o número de entradas e saídas através da ligação de mais placas (até quatro, no máximo) aos conectores USB do seu PC. Cada placa tem o seu próprio número de identificação que se determina através dos dois jumpers, SK5 e SK6 (ver Tabela 1 para a numeração das placas). Todas as rotinas de comunicação estão agrupadas numa DLL (Dynamic Link Library) K8055D.DLL. Este documento descreve todas as funções e procedimentos da DLL disponível para a sua aplicação. Invocando as funções e os procedimentos da DLL, pode escrever as suas próprias aplicações em Windows (98SE, 2000, Me, XP), Delphi, Visual Basic, C++ Builder ou qualquer outra ferramenta com 32 bits que suporte chamadas a DLL. Uma visão completa dos procedimentos e funções que são exportados pelo K8055D.DLL vêm mencionados a seguir. No final deste documento encontrará listagens de exemplos de programa () para que possa perceber e ter uma ideia do modo como fazer os programas para a sua própria aplicação. Este foi escrito em Delphi, Visual Basic e C++ Builder. Nas listagens poderá ver explicações para as funções e procedimentos DLL. Note que todas as funções e procedimentos de s descritos na secção ' foram escritos para Delphi. SK5 SK6 KORT ADRESS PÅ PÅ 0 AV PÅ 1 PÅ AV 2 AV AVF 3 TABELA 1: Colocação dos Jumpers: SK5 e SK6 Nota: Estas ligações devem ser feitas antes da ligação do cabo USB à placa K8055 ou antes de ligar o seu PC.

2 Description of the DLL Resumo dos Procedimentos e Funções da K8055D.DLL Procedimentos Gerais OpenDevice(CardAddress) CloseDevice Abra o link de comunicação com o dispositivo K8055 Feche o link Procedimentos de conversão Analógico / Digital ReadAnalogChannel(Channelno) Leia o estado de um canal de entrada analógico ReadAllAnalog(Data1, Data2) Leia o estado de dois canais de entrada analógicos Procedimentos de conversão Digital / Analógica OutputAnalogChannel(Channel,Data) Ajuste o canal de saída analógico de acordo com os dados OutputAllAnalog(Data1,Data2) Ajuste os dois canais de saída analógicos de acordo com os dados ClearAnalogChannel(Channel) Coloque o canal de saída analógico no mínimo ClearAllAnalog Coloque todos os canais de saída analógicos no mínimo SetAnalogChannel(Channel) Coloque o canal de saída analógico no máximo SetAllAnalog Coloque todos os canais de saída analógicos no máximo Procedimentos das Saídas Digitais WriteAllDigital(Data) ClearDigitalChannel(Channel) ClearAllDigital SetDigitalChannel(Channel) SetAllDigital Funções e Procedimento das Entradas Digitais ReadDigitalChannel(Channel) ReadAllDigital(Buffer) Ajuste as saídas digitais de acordo com os dados Limpe o canal de saída digital Limpe todos os canais de saída digital Ajuste o canal de saída Ajuste todos os canais de saída Leia o estado do canal de entrada Leia o estado de todos os canais de entrada Procedimentos e Funções dos Contadores esetcounter(counternr) Reinicie o contador de impulsos 16 bit número 1 ou 2 ReadCounter(CounterNr) Leia o conteúdo do contador de impulsos número 1 ou 2 SetCounterDebounceTime(CounterNr, DebounceTime) Ajuste o tempo de 'debounce' do contador de impulsos

K8055D.DLL 3 Procedimentos e Funções da K8055D.DLL OpenDevice FUNCTION OpenDevice(CardAddress: Longint): Longint; CardAddress: Valor entre 0 e 3 que corresponde ao jumper (SK5, SK6) colocado na placa K8055. Ver tabela 1. Resultado Longint: Se bem sucessido, o valor obtido será o endereço da placa K8055. Se o valor obtido for (-1), a placa K8055 não foi encontrada. Abra o link de comunicação com a placa K8055. Carregue as drivers necessárias para poder comunicar através da porta USB. Este procedimento deve ser feito antes de tentar comunicar com a placa K8055. Esta função também pode ser utilizada para escrever e ler na placa K8055. Todas as rotinas de comunicação que chegam depois desta função, são endereçadas a esta placa até que se seleccione outra placa com esta função. var h: longint; h:=opendevice(0); // Opens the link to card number 0 CloseDevice PROCEDURE CloseDevice; Carregue as rotinas de comunicação para a placa K8055 e o driver necessário para comunicar através da porta USB. É a última acção do programa de aplicação antes de o fechar. CloseDevice; // The communication to the K8055 device is closed

4 Description of the DLL ReadAnalogChannel FUNCTION ReadAnalogChannel (Channel: Longint): Longint; Channel: Valor entre 1 e 2 que corresponde ao canal AD cujo estado deve ser lido. Resultado Longint: Leitura dos dados correspondentes ao conversor Analógico / Digital. A tensão de entrada do canal de conversão Analógico / Digital de 8 bit é convertido para um valor entre 0 e 255. var data: longint; data := ReadAnalogChannel(1); // AD channel 1 is read to variable 'data' ReadIAllAnalog PROCEDURE ReadAllAnalog(var Data1, Data2: Longint); Data1, Data2: Ponteiros para os inteiros onde se irá ler os dados. O estado dos Conversores Analógico / Digital é lido num array de inteiros. procedure TForm1.Button1Click(Sender: TObject); var Data1, Data2: Longint; begin ReadAllAnalog(Data1, Data2); // Read the data from the K8055 Label1.caption:=inttostr(Data1); // Display CH1 data Label2.caption:=inttostr(Data2); // Display CH2 data end;

K8055D.DLL 5 OutputAnalogChannel PROCEDURE OutputAnalogChannel(Channel: Longint; Data: Longint); s Channel: Valor entre 1 e 2 que corresponde ao número do canal DA de 8-bit cujos dados devem ser determinados. Data: Valor entre 0 e 255 que deve ser enviado ao conversor Digital / Analógico de 8-bit. O canal do conversor Digital / Analógico de 8-bit é alterado de acordo com o novo dado. Isto significa que os dados correspondem a uma tensão específica. O valor 0 corresponde à tensão de saída mínima (0 Volt) e o valor 255 corresponde ao valor da tensão de saída máxima (+5V). É possível traduzir um valor 'Data' entre estes extremos através da seguinte fórmula: Data / 255 x 5V. OutputAnalogChannel (1,127); // DA channel 1 is set to 2.5V OutputAllAnalog PROCEDURE OutputAllAnalog(Data1: Longint; Data2: Longint); s Data1, Data2: Valor entre 0 e 255 deve ser enviado ao conversor Digital / Analógico de 8-bit. Modificaram-se os dois canais do conversor Digital / Analógico de 8-bit de acordo com os novos dados. Isto significa que os dados correspondem a uma tensão específica. O valor 0 corresponde à tensão de saída mínima (0 Volt) e o valor 255 corresponde ao valor da tensão de saída máxima (+5V). É possível traduzir um valor 'Data1' ou 'Data2' entre estes extremos através da seguinte fórmula: Data / 255 x 5V. OutputAllAnalog(127, 255); // DA channel 1 is set to 2.5V and channel 2 is set to 5V

6 Description of the DLL ClearAnalogChannel PROCEDURE ClearAnalogChannel(Channel: Longint); Channel: Valor entre 1 e 2 que corresponde ao número do canal DA de 8-bit cujos dados devem ser apagados. Coloca-se o canal DA seleccionado na tensão de saída mínima (0 Volt). ClearAnalogChannel (1); // DA channel 1 is set to 0V ClearAllAnalog PROCEDURE ClearAllAnalog; Colocam-se os dois canais DA na tensão de saída mínima (0 Volt). ClearAllAnalog; // All DA channels 1 and 2 are set to 0V SetAnalogChannel PROCEDURE SetAnalogChannel(Channel: Longint); Channel: Valor entre 1 e 2 que corresponde ao número do canal DA de 8-bit cujos dados devem ser ajustados para o máximo. Coloca-se o canal do conversor Digital / Analógico de 8-bit na tensão de saída máxima. 15 SetAnalogChannel(1); // DA channel 1 is set to +5V

K8055D.DLL 7 SetAllAnalog PROCEDURE SetAllAnalog; Colocam-se todos os canais do conversor Digital / Analógico de 8-bit na tensão de saída máxima. SetAllAnalog; // DA channels 1 and 2 are set to +5V WriteAllDigital PROCEDURE WriteAllDigital(Data: Longint); Data: Valor entre 0 e 255 que é enviado para a porta de saída (8 canais). Os canais da porta de saída digital são actualizados com o estado dos bits correspondentes aos parâmetros dos dados. Um nível elevado (1) significa que se ajustou a saída do microcontrolador IC1, e um nível baixo (0) significa que a saída foi apagada. WriteAllDigital(7); // Output channels 1...3 are on, output channels 4...8 are off ClearDigitalChannel PROCEDURE ClearDigitalChannel(Channel: Longint); Channel: Valor entre 1 e 8 que corresponde ao canal de saída que deve ser apagado. O canal seleccionado foi apagado. ClearIOchannel(4); // Digital output channel 4 is OFF

8 Description of the DLL ClearAllDigital PROCEDURE ClearAllDigital; Resultado Todas as saídas digitais foram apagadas. ClearAllDigital; // All Output channels 1 to 8 are OFF SetDigitalChannel PROCEDURE SetDigitalChannel(Channel: Longint); Channel: Valor entre 1 e 8 que corresponde ao canal de saída que se deve ajustar. O canal de saída digital seleccionado foi ajustado. SetDigitalChannel(1); // Digital output channel 3 is ON SetAllDigital PROCEDURE SetAllDigital; Todos os canais de saída foram ajustados. SetAllDigital; // All Output channels are ON

K8055D.DLL 9 ReadDigitalChannel FUNCTION ReadDigitalChannel(Channel: Longint): Boolean; Channel: Valor entre 1 e 5 que corresponde ao canal de entrada cujo estado deve ser lido. Resultado Boolean: TRUE significa que o canal foi ajustado e FALSE que foi apagado. O estado do canal de entrada seleccionado foi lido. var status: boolean; status := ReadIOchannel(2); // Read Input channel 2 ReadAllDigital FUNCTION ReadAllDigital: Longint; Resultado Longint: O 5 LSB corresponde ao estado dos canais de entrada. Um sinal elevado (1) significa que o canal está HIGH. Um sinal baixo (0) significa que o canal está LOW. A função devolve o estado das entradas digitais. var status: longint; status := ReadAllDigital; // Read the Input channels

10 Description of the DLL ResetCounter PROCEDURE ResetCounter(CounterNumber: Longint); CounterNumber: Valor 1 ou 2, correspondente ao contador que se deve reiniciar. Reiniciou-se o contador de impulsos seleccionado. ResetCounter(2); // Reset the counter number 2 ReadCounter FUNCTION ReadCounter(CounterNumber: Longint): Longint; CounterNumber: Valor 1 ou 2, correspondente ao contador que se deve ler. Resultado Longint: O conteúdo do contador de impulsos de 16 bit. A função devolve o estado do contador de impulsos de 16 bit seleccionado. O contador número 1 conta os impulsos que entram pela entrada I1 e o contador número 2 os impulsos que entram pela entrada I2. var pulses: longint; pulses := ReadCounter(2); // Read the counter number 2 SetCounterDebounceTime PROCEDURE SetCounterDebounceTime(CounterNr, DebounceTime: Longint); CounterNumber: Valor 1 ou 2, correspondente ao contador que se deve ajustar. DebounceTime: Debounce time para o contador de impulsos. O valor DebounceTime corresponde ao tempo de debounce em milisegundos (ms) que se deve ajustar para o contador de impulsos. O valor deste Debounce pode variar entre 0 e 5000.

K8055D.DLL 11 Os sinais de entrada do contador são submetidos a debounce no software a fim de evitar activações incorrectas quando se utilizam entradas mecânicas ou com relés. O tempo de debounce é o mesmo, tanto para flancos descendentes como para flancos ascendentes. O tempo standard de debounce é de 2ms. Isto sigifica que a entrada do contador deve manter-se estável durante, pelo menos, 2ms para ser reconhecido, o que limita o número de impulsos em cerca de 200 por segundo. Se colocar o tempo de debounce a 0, então o número máximo de impulsos será cerca de 2000 por segundo. SetCounterDebounceTime(1,100); // The debounce time for counter number 1 is set to 100ms

12 Description of the DLL Utilização da K8055D.DLL em Delphi Neste de aplicação encontra explicações dos procedimentos e funções K8055D.DLL e um de como utilizar as funções mais importantes: OpenDevice e CloseDevice. unit K8055; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(tform) GroupBox1: TGroupBox; SK6: TCheckBox; SK5: TCheckBox; Button1: TButton; Label1: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; timed:boolean; implementation {$R *.DFM} function OpenDevice(CardAddress: Longint): Longint; stdcall; external 'K8055d.dll'; procedure CloseDevice; stdcall; external 'K8055d.dll'; function ReadAnalogChannel(Channel: Longint):Longint; stdcall; external 'K8055d.dll'; procedure ReadAllAnalog(var Data1, Data2: Longint); stdcall; external 'K8055d.dll'; procedure OutputAnalogChannel(Channel: Longint; Data: Longint); stdcall; external 'K8055d.dll'; procedure OutputAllAnalog(Data1: Longint; Data2: Longint); stdcall; external 'K8055d.dll'; procedure ClearAnalogChannel(Channel: Longint); stdcall; external 'K8055d.dll'; procedure ClearAllAnalog; stdcall; external 'K8055d.dll'; procedure SetAnalogChannel(Channel: Longint); stdcall; external 'K8055d.dll'; procedure SetAllAnalog; stdcall; external 'K8055d.dll'; procedure WriteAllDigital(Data: Longint);stdcall; external 'K8055d.dll'; procedure ClearDigitalChannel(Channel: Longint); stdcall; external 'K8055d.dll'; procedure ClearAllDigital; stdcall; external 'K8055d.dll'; procedure SetDigitalChannel(Channel: Longint); stdcall; external 'K8055d.dll'; procedure SetAllDigital; stdcall; external 'K8055d.dll'; function ReadDigitalChannel(Channel: Longint): Boolean; stdcall; external 'K8055d.dll'; function ReadAllDigital: Longint; stdcall; external 'K8055d.dll'; function ReadCounter(CounterNr: Longint): Longint; stdcall; external 'K8055d.dll'; procedure ResetCounter(CounterNr: Longint); stdcall; external 'K8055d.dll'; procedure SetCounterDebounceTime(CounterNr, DebounceTime:Longint); stdcall; external 'K8055d.dll'; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin CloseDevice; end; procedure TForm1.Button1Click(Sender: TObject); var h,cardaddr:longint; begin CardAddr:= 3-(integer(SK5.Checked) + integer(sk6.checked) * 2); h:= OpenDevice(CardAddr); case h of

K8055D.DLL 13 0..3: label12.caption:='card '+ inttostr(h)+' connected'; -1: label12.caption:='card '+ inttostr(cardaddr)+' not found'; end; end; end.

14 Description of the DLL Utilização da K8055D.DLL em Visual Basic Neste de aplicação encontra explicações dos procedimentos e funções K8055D.DLL e um de como utilizar as funções mais importantes: OpenDevice e CloseDevice. Nota: Verifique se o ficheiro K8055D.DLL foi copiado para a pasta do Windows 'SYSTEM32': Option Explicit Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal CardAddress As Long) As Long Private Declare Sub CloseDevice Lib "k8055d.dll" () Private Declare Function ReadAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long) As Long Private Declare Sub ReadAllAnalog Lib "k8055d.dll" (Data1 As Long, Data2 As Long) Private Declare Sub OutputAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long, ByVal Data As Long) Private Declare Sub OutputAllAnalog Lib "k8055d.dll" (ByVal Data1 As Long, ByVal Data2 As Long) Private Declare Sub ClearAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long) Private Declare Sub SetAllAnalog Lib "k8055d.dll" () Private Declare Sub ClearAllAnalog Lib "k8055d.dll" () Private Declare Sub SetAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long) Private Declare Sub WriteAllDigital Lib "k8055d.dll" (ByVal Data As Long) Private Declare Sub ClearDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) Private Declare Sub ClearAllDigital Lib "k8055d.dll" () Private Declare Sub SetDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) Private Declare Sub SetAllDigital Lib "k8055d.dll" () Private Declare Function ReadDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) As Boolean Private Declare Function ReadAllDigital Lib "k8055d.dll" () As Long Private Declare Function ReadCounter Lib "k8055d.dll" (ByVal CounterNr As Long) As Long Private Declare Sub ResetCounter Lib "k8055d.dll" (ByVal CounterNr As Long) Private Declare Sub SetCounterDebounceTime Lib "k8055d.dll" (ByVal CounterNr As Long, ByVal DebounceTime As Long) Private Sub Connect_Click() Dim CardAddress As Long Dim h As Long CardAddress = 0 CardAddress = 3 - (Check1(0).Value + Check1(1).Value * 2) h = OpenDevice(CardAddress) Select Case h Case 0, 1, 2, 3 Label1.Caption = "Card " + Str(h) + " connected" Case -1 Label1.Caption = "Card " + Str(CardAddress) + " not found" End Select End Sub Private Sub Form_Terminate() CloseDevice End Sub

K8055D.DLL 15 Utilização da K8055D.DLL em Borland C++ Builder Em baixo encontra uma listagem da K8055D.h incluindo explicações dos procedimentos e funções K8055D.DLL. Nesta encontra uma listagem de um de como utilizar as funções mais importantes: OpenDevice e CloseDevice. //Listing K8055D.h #ifdef cplusplus extern "C" { #endif #define FUNCTION declspec(dllimport) FUNCTION long stdcall OpenDevice(long CardAddress); FUNCTION stdcall CloseDevice(); FUNCTION long stdcall ReadAnalogChannel(long Channel); FUNCTION stdcall ReadAllAnalog(long *Data1, long *Data2); FUNCTION stdcall OutputAnalogChannel(long Channel, long Data); FUNCTION stdcall OutputAllAnalog(long Data1, long Data2); FUNCTION stdcall ClearAnalogChannel(long Channel); FUNCTION stdcall ClearAllAnalog(); FUNCTION stdcall SetAnalogChannel(long Channel); FUNCTION stdcall SetAllAnalog(); FUNCTION stdcall WriteAllDigital(long Data); FUNCTION stdcall ClearDigitalChannel(long Channel); FUNCTION stdcall ClearAllDigital(); FUNCTION stdcall SetDigitalChannel(long Channel); FUNCTION stdcall SetAllDigital(); FUNCTION bool stdcall ReadDigitalChannel(long Channel); FUNCTION long stdcall ReadAllDigital(); FUNCTION long stdcall ReadCounter(long CounterNr); FUNCTION stdcall ResetCounter(long CounterNr); FUNCTION stdcall SetCounterDebounceTime(long CounterNr, long DebounceTime); #ifdef cplusplus } #endif //Listing Unit1.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "K8055D.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void fastcall TForm1::Connect1Click(TObject *Sender) { int CardAddr = 3 - (int(checkbox1->checked) + int(checkbox2->checked) * 2); int h = OpenDevice(CardAddr); switch (h) { case 0 : case 1 : case 2 : case 3 : Label1->Caption = "Card " + IntToStr(h) + " connected";

16 Description of the DLL break; case -1 : Label1->Caption = "Card " + IntToStr(CardAddr) + " not found"; } } //--------------------------------------------------------------------------- void fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { CloseDevice(); } //---------------------------------------------------------------------------