Jump to content
Fivewin Brasil

SAOliveira

Membros
  • Posts

    1,018
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by SAOliveira

  1. Hoje to meio enrolado, vou ver se no final da um tempo.

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  2. Precisava dar uma olhada.

    Este exemplo que mostrei, faz o seguinte.

    No micro tem modem externo, este processa uma informação, gera uma string, faz a ligação.

    No outro lado, tambem com modem externo, recebe o sinal, estabelece a conexao, e recebe o pacote da string, pelo proprio mode descarrega esta string numa CPU-Z80, e retorna que o pacote foi recebido.

    O micro inicial, finaliza a conexao.

    O que esta ocorrendo com voce, é que o pacote não existe e ele faz o HANGUP.

    Este hangup, precisa ser eliminado.

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  3. A pAlinha(), somente alinha o texto LEFT,CENTER ou RIGHT.

    A parte de configuração seria isto

    m1.jpg

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  4. Bem amigo, creio que o problema seja ai entao, pois uso com XHB e nao tenho problema algum, alias eu nao o cliente.

    E olha que não é pouco uso nao, trata-se da CSN.

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  5. Não gosto de postar assim, mas no momento estou sem tempo, espero que entenda, esta rotina uso para enviar dados para painel eletronico, via modem, no caso esta usando um modem externo, mas interno tambem funciona, desde que esteja instalado no windows, e devidamente configurado.

    
    

    ** Módulo : EnviaModem.prg **

    ** Comentário : Transmitir dados para painel, via modem **

    ** Data : 05/10/2006 - Oliveira, Sérgio A. **

    **-----------------------------------------------------------**

    #Include "FiveWin.ch"

    #include "Phone.ch"

    **-----------------------------------------------------------**

    Function EnviaModem()

    #define FULL_SIZE 405

    #define HALF_SIZE 260

    #define IN_BUFFER 40

    #define TERM_SIZE 300

    extern Set, GetTextWidth

    static oSpeaker, oHangDown, oLocalNum, oNumber

    Private nComm, cTerminal, oTerminal, cNumber,xPacote:="", xPcte:=.f.

    **-----------------------------------------------------------**

    Private noESC[1],oDlg[1],oBotao[5],cStatusModen:=''

    AFILL(noESC,.f.)

    **-----------------------------------------------------------**

    _Top:=oWnd:nTop()+200

    _Lef:=oWnd:nLeft()+170

    _Bot:=_Top+260

    _Rig:=_Lef+468

    cTitulo :=" ..:: Enviar dados para painel ::. " //+AllTrim(ModemName())+" ::.."

    cLocalNum:="35235299"

    cNumber := pAlinha("0w1435235299",20,"E")

    **-----------------------------------------------------------**

    IF(! File("ARQUIVOS\ConfigPainel.DBC"))

    MsgInfo("Dados para transmissão ainda não configurados. "+CRLF+"Efetue no módulo configurar."," .:: Atenção ::.")

    RETURN(.f.)

    ENDIF

    IF(! File("ARQUIVOS\LinhaPainel.DBC"))

    MsgInfo("Nenhum dado para enviar ao painel"," .:: Atenção ::.")

    RETURN(.f.)

    ENDIF

    Use "arquivos\LinhaPainel.DBC" Index "arquivos\LinhaPainel.IND" Exclusive Alias "PNL" New

    Use "arquivos\ConfigPainel.DBC" Exclusive Alias "CFG" New

    PNL->(DBGoTop())

    IF (PNL->(Eof() ))

    MsgInfo("Nenhum dado para enviar ao painel.",".:: Atenção ::.")

    DBCloseAll()

    RETURN(.t.)

    EndIf

    cPorta:=AllTrim(CFG->PortaCom) //ModemPort())

    cNumber:=""

    //cNumber:=cNumber+IIf(CFG->PrefxLin==" ","",CFG->PrefxLin+"W")

    cNumber:=cNumber+IIf(CFG->FixarOpe=="S",CFG->CodigOpe+"-"+CFG->CodigDdd+"-"+CFG->NumerFon,CFG->numerFon)

    DEFINE DIALOG oDlg[1] From _Top,_Lef to _Bot,_Rig OF oWnd Pixel FONT fNormal COLOR PRETO,CINZACC TITLE cTitulo Style(DS_MODALFRAME)

    oDlg[1]:bCommNotify:={|nComm, nStatus|BytesAtPort(nComm,nStatus)}

    @ 008,010 Say "Telefone no Painel" OF oDlg[1] Pixel Size 055,007 FONT fNormal COLOR PRETO,CINZACC

    @ 015,010 GET oNumber VAR cNumber Picture "@!K" OF oDlg[1] Pixel Size 055,009 FONT fGet COLOR VERMELHO,FundoGet UPDATE ReadOnly

    // @ 030,010 BUTTON oBotao[1] Prompt "Discar" OF oDlg[1] Pixel Size 055,015 FONT fNormal ACTION If( ! Empty( cNumber ), ( HangUp( .f. ), LigarNumero( cNumber ) ),)

    @ 030,010 BUTTON oBotao[2] Prompt "Enviar Dados" OF oDlg[1] Pixel Size 055,015 FONT fNormal ACTION MandaDados(xPcte:=.t.)

    // @ 070,010 BUTTON oBotao[3] Prompt "Fechar Conexão" OF oDlg[1] Pixel Size 055,015 FONT fNormal ACTION Hangdown()

    @ 050,010 BUTTON oBotao[4] PROMPT "Sair" OF oDlg[1] Pixel Size 055,015 FONT fBold ACTION (noESC[1]:=.t.,oDlg[1]:End())

    @ 008,070 Say "Status da Comunicação" OF oDlg[1] Pixel Size 100,007 FONT fNormal COLOR PRETO,CINZACC

    @ 015,070 GET oTerminal VAR cTerminal OF oDlg[1] Pixel Size 155,090 FONT fGet COLOR AZUL,FundoGet UPDATE MULTILINE

    ACTIVATE DIALOG oDlg[1] ON INIT (If( ! InitModem(), oDlg[1]:End(),(HangUp(.f.),LigarNumero(cNumber)) ),;

    EnableCommNotification( nComm, oDlg[1]:hWnd, IN_BUFFER, IN_BUFFER ) );

    VALID ( CloseComm( nComm ), noESC[1] )

    dbCloseall()

    Return(NIL)

    **-------------------------------**

    Static Function InitModem()

    **-------------------------------**

    Local cDcb, nError, nBytes

    nComm = OpenComm( cPorta, 1024, 128 )

    If(! BuildCommDcb( cPorta+":1200,n,8,1", @cDcb ))

    nError = GetCommError( nComm )

    cTerminal:="Erro inicializando modem !!!" ; oTerminal:Refresh()

    oBotao[2]:Disable()

    Return(.F.)

    ENDIF

    If( nBytes := WriteComm( nComm, "ATZ0" + Chr( 13 ) ) ) < 0

    nError = GetCommError( nComm )

    cTerminal:="Erro inicializando modem !!!" ; oTerminal:Refresh()

    oBotao[1]:Disable()

    oBotao[2]:Disable()

    oBotao[3]:Disable()

    Return(.F.)

    Endif

    Return(.t.)

    **-------------------------------------------------**

    Static function BytesAtPort( nComm, nStatus )

    **-------------------------------------------------**

    Local cBuffer := Space( IN_BUFFER )

    DEFAULT cTerminal := Space( TERM_SIZE )

    ReadComm( nComm, @cBuffer )

    cBuffer:=StrTran(cBuffer,"ATZ0","Modem inicializado com sucesso.")

    cBuffer:=StrTran(cBuffer,"OK","")

    cBuffer:=StrTran(cBuffer,"TH","")

    cBuffer:=Strtran(cBuffer,"ATDP","Discando para : ")

    cBuffer:=Strtran(cBuffer,"ATDT","Discando para : ")

    cBuffer:=StrTran(cBuffer,"ATH","Fechando conexão")

    cBuffer:=StrTran(cBuffer,"BUSY","Telefone ocupado")

    cBuffer:=StrTran(cBuffer,"CONNECT","Conectado ")

    cBuffer:=StrTran(cBuffer,"NO DIALTONE","Sem sinal para discar.")

    cBuffer:=StrTran(cBuffer,"NO CARRIER","Telefone não atende.")

    If (! Empty(xPacote))

    cBuffer:=""

    If (xPcte)

    cBuffer:="Enviando dados para painel"

    xPcte:=.f.

    EndIf

    EndIf

    If (!Empty(cBuffer))

    cTerminal = PadR( AllTrim( cTerminal ) + AllTrim( cBuffer ) +CRLF,TERM_SIZE )

    ENDIF

    oTerminal:Refresh()

    Return(NIL)

    **------------------------------------------**

    Static Function LigarNumero( cNumber )

    **------------------------------------------**

    LOCAL cNumero:=IIf(CFG->PrefxLin==" ","",CFG->PrefxLin+"W")+StrTran(cNumber,"-",""), nBytes:=WriteComm( nComm, AllTrim( cNumero ) + Chr( 13 ) )

    If(nBytes < 0)

    MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )

    ENDIF

    Return(NIL)

    **--------------------------------**

    Static Function HangUp(lOpen)

    **--------------------------------**

    nBytes := WriteComm( nComm, "ATD"+AllTrim(CFG->TipoFone)+ If( lOpen, Chr( 13 ), " " ) )

    if nBytes < 0

    MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )

    Endif

    Return(NIL)

    **------------------------------**

    Static Function HangDown()

    **------------------------------**

    Local cTexto:=""

    nBytes := WriteComm( nComm, "ATH" )

    if nBytes < 0

    MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )

    Endif

    SysWait(0.05)

    **--[ Fecha porta Serial ]--**

    CloseComm( nComm )

    SysWait(0.05)

    cTexto:="Conexão Encerrada"

    cTerminal:=PadR( AllTrim( cTerminal ) + cTexto + CRLF,TERM_SIZE )

    oTerminal:Refresh()

    Return(NIL)

    **-------------------------------**

    Static Function MandaDados()

    **-------------------------------**

    PNL->(DBGoTop())

    xPacote:="[L1]"

    WHILE(PNL->(!Eof() ))

    xLin1:=AnsiToOem(PNL->bailin)

    xLin2:=AnsiToOem(PNL->menlin)

    xPacote+="[M1"+pAlinha(xLin1,12,"C")+"]"

    xPacote+="[M2"+pAlinha(xlin2,12,"C")+"]"

    xPacote+="[P"+StrZero(PNL->temlin,1)+"]"

    PNL->(DBSkip(1))

    ENDDO

    xPacote+="[F]"

    nBytes := WriteComm( nComm, xPacote + Chr( 13 ) )

    if nBytes < 0

    MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) )

    endif

    SysWait(2)

    cTexto:="Dados enviados com sucesso"

    cTerminal:=PadR( AllTrim( cTerminal ) + cTexto + CRLF,TERM_SIZE )

    oTerminal:Refresh()

    Return(NIL)

    **------------------------------------------------**

    ** Configuracoes de modem instalado no windows **

    **------------------------------------------------**

    FUNCTION ModemName()

    Local oReg, uVar

    oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000", .f. )

    uVar := RTrim(oReg:Get( "DriverDesc", "" ))

    oReg:Close()

    If Empty( uVar )

    oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Modem\0000", .f. )

    uVar := RTrim(oReg:Get( "DriverDesc", "" ))

    oReg:Close()

    Endif

    Return uVar

    FUNCTION ModemVersion()

    Local oReg, uVar

    oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000", .f. )

    uVar := RTrim(oReg:Get( "DriverVersion", "" ))

    oReg:Close()

    If Empty( uVar )

    oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Modem\0000", .f. )

    uVar := RTrim( oReg:Get( "DriverVersion", "" ) )

    oReg:Close()

    Endif

    Return uVar

    FUNCTION ModemPort()

    Local oReg, uVar

    oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000", .f. )

    uVar := RTrim( oReg:Get( "AttachedTo", "" ) )

    oReg:Close()

    If Empty( uVar ) // Win95-98-ME doesn't have the above key

    oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Modem\0000", .f. )

    uVar := RTrim( oReg:Get( "AttachedTo", "" ) )

    oReg:Close()

    Endif

    Return uVar

    id=code>id=code>

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  6. Não usei ainda DataRegis.

    Mas vamos tentar ajudar.

    Voce disse que o demo deles, é um executável, este executável tem configuração de Porta/Velocidade.

    Se sim, voce configurou o ACBR ?

    O ACBR quando dá erro de comunicação, significa que a porta selecionada, não corresponde a do equipamento.

    Em em propriedades, Gerenciador de dispositivos, tem LPT/COM, voce por acaso já conferiu a porta que esta lá, com a configurada no ACFR, este só vai até COM3.

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  7. Jef, acho que a melhor pessoa a te falar, seria o contador da empresa a qual voce presta serviços.

    Uma segunda alternativa seria o Posto Fiscal.

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  8. Amigo, diz aí.

    1 - Porta com direto no micro ?

    2 - Esta usando adaptador USB/COM ?

    3 - Qual o modelo exato da ECF.

    4 - Não pegou ou baixou algum software DataRegis, de teste.

    5 - O Acbr esta configurado ?

    6 - Já testou colocar outra ECF no ACBR ?

    -------------------------------------------------------------------

    Boleto with Personal/FastReport it is very, very good, beyond prettier.

    FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX

  9. Na tabela algum campo de status, tipo livre,c,1,0 que receberia S/N.

    Ao tentar abrir o registro checar se esta S ou N.

    Se S move N e deixa abrir.

    Se N manda mensagem.

    Poderia até move quem esta com o registro aberto.

    Só uma ideia relanpago.

  10. Comecei a fazer alguns testes com a ribbonbar, e para tanto fiz dois sistemas muito simples, apenas a tela pricipal e a barra.

    1º Sistema BUTTONBAR 2007 nativa.

    2º Sistema RIBBONBAR ActiveX.

    Gerenciador de tarefas aberto, para acompanhar.

    Executado no mesmo micro, sem nenhuma ação, tudo parado, sequer movimentar o mouse.

    1º Consumo: Processador=0 Memoria=3.664kb

    2º Consumo: Processador=0 Memoria=412.658kb

    Tempo de comparação 60 minutos.

    Retorno ao sistema.

    1º Normal.

    2º Trava tudo, só finalizando processo.

    Se alguem estiver usando, e puder fazer testes e reportar, ficaria grato.

  11. Comecei a fazer alguns testes com a ribbonbar, e para tanto fiz dois sistemas muito simples, apenas a tela pricipal e a barra.

    1º Sistema BUTTONBAR 2007 nativa.

    2º Sistema RIBBONBAR ActiveX.

    Gerenciador de tarefas aberto, para acompanhar.

    Executado no mesmo micro, sem nenhuma ação, tudo parado, sequer movimentar o mouse.

    1º Consumo: Processador=0 Memoria=3.664kb

    2º Consumo: Processador=0 Memoria=412.658kb

    Tempo de comparação 60 minutos.

    Retorno ao sistema.

    1º Normal.

    2º Trava tudo, só finalizando processo.

    Se alguem estiver usando, e puder fazer testes e reportar, ficaria grato.

×
×
  • Create New...