frente

Terminais Sem Fios X64




Ligação Restaurantes





Ligação com RioCom.DLL



A DLL foi programada usando uma linguagem de 32 bits. Logo todos os argumentos do tipo int devem ser considerados inteiros de 32 bits. Linguagens que usem inteiros de 16 bits devem prototipar as funções como usando long int em vez de int.

Todas as funções descritas retornam sempre um código de erro inteiro.

0 --> OK, operação bem sucedida
1 --> NO_MESSAGE, não existem mensagens para ler do buffer)
2 --> INVALID_COM_PORT, porta série inexistente ou já utilizada por outro programa
3 --> GENERIC_ERROR, erro genérico
4 --> NO_RESPONSE, a DLL não obteve resposta da antena



int __stdcall radio_init(int com_no,int first_terminal,int last_terminal,int license_no,int protocolo_dados)

Descrição :

Esta função inicializa a antena, fazendo a detecção automática da versão e colocando-a em modo de recepção de pedidos. Esta inicialização demora cerca de 1 segundo.

Função:

int radio_init(
int com_no,
int first_terminal,
int last_terminal,
int license_no,
int protocolo_dados);

Parametros:

com_no: Número da porta COM à qual se encontra ligada a antena

(Ex. 1 para COM1)



first_terminal:1º terminal rádio que esta antena deve aceitar como válido. Os terminais só desistem de enviar uma mensagem quando recebem uma confirmação da antena. A antena só confirma mensagens que tenham o mesmo número de licença de hardware (ver license_nomais abaixo), e tenham um numero de terminal entre first_terminalelast_terminal inclusive.



last_terminal: Último terminal rádio que esta antena deve aceitar como válido (ver first_terminal)



license_no: Número de licença de hardware (programado nos terminais) que a antena deve aceitar como válido. Este valor serve para que estabelecimentos vizinhos que usem o mesmo sistema de terminais rádio possam usar um n.º de licença diferente, evitando assim conflitos entre as mensagen

protocolo_dados: 4



int __stdcall radio_close()

Descrição :

Esta função liberta a porta série e devolve a antena ao modo por defeito de modo a que esta não receba mais transmissões a partir dos terminais rádio.





c/PROTOCOLO_DADOS 4

int __stdcall radio_recv5(int *Funcao,int *terminal,int *licenca,int *msg_number,int *pratos,int *mesa1,int *mesa2,int *AuxData,int *lugar1,int *lugar2,int *plus,int *qtds,unsigned char *st_mesa1,unsigned char *st_mesa2)

Descrição :

Esta função verifica se existe alguma mensagem enviada por um terminal no buffer de entrada para ser lida pelo programa. Se existir alguma mensagem a função faz uma cópia desta para as variaveis passadas como parametros.

Função identica ao radio_recv3, mas permite receber 13 bytes do campo mesa1 e mesa2.

int *plus é um apontador para um array de inteiros de 32 bits.
int *qtds é um apontador para um array de inteiros de 32 bits.
Função identica ao radio_recv4, mas ao receber numeros decimais retorna a quantidade em negativo é multiplicada por 1000. Exemplo 0.1, retorna na quantidade -100.

ATENÇÃO a função copia a resposta para e endereço das respectivas variaveis. O campo st_mesa1 e st_mesa2 têm que ser inicializados com espaços em branco, tendo como consequencia o programa bloquear.



c/PROTOCOLO_DADOS 4

int __stdcall radio_send_list4(int terminal,int pratos, int mesa,int AuxData,int Lugar1,int Lugar2,int *plus,int *qtds,unsigned char *mesa1,unsigned char *mesa2)       

Descrição :

Esta função só deve ser usada se se quiser ter o campo mesa com mais de 8 digitos.

Esta função envia uma mensagem para um terminal de rádio. O terminal depois de receber a mensagem entra em modo de edição. Depois de editar é enviada uma mensagem do terminal para o PC com Tipo='E'.

Plus e Qtds apontam para um array de inteiros de 32 bits.

mesa1 aponta para uma string de 13 bytes.
mesa2 aponta para uma string de 13 bytes.



int __stdcall radio_send_message(int terminal,char *msg)

Descrição :
Esta função envia uma mensagem de texto para um terminal rádio. A mensagem não deverá ocupar mais de 32 caracteres e deverá ser inteiramente composta por caracteres internacionais. Note-se que o terminal rádio só receberá a mensagem se estiver no menu principal, pelo que o envio de mensagens só deverá ser efectuado como resposta a uma acção do utilizador do terminal.

A DLL encarrega-se de tentar retransmitir mensagens não confirmadas pelo terminal. Esta retransmissão é feita a cada 5 segundos (aproximadamente). Se o terminal não receber uma mensagem em 1 hora, a DLL ignora-a. As mensagens são tratadas por ordem de chegada (FIFO). Pode-se saber se uma mensagem foi enviada ou não usando a função radio_send_message_get_status.

Parametros:

terminal: Número do terminal para o qual a mensagem deve ser enviada.
msg: Apontador para o endereço onde está a mensagem a enviar. (Muitas linguagens fazem a conversão automática de string para este apontador)


int __stdcall radio_send_big_message_auto_run_menu(int terminal,char *msg , int menuoption)

Descrição :
Esta função envia uma mensagem de texto para um terminal rádio. A mensagem não deverá ocupar mais de 64 caracteres e deverá ser inteiramente composta por caracteres internacionais. Note-se que o terminal rádio só receberá a mensagem se estiver no menu principal, pelo que o envio de mensagens só deverá ser efectuado como resposta a uma acção do utilizador do terminal.

Depois de o terminal receber esta mensagem vai automaticamente para o menu 'menuoption'

A DLL encarrega-se de tentar retransmitir mensagens não confirmadas pelo terminal. Esta retransmissão é feita a cada 5 segundos (aproximadamente). Se o terminal não receber uma mensagem em 1 hora, a DLL ignora-a. As mensagens são tratadas por ordem de chegada (FIFO). Pode-se saber se uma mensagem foi enviada ou não usando a função radio_send_message_get_status.

Parametros:

terminal: Número do terminal para o qual a mensagem deve ser enviada.
msg: Apontador para o endereço onde está a mensagem a enviar. (Muitas linguagens fazem a conversão automática de string para este apontador)
menuoption: Menu para o qual o terminal vai depois de receber uma mensagem.



int __stdcall radio_send_big_message(int terminal,char *msg )

Descrição :
Esta função envia uma mensagem de texto para um terminal rádio. A mensagem não deverá ocupar mais de 64 caracteres e deverá ser inteiramente composta por caracteres internacionais. Note-se que o terminal rádio só receberá a mensagem se estiver no menu principal, pelo que o envio de mensagens só deverá ser efectuado como resposta a uma acção do utilizador do terminal.

A DLL encarrega-se de tentar retransmitir mensagens não confirmadas pelo terminal. Esta retransmissão é feita a cada 5 segundos (aproximadamente). Se o terminal não receber uma mensagem em 1 hora , a DLL ignora-a. As mensagens são tratadas por ordem de chegada (FIFO). Pode-se saber se uma mensagem foi enviada ou não usando a função radio_send_message_get_status.

Parametros:

terminal: Número do terminal para o qual a mensagem deve ser enviada.
msg: Apontador para o endereço onde está a mensagem a enviar. (Muitas linguagens fazem a conversão automática de string para este apontador)


int __stdcall radio_send_message_auto_run_menu(int terminal,char *msg , int menuoption)

Descrição :
Esta função envia uma mensagem de texto para um terminal rádio. A mensagem não deverá ocupar mais de 32 caracteres e deverá ser inteiramente composta por caracteres internacionais. Note-se que o terminal rádio só receberá a mensagem se estiver no menu principal, pelo que o envio de mensagens só deverá ser efectuado como resposta a uma acção do utilizador do terminal.

Depois de o terminal receber esta mensagem vai automaticamente para o menu 'menuoption'

A DLL encarrega-se de tentar retransmitir mensagens não confirmadas pelo terminal. Esta retransmissão é feita a cada 5 segundos (aproximadamente). Se o terminal não receber uma mensagem em 1 hora  a DLL ignora-a. As mensagens são tratadas por ordem de chegada (FIFO). Pode-se saber se uma mensagem foi enviada ou não usando a função radio_send_message_get_status.

Parametros:

terminal: Número do terminal para o qual a mensagem deve ser enviada.
msg: Apontador para o endereço onde está a mensagem a enviar. (Muitas linguagens fazem a conversão automática de string para este apontador)
menuoption: Menu para o qual o terminal vai depois de receber uma mensagem.



int __stdcall radio_message_hardware_ABCDEF(int terminal,int valor1,int valor2,int valor3,int valor4,int valor5,int valor6)

Esta função envia uma mensagem e configura a opção A,B,C,D,E e F do terminal com o valor respectivo.


int __stdcall radio_get_send_status(int msg_number)

Esta função permite verificar se uma mensagem já chegou a um terminal (a DLL continua a tentar durante cerca de uma hora no caso de o terminal estar desligado ou sem cobertura)

Retorna:
0 se a mensagem chegou
1 se a DLL ainda está a tentar enviar a mensagem
2 se o envio falhou (após cerca de 1 hora de tentativas)

Parametros:

msg_number: Valor retornado pela função radio_send_message, radio_send_lista, radio_message_upload_plus ou radio_message_clear_upload_plus


int __stdcall radio_set_entry( int entry_no, char *name)
Descrição :

Esta função actualiza a imagem que a DLL tem da memória do terminal rádio apenas para uma posição. Esta actualização deve ser feita para todas as posições que serão enviadas usando a função radio_upload_entries. (ver abaixo)

Com as novas funções para enviar os plus em arvore esta função não é utilizada, ficando OBSOLETA.

Só se deve usar esta função se se quiser alterar o texto dos menus do terminal.

Função:



int radio_set_entry(
int entry_no,
char far *name);

Parametros:



entry_no: Posição a ser actualizada
name: Texto a gravar nessa posição. Este poderá ter até 16 caracteres.




int __stdcall radio_upload_entry(int first_entry,int last_entry)

Descrição :

Esta função envia todas as entradas (previamente introduzidas com radio_set_entry) para os terminais rádio. Para que os terminais recebam é preciso previamente fazer 96195 6 quando o terminal se encontra no menu principal, para colocar o terminal em modo de download. Como alternativa pode-se por o terminal em modo de download enviando uma mensagem .
Esta função não tem correção de erros. Pode acontecer que um terminal não receba todas as entradas. Para evitar que isso aconteça pode-se enviar 2 vezes.

Com as novas funções para enviar os plus em arvore esta função não é utilizada, ficando OBSOLETA.

Função:

int radio_upload_entries(
int first_entry,
int last_entry);

Parametros:

      • first_entry: Primeira entrada a ser enviada
        last_entry: Última entrada a ser enviada. Para enviar todas as entradas alteradas fazer first_entry = 10 e last_entry = 3079.


Funcões para criar os plus em arvore.



int __stdcall radio_make_tree_mkdir(char *name);                                // Optional

Descrição :

Equivalente ao mkdir do MSDOS, permite criar uma ramo na arvore .

Retorna:

Parametros:

*name:  Nome do ramo a criar.


int __stdcall radio_make_tree_cd_back();

Descrição :

Equivalente ao cd.. do MSDOS, permite mudar para o ramo anterior.

Retorna:
Parametros:



int __stdcall radio_make_tree_entry( int entry_no, char *name);

Descrição :

Permite introduzir um plu num determinado ramo da arvore.

Retorna:

O valor da posição da arvore onde este plu foi colocado.
 
Parametros:

entry_no: Valor que se pretende que seja enviado ao PC quando este plu for selecionado.
*name: Descritivo do plu.


int __stdcall radio_make_tree_cd(char *name);

Descrição :

Equivalente ao cd do MSDOS, permite mudar de ramo.

Retorna:
Parametros:

*name: Nome do ramo para onde se pretende mudar. Se não existir será automaticamente criado.


int __stdcall radio_make_tree_modifier( char *group_name,bool automatic,bool multiple_choice);
OU
int __stdcall radio_make_tree_modifier2( char *group_name,int automatic,int multiple_choice);

Descrição :

Permite acrescentar complementos ao ultimo plu introduzido.
radio_make_tree_modifier "Temperatura da Chavena", False, False

Iria acrescentar um complemento chamado "Temperatura da chavena", que não iria ser automatico nem teria multiplas escolhas.

Retorna:
Parametros:

*group_name: Nome do grupo de complementos.
automatic: Obriga a introdução destes complementos, por exemplo se se quiser pedir café tem que se dizer se é chavena quente ou fria.
multiple_choice:Permitiria dizer que se quer café em chavena quente e fria.


int __stdcall radio_make_tree_modifier_entry(int entry_no, char *name);

Descrição :

A directoria anterior passa a ser o nome do grupo de complementos.
Com esta instrução estamos a acrescentar elementos ao grupo.
Exemplo:

    radio_make_tree_cd "Temperatura da Chavena"
    radio_make_tree_modifier_entry 600, "Chevena Fria"
    radio_make_tree_modifier_entry 601, "Chavena Quente"
    radio_make_tree_modifier_entry 602, "Chavena Morna"

Estariamos a criar um novo grupo chamado "temperatura da chavena", com 3 elementos.
Se fossem usados num pedido retornariam 601,602 e 603 respectivamente.

Retorna:

O valor da posição da arvore onde este plu foi colocado.

Parametros:



int __stdcall radio_upload_tree2   ( char *Configurações,int NumParametros,int RearrangeTree) ;

Descrição :

Envia todos os plus para o terminal.
As configurações são uma string que permite configurar directamente o terminal.

Parametros:

Configuração 1 = Opção A
Configuração 2 = Opção B
Configuração 3 = Opção C
etc...

NumParametros:    Tamanho das configurações em bytes.
RearrangeTree:    1(Activa) ou 0(Desactiva), permite defenir o comportamento da arvore em situações que um ramo têm mais que 8 elementos.
Se 1, a dll automaticamente cria um novo subramo de maneira a que nunca haja um ramo com mais de 8 elementos.


Exemplo de uma arvore:




Para criar os plus do exemplo acima deveria-se usar o seguinte codigo.

    radio_make_tree_cd "Cafetaria"
   
    radio_make_tree_entry 1, "Cafe"
    radio_make_tree_modifier "Temperatura da Chavena", False, False
    radio_make_tree_modifier "Tipo de café", False, False

    radio_make_tree_entry 2, "Cha"
    radio_make_tree_modifier "Temperatura da Chavena", True, True

    radio_make_tree_entry 8, "Aguas"
    radio_make_tree_entry 9, "Torradas"
    radio_make_tree_entry 10, "Tosta mista"
    radio_make_tree_entry 11, "Sande de queijo"
    radio_make_tree_entry 12, "Sande mista"
    radio_make_tree_entry 13, "Pão c/ queijo"
                                                ' If number of elements > 8 Tree will be auto rebuild
'    radio_make_tree_entry 14, "Pão c/ manteiga"
'    radio_make_tree_entry 15, "Pão simples"

    radio_make_tree_cd_back  
    radio_make_tree_cd "Gelataria"
    radio_make_tree_mkdir "Copo"                ' Optional
    radio_make_tree_mkdir "Taca"                ' Optional
    radio_make_tree_cd "Copo"
    radio_make_tree_entry 3, "2 Bolas"
    radio_make_tree_entry 4, "3 Bolas"
    radio_make_tree_cd_back
    radio_make_tree_cd "Taca"
    radio_make_tree_entry 5, "Chocolate"
    radio_make_tree_entry 6, "Baunilha"
    radio_make_tree_cd_back
    radio_make_tree_cd_back
   
    radio_make_tree_mkdir "Outros"
    radio_make_tree_cd "Outros"
    radio_make_tree_entry 7, "Tabaco"
    radio_make_tree_cd_back
   
    radio_make_tree_mkdir "Compl."
    radio_make_tree_cd "Compl."
    radio_make_tree_mkdir "Tipo de café"
    radio_make_tree_cd "Tipo de café"
    radio_make_tree_modifier_entry 500, "Cheio"
    radio_make_tree_modifier_entry 501, "Curto"
    radio_make_tree_cd_back

    radio_make_tree_mkdir "Temperatura da Chavena"
    radio_make_tree_cd "Temperatura da Chavena"
    radio_make_tree_modifier_entry 600, "Chevena Fria"
    radio_make_tree_modifier_entry 601, "Chavena Quente"
    radio_make_tree_modifier_entry 602, "Chavena Morna"
    radio_make_tree_cd_back


Funções de introdução em Arvore.

Com estas funções é possivel criar uma estrutura de familias, subfamilias, complementos etc... com muita simplicidade.
Este sistema tem a vantagem de não ser preciso o funcionário memorizar codigos.

No terminal opção G, 'Arvore PLUS' ( Valor 1 ) tem que estar activo. Valido nas versões >= 7.9370.

As funções são as seguintes:

VB

Public Declare Function radio_make_tree_mkdir Lib "RioCom" (ByVal directory_name As String) As Long        ' Optional
Public Declare Function radio_make_tree_cd_back Lib "RioCom" () As Long
Public Declare Function radio_make_tree_entry Lib "RioCom" (ByVal entry_number As Long, ByVal entry_name As String) As Long
Public Declare Function radio_make_tree_cd Lib "RioCom" (ByVal directory_name As String) As Long
Public Declare Function radio_upload_tree Lib "RioCom" () As Long
Envia todos os plus para o terminal.
Public Declare Function radio_upload_tree2 Lib "RioCom" (Byval Configurações As String,ByVal NumParametros As Long,ByVal RearrangeTree as Long) As Long









Mapa das posições da memoria do terminal
Mapa das posições:


0 a 9

Reservadas


11 a 13

NAO USADO


14

"Mesa"


15

"Prato Qtd"


16

"Enviando"


17

NAO USADO


18

NAO USADO


19

"Nº Pessoas" ou "LUGAR"


20

"Outras"


21 a 27

Nome das Funções "Outras"


28 a 29

"Reservados"


30

Metodos de Pagamento


31

"Imprime s/n"


32

Prompt "?" ( Por defeito )


33 a 3071

Descritivos de artigos de 1 a 3039


3072

1 - Pedido


3073

2 - Anulação


3074

3 - Subtotal


3075

4 - Conta


3076

5 - Transferencias


3077

6 - Pagamento Parcial


3078

7 - Outros


3079

8 - Desconto


9
9 - Configuracao


3080

1 - Comando


3081

2 - Licenca


3082

3 - Config.A


3083

4 - Config.B


3084

5 – Config.C


3085

6 - Receber PLUs


3086

7 - Apagar PLUs


10
8 - Envia PLUs+C


3087

Desistir [Enter]




3088
Array de páginas
(tipo de)
bytes 0 a 15

(...)
(...)

3103
bytes 240 a 255




3104
Array de páginas
(apontador para)
inteiros de 32 bits 0 a 3

(...)
(...)

3167
inteiros de 32 bits 252 a 255




3168
Indice no array de páginas para cada artigo
bytes 0 a 15

(...)
(..)

3358
bytes 1024 a 1039




3999
4 bytes c/ o nº de descritivos a receber

    
Página principal

Contactos

Download

Manual de interligação






Restaurantes