O acesso ao google drive..
Boa Noite, Welton
Utilize o InteliSat, e leia as instruções do Manual_Desenvolvedor_SAT_Tanca_TS-1000.pdf, e do Quick_Guide_Tanca_SDK-1000_R1.pdf.
Att
Rodrigo
Boa Noite, Roberto
Voce pode postar o xml de seu cupom?
Att
Rodrigo
Bom Dia
Entendo. Seria o caso da Tanca verificar. Mas, voce tambem sabe que, reiniciando o PC, significa que a situação acima se reproduz, OK?
Obrigado pelo seu retorno.
So tentei ajudar.
ATT
Rodrigo
Agora, se desligar as chaves de energia, sem problema
Boa Noite, NAG
Eu não disse para não desligar o computador.
Eu disse:
1) O desligar do computador, pelo software, não o desliga, deixa-o em stand by.
Por exemplo: uma televisao desligada pelo controle remoto, fica em stand by, não esta realmente desligada, só estará efetivamente desligada quando você retirar o plug da energia da tomada;
2) Existe uma opção no setup de cada computador que habilita, ou não, estando o computador em stand by – isto e, foi desligado através do sistema operacional, e não retirado da energia, ou desligado o disjuntor – a continuidade da alimentação da porta usb. Isto permite que, por exemplo, você deixe seu celular carregando, mesmo que o computador esteja em standby. Assim, da mesma forma, o SAT, que e alimentado pela energia vinda da porta usb. Assim, se você desabilitar a alimentação desta porta, pelo setup da maquina, ao desligar o computador pelo sistema operacional, você estará desligando também a alimentação da porta usb, e, consequentemente, o SAT. Quando o usuário pressionar o botão para ligar o computador ( pressione ON no controle remoto da televisão ), estará religando o SAT, e resolvendo seu problema.
O que eu falei é exatamente o contrario do que você entendeu.
Desculpe pelo texto extenso.
Espero ter esclarecido
Att
Rodrigo
Boa Noite, Fabio
“…no final do dia, após desligar o computador o SAT que esta ligado a USB continua ligado …”:
A opção de desligar o USB varia de acordo com o projeto da placa mãe.
Algumas placas alimentam as portas USB pela linha +5 V e esta é desligada quando a fonte é desligada. Já outras placas utilizam o +5VSB e as portas USB jamais serão desligadas se a fonte estiver ligada na energia elétrica (independente se a fonte estiver ligada ou desligada).
Mas deve existir uma opção da bios para desabilitar a alimentação da USB:
Na aba power management, do setup do computador, habilite Erp Support, desabilite:
USB Wake Up from S3 ( No DELL é USb Wake Support )
Isto ira para a alimentação das portas USB, desligando o SAT, quando o computador entrar em StandBy ( o desligar para o usuário ), pois o computador só estará efetivamente desligado quando não houver energia alimentando o mesmo.
Se você efetuar este procedimento, o SAT será desligado, quando o computador entrar em standby, e será ligado no outro dia, resolvendo, ou contornando, esse “problema”.
ATT
Rodrigo
Boa tarde
Você esta desenvolvendo com o Kit Desenvolvedor da Tanca?
Se não, de qualquer forma, voce pode usar o kit, que é um Software que faz a validação do XML, e visualização dos comandos a enviar para o SAT. Está disponível no link http://www.tanca.com.br/drivers.php?cat=24&sub=43
ATT
Rodrigo
Boa Tarde
Faça o teste com o InteliSat – alem de executar o comando, ele mostra o comando, antes de executar. Talvez voce tenha passado algo errado – compare o que o InteliSAT mostra com o comando que seu aplicativo esta emitindo.
Rodrigo
Boa Tarde, Carlos
Desculpe, não havia mais acessado o forum.
Declare uma classe assim:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
static class NativeMethods
{
[DllImport(“kernel32.dll”)]
public static extern IntPtr LoadLibrary(string dllToLoad);
[DllImport(“kernel32.dll”)]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
[DllImport(“kernel32.dll”)]
public static extern bool FreeLibrary(IntPtr hModule);
}
na sua classe de implementação:
static IntPtr dllHandle;
//
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate IntPtr ConsultarStatusOperacional(int numeroSessao, [MarshalAs(UnmanagedType.LPStr)] string codigoDeAtivacao);
//
e na sua lógica:
string strSATDLL_PARAMETRIZADO = “SAT_OUTRO.dll”;
string strSATDLL = string.Empty;
if (strMsg.ToLower().Equals(“tanca”))
{
strSATDLL = “SAT.dll”;
}
else
{
strSATDLL = strSATDLL_PARAMETRIZADO;
}
IntPtr ptr = NativeMethods.LoadLibrary(strSATDLL);
IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(ptr, “ConsultarStatusOperacional”);
ConsultarStatusOperacional consultaSat = (ConsultarStatusOperacional)Marshal.GetDelegateForFunctionPointer(
pAddressOfFunctionToCall,
typeof(ConsultarStatusOperacional));
strStatus = Marshal.PtrToStringAnsi(consultaSat(iNumeroSessaoAC, strCodigoAtivacao));
A condição acima, é logica de exemplo. É obvio que sua intenção é parametrizar a chamada.
Mas, embora o Sefaz tenha recomendado a padronização da Sat.dll, os fabricantes seguiram a especificação somente nos entrypoints da mesma ( metodos ). Mas, na definição dos parametros destes metodos, o seguiram somente em quantidade de parametros, não em sua especificação. Assim, o numero da sessão é inteiro para um fabricante, em outro, deve ser passado como string, mas em seu conteudo como inteiro. Desta forma, voce ate consegue parametrizar a dll de chamada, mas deve tomar cuidado com a passagem dos parametros ao metodo chamado.
Se ajudou, propague, se tiver uma solução, auxilie, propague, divulgue.
ATT
Rodrigo
Boa Tarde, Diego
faça assim:
[DllImport(strSATDLL, CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr TesteFimAFim(int numeroSessao, [MarshalAs(UnmanagedType.LPStr)] string codigoDeAtivacao,[MarshalAs(UnmanagedType.LPStr)] string dadosVenda);
na logica:
IntPtr ptr = TesteFimAFim(iNumeroSessaoAC, strCodigoAtivacao, strDadosVenda);
string strStatus = Marshal.PtrToStringAnsi(ptr);
Espero q ajude
Rodrigo
Boa Tarde, Diego
Se voce informar qual o erro, ou a mensagem dele, e como vc esta fazendo o DLLImport, fica mais facil
Rodrigo
Boa Tarde, GVM
O pessoal da Tanca criou o forum, mas não está mais utilizando-o, aparentemente.
O meu Kit desenvolvedor esta funcionando normalmente, conectado ao Sefaz-SP, e emitindo cupom.
Testei agora mesmo, antes de responder.
Rodrigo