|
|
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
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:
Parametros: com_no: Número da porta COM à qual se encontra ligada a antena
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.
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) 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)
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)
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)
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:
Parametros:
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 . Com as novas funções para
enviar os plus em arvore esta função não é utilizada, ficando OBSOLETA. Função:
Parametros:
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 |
|||
|
||
|
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 |