Wrapper para comunicação com a SDK da Sunmi/Tectoy para React Native.
Este pacote foi desenvolvido para facilitar a integração com o SDK da Sunmi/Tectoy para comunicar com os produtos/equipamentos da empresa.
Verifique a documentação da Sunmi para maior endentimento das funções e possíveis implementações adicionais.
Esta biblioteca não está completa com todos os recursos disponíveis da sunmi/tectoy, caso você consiga implementar novas funções, contribua com o pacote e torne ele mais útil para todos os que utilizam.
D2S Combo - Possuí gaveta
T2 Mini - Sem leitor câmera integrada
T2s - Impressora 80mm (48col)
L2s - Coletor de dados SEM teclado físico
L2K - Coletor de dados COM teclado físico
npm install @linvix-sistemas/react-native-tectoysunmisdk
yarn add @linvix-sistemas/react-native-tectoysunmisdk
import NativeModuleTectToySunmiSDK, { TectoyLCDFuncaoEnum, TectoyLCDMultiTextoType } from '@linvix-sistemas/react-native-tectoysunmisdk';
Veja a pasta example para verificar como utilizar.
Lista de métodos expostos para utlização com a impressora.
ObterStatus - StatusImpressoraType
// Lembre-se de que o status da impressora pode variar dependendo do dispositivo utilizado pela tectoy, sempre verifique o manual.
await NativeModuleTectToySunmiSDK.impressora.ObterStatus();
await NativeModuleTectToySunmiSDK.impressora.ImprimirTexto(texto: string);
Pode ser utilizado para enviar bytes gerados no lado do react-native diretamente para a impressora. Olhar documentação ESC/POS ou alguma lib que possúa geração de comandos ESC/POS.
// palavra: teste
const bytes = [0x54, 0x45, 0x53, 0x54, 0x45];
await NativeModuleTectToySunmiSDK.impressora.ImprimirRAW(bytes);
ImprimirQRCode - ImprimirQRCodeType
await NativeModuleTectToySunmiSDK.impressora.ImprimirQRCode(data: ImprimirQRCodeType);
await NativeModuleTectToySunmiSDK.impressora.AvancarLinha(numero_linhas = 5);
await NativeModuleTectToySunmiSDK.impressora.Avancar3Linhas();
Lista de métodos expostos para utlização com o LCD.
ControlarLCD - TectoyLCDFuncaoEnum
// Função utilizada para controlar o display lcd disponível em algúns modelos da tectoy/sunmi.
// TectoyLCDFuncaoEnum.INICIALIZAR
// TectoyLCDFuncaoEnum.LIGAR_LCD
// TectoyLCDFuncaoEnum.DESLIGAR_LCD
// TectoyLCDFuncaoEnum.LIMPAR_TELA
await NativeModuleTectToySunmiSDK.lcd.ControlarLCD(funcao: TectoyLCDFuncaoEnum);
await NativeModuleTectToySunmiSDK.lcd.EnviarTexto(texto: string);
await NativeModuleTectToySunmiSDK.lcd.EnviarTextos(data: TectoyLCDMultiTextoType);
Lista de métodos expostos para utlização com o LED.
ControlarLampada - TectoyLampStatusEnum | TectoyLampLedEnum
// Função utilizada para controlar o LED superior nos dispotivos K2 e K2 Mini.
// TectoyLampStatusEnum.LIGAR
// TectoyLampStatusEnum.DESLIGAR
//
// TectoyLampLedEnum.LED_1
// TectoyLampLedEnum.LED_2
// TectoyLampLedEnum.LED_3
// TectoyLampLedEnum.LED_4
// TectoyLampLedEnum.LED_5
// TectoyLampLedEnum.LED_6
await NativeModuleTectToySunmiSDK.lampada.ControlarLampada(status: TectoyLampStatusEnum, led: TectoyLampLedEnum);
ControlarLampadaLoop - TectoyLampStatusEnum | TectoyLampLedEnum
// Função utilizada para controlar o LED superior nos dispotivos K2 e K2 Mini.
// TectoyLampStatusEnum.LIGAR
// TectoyLampStatusEnum.DESLIGAR
//
// TectoyLampLedEnum.LED_1
// TectoyLampLedEnum.LED_2
// TectoyLampLedEnum.LED_3
// TectoyLampLedEnum.LED_4
// TectoyLampLedEnum.LED_5
// TectoyLampLedEnum.LED_6
await NativeModuleTectToySunmiSDK.lampada.ControlarLampadaLoop(status: TectoyLampStatusEnum, onTime: number, offTime: number, led: TectoyLampLedEnum);
await NativeModuleTectToySunmiSDK.lampada.Desligar();
Lista de métodos expostos para utlização com a gaveta.
await NativeModuleTectToySunmiSDK.gaveta.AbrirGaveta();
Métodos para interação com leitor de código de barras
Este método é um "listener" ou seja, ele aguarda que o evento ocorra, e dispara a função de callback quando o evento acontece.
useEffect(() => {
// Em dispositivos que possúem leitor de código de barras ou o suporte via USB.
// Ex: D2Mini, D2SCombo, T2s com leitor USB externo (precisa configurar broadcast).
// Para funcionar a leitura do código, precisa configurar o dispositivo para fazer broadcast dos dados e desabilitar TextInput para saída de texto.
//
// L2s/L2ks também funciona aqui com leitura de código de barras.
//
// Importante chamar cleanup para remover o listener da função quando quiser parar de receber o código de barras lido.
//
const cleanup = NativeModuleTectToySunmiSDK.scanner.onBarcodeRead((ev) => {
console.log(ev);
});
return () => cleanup();
}, []);
Métodos auxiliares que podem ser úteis.
await NativeModuleTectToySunmiSDK.utils.FecharApp();
await NativeModuleTectToySunmiSDK.utils.ReiniciarDispositivo(motivo: string);
await NativeModuleTectToySunmiSDK.utils.ModoFullScreen(ativar: boolean = true);
Fique a vontade para fazer contribuições no projeto, ele é um projeto que a Linvix Sistemas está utilizando em seus projetos e achou conveniente disponibilizar para a comunidade.
MIT