ÍNDICE
!"
#
$%
&
&
&
&
'
&
&
(
&
)
*
)
(
)
*
)
+
,
)
$ -
)
.
.
.
*,
.
*,
.
.
.
/
/
(
/
/
0
/
$ - ,
/
$ - ,
1
1
-
1
-
1
-
1
-
1
-$
2
$
2
$
- ,
2
- ,
2
3
2
$
2
$
4
$
4
4
4
(
5
5
5
#
6
7
(
$
(
$
8
+ 99
#: ; 080: 3 < ='0=#
&
Este manual descreve as funções da DLL PMTG e os retornos esperados para as
mesmas.
Inicialização e Finalização
mt_startserver
> ? ; + ,@ A A !"
Esta é a primeira função que deve ser chamada. Se tiver sucesso na sua chamada, os terminais já conectarão
ao servidor.
mywhnd: Handle para a janela principal do programa do servidor, que é para onde a DLL irá mandar as mensagens para troca de dados. Se não quiser receber as mensagens deve seu valor deve ser NULL.
conecmsg: Valor da mensagem que a DLL enviará quando um terminal conectar/desconectar. commumsg: Valor da mensagem que a DLL enviará quando terminal enviar dados.
retorna: 1 se servidor inicializado com sucesso, 0 se houve algum erro.
mt_finishserver
!"
Após chamar esta função, a DLL libera a memória armazenada, desconecta todos os terminais e para de aceitar novas conexões.
mt_version
!"
Retorna versão da DLL. Ex.: 0x14 corresponde a versão 1.4.
mt_connectlist
008B3: #C !" , D + ? : '+ E ..F" G008B3: #C" 008B3: #C E5FH5*55555555 008B3: #C $E FH5*B/5582#5 008B3: #C $E FH5*55555555 IFunções de tratamento de IP
mt_gethostip
!"
Retorna o IP da máquina local em ASCII formatada por pontos. oip: array de bytes onde será escrito os dados.
mt_inet_ntoa
+ ? : '+ !" ' 83# J + ? : '+ !mt_inet_ntoa_inv
+ ? : '+ !" ' 83# A $, J + ? : '+ !mt_inet_addr
+ ? : '+ !" ' + ? : '+ ! J , $, 83#mt_inet_addr_inv
+ ? : '+ !" ' + ? : '+ !A $, J , $, 83#mt_ipfromid
+ !" ' + J +Comandos básicos para o terminal
mt_sendlive
+ !" = + 9 ! JKH5 Amt_restart
+ !" ( + ' ! JKH5 Amt_ftpmode
+ !" ( 0 + 0 6 ! JKH5 ARede
mt_sendconfig
+ A03 0# !" = + 3 3 0# ! JKH5 A typedef struct {DWORD microT_IP; // Endereço IP do terminal
DWORD server_IP; // Endereço IP do servidor
DWORD msknet_IP; // Máscara de rede
DWORD bDHCP; // 1 = IP dinâmico, 0 = IP fixo.
}TSetupTCP;
mt_reqconfig
( + !" ' ( + < 3 0# ! 8 + 99 % ( $ $ JKH5 Amt_getconfig
+ A03 0# !" ' $ + < 3 0# 8 + 99 % ( $ J % $ JKH5 $ Amt_sendexconfig
* + A0=*3 0# !" = + 3 =*3 0# ! JKH5 A typedef struct {DWORD gateway; // IP do gateway
DWORD nameserver; // IP do servidor de nomes
DWORD myname; // Nome do terminal
}TExSetupTCP;
mt_reqconfig
( * + !" ' ( < =*3 0# ! 8 + 99 % ( $ $ * JKH5 Amt_getexconfig
* + A0=*3 0# !" ' $ + < =*3 0# 8 + 99 % ( $ J % $ JKH5 $ ADisplay
mt_backspace
$ - + !" = + B -3 ! JKH5 Amt_carret
+ !" = + # ' ! JKH5 Amt_linefeed
+ !" = + 9 ! JKH5 Amt_formfeed
+ !" = + ! JKH5 Amt_gotoxy
*, + A A !" = + < 0 LM! N J9 # % JKH5 Amt_gotoxyref
*, + A A !" = + < 0 LM' ! N J9 # % JKH5 Amt_dispstr
+ A !" = + + 3 ! J ( % , JKH5 Amt_dispch
+ A !" = + + # !J# ( % , JKH5 A
mt_dispclrln
+ A !" = + + # 9 ! J , ( % JKH5 Amt_seteditstring
+ ABM0= 3 AB: : 9 : : AB: : 9 ? !"
= + 3 = 3 ! 3 J3 * : : J ! 5! ? J $ ! $ 5! ! JKH5 A
mt_reqeditstring
( + !" ' ( = + $< = 3 ! 8 + 99 % JKH5 Amt_geteditstring
+ A $ !" ' $ + 3 = 3 8 + 99 % ( $ $ J ( % $ O = JKH5 $ ATeclado
mt_setenablekey
$ - , + A B: : 9 : : !" = + 3 = $ C ,! : : J ! 5!JKH5 A
mt_getenablekey
$ - , + !" ' ( + $< = $ C ,! 8 + 99 % JKH5 Amt_reset
+ !" = + ' !JKH5
A
mt_setcapslock
- + A B: : 9 : : !" = + 3 # 9 -! : : J ! 5! # 9 -JKH5 Amt_getcapslock
- + !" ' ( + $< # 9 -! 8 + 99 % JKH5 Amt_setnumlock
- + A B: : 9 : : !" = ! + 3 ; 9 -! : : J ! 5! ; 9 -JKH5 Amt_getnumlock
- + !" ' ( ! + $< ; 9 -! 8 + 99 % JKH5 Amt_programkbd
-$ + ABM0= # !" = " + $ C$ ! 8 + 99 % # J % P ( $ $ O JKH5 Amt_setbeep
$ + A B: : 9 : : !" = + 3 B ! : : J ! 5! B JKH5 Amt_setbeepkey
$ - , + A B: : 9 : : !" = + 3 B C ,! : : J ! 5! B JKH5 Amt_getkey
- , + A $ !" ' $ + < # 0 ! $ J $ JKH5 ASerial
mt_setenableserial
$ + A BM0= #: 6 A B: : 9 : : !" = 3 + 3 = $ 3 ! #: 6 J A H 5 #: 6 ! : : J ! 5! JKH5 Amt_getenableserial
$ + A BM0= #: 6 !" ' ( + < = $ 3 ! 8 + 99 % #: 6 J A H 5 #: 6 ! JKH5 Amt_sendbinserial
$ + A BM0= #: 6 A9 BM0= B ABM0= !" = + $3 B 3 ! #: 6 J A H 5 #: 6 ! B J ( J( ( JKH5 Amt_getserial
+ A A $ !" = + $< B 3 ! 8 + 99 % ( $ J ( 5 H #: 6 $ JJ
$,
mt_sendconfigserial
+ A8'< #: 6 3=0Q 3=' 89 !" = + $3 3 3 ! # J % $ J5 A typedef struct {unsigned long baud; // baudrate: 300 a 115.200
unsigned short bits; // data bits
unsigned short parity; // paridade
unsigned short stops; // stop bits
unsigned char handshaking; // 0 = sem handshaking, 1 = RTS/CTS
} TSetupSerial;
unsigned char Com; TSetupSerial Setup; }ARG_COM_SETUPSERIAL;
mt_reqconfigserial
( + ABM0= #: 6 !" ' ( + < 3 3 ! 8 + 99 % ( $ $ #: 6 J A H 5 #: 6 ! JKH5 Amt_getconfigserial
+ A8'< #: 6 3=0Q 3=' 89 !" ' $ + < 3 3 8 + 99 % ( $ J % $ JKH5 $ Amt_settermserial
+ A BM0= #: 6 A BM0= 0='6 A B: : 9 : : !" # 3 0 3 #: 6 J A H 5 #: 6 ! 0='6 JB, : : J ! 5! JKH5 ACartão Magnético
mt_sendsetcard
+ A B: : 9 : : !" = + 3 # : : J ! 5! JKH5 Amt_reqgetcard
( + !" ' ( 7 + $< # ! 8 + 99 % JKH5 Amt_getcardbuf
$ + A8'< #8'+ $ !" ' $ 7 + $' B # 8 + 99 % ( $ J A $ JKH5 $ A typedef struct {unsigned char card[128];
unsigned long status;
}ARG_CARD;
Impressora
mt_sendinitprn
+ !" = + JKH5 Amt_reqgetstatusprn
( + !" ' ( + < 3 ! 8 + 99 % JKH5 Amt_sendbinprn
$ + A9 BM0= B ABM0= !" = # " $ + $3 B 3 ! B J ( J( ( JKH5 AA troca de mensagens do programa principal com a
DLL
+ 99 % A 8 + 99 ( + 99 A #RR B S * $ A + 99 J#define COMUNICATION_MSG WM_USER + 1 #define CONNECT_MSG WM_USER + 2
% & ' ()*+ , - ! ! .%/ , - / 0 ! # 1.#- ! %/ 23$ : % T ! A #: ; ; =#0 6 3< U ( % ( N #: 6 Q ; #80 : ; 6 3< U ( % ( + V W ? % $ J !; ( ! % A J
private: // User declarations
virtual void __fastcall WndProc(Messages::TMessage &Message);
!+ AV W !J
void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
if (Message.Msg == COMUNICATION_MSG)
{
//recebe mensagens enviadas pelo terminal return;
}
else if (Message.Msg == CONNECT_MSG)
{
//recebe mensagens quando um terminal conectou/desconectou return;
TForm::WndProc(Message); //chama WndProc antiga }