Erro no sistema ao usar funções da CTP.LIB

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

Erro no sistema ao usar funções da CTP.LIB

Mensagem por ANDRIL »

Olá pessoal,

Fiz uma rotina para ler a porta serial e capturar os dados de uma balança. O problema é que sem eu chamar a função, apenas coloca-la no código fonte, ele linka normalmente, porem ao ser executado dá o erro

Unrecoverable error 667: Eval stack fault

Ele dá em qualquer parte do programa, não tem uma área específica. Fiz um teste, e anulei na função que fiz, todas as chamadas a funções:

COM_INIT(), COM_OPEN(), COM_SEND(), COM_READ(), COM_CLOSE()

e o sistema voltou a funcionar normalmente sem da o erro acima.

Será que estas funções são incompativeis com o modo protegido do BLINKER mesmo usando a CTP.LIB e __WAIT.OBJ e CTUSP.OBJ

Alguém poderia me dar uma luz????


Meu lnk esta assim:

Código: Selecionar todos

FILE np

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE CLIPPER //F250
BLINKER EXECUTABLE EXTENDED
BLINKER EXECUTABLE COMPRESS 1

file @bli_lnk

SEARCH BLXCLP52 

LIB CTP
LIB EXTEND
LIB CLIPPER
LIB DBFCDX
LIB DBFNSX
LIB SCRSVE52
LIB IMPBAR
LIB PRN_LPT
LIB EVEN
LIB WAPI
meu script file:

Código: Selecionar todos

file np,agedbf5,pcterror,ageopc,agemen4, agetap, agetdbf, calcula, agesan, ageimpr1, ageimpr2, ageimpr3, agedbf4, agedbf9, rotina, agecheq, ageace, agecart, agepend, agefatu,ageprv,agemen2,agecon,agemen3,np2,timeslic,comanda,caixaope,projeto
file mesas,f_mod_v,f_mod_v1,precos,np3,promocao,agemen1,ativareg,__wait
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Erro no sistema ao usar funções da CTP.LIB

Mensagem por Pablo César »

Não que eu tenho utilizado para balanças, mas acho que o conceito é igual. Eu prefiro usar a IOLIB para acesso a seriais, na verdade a experiência que eu tive com acesso serial com a CA-Tools foi pouca e não obtive bons resultados, tem aqui quem prefira usar a CT mas na minha opinião é IOLIB.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Erro no sistema ao usar funções da CTP.LIB

Mensagem por sygecom »

Andril,
A CTP.LIB é para usar em modo extendido, vc deve usar a CT.LIB , alias uso ela até hj em sistemas clipper e ela é muito boa para comunicação serial, alias diga de passagem, tah ai uma coisa que o xharbour tem alguma falha e o clipper não. Em meus teste em deixar a busca de peso continuo no clipper ele toda vida busca certinho sem trancar, já a mesma coisa usando a hbcomm do xharbour em determinado tempo de busca continua de peso eletronico ele trava tudo...mas isso é coisa de 10 ou 15 min, busca peso um atraz do outro sem intervalo. Tive que limitar o tempo de busca em xharbour. Já me estendi de mais, apena deixar a minha dificuldade em relação clipper x xharbour.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

Re: Erro no sistema ao usar funções da CTP.LIB

Mensagem por ANDRIL »

Pablo, a questão é que a CTP.LIB é muito boa pra comunicação serial, o que me intriga é causar esse erro apenas ao mencionar as funções relatadas acima.

Fiz um programinha a parte usando a CTP.LIB e funcionou certinho, acho que deve ter alguma função ou rotina dentro do meu sistema que ocasiona o problema com referência cruzada.

Sygecom, uso a CTP.LIB pq já estou linkando em modo protegido/extendido como citado no meu .lnk

Aproveitando, fiz umas buscas no forum e vi algumas mensagens sua dizendo que tinha algumas rotinas para leitura de algumas balanças, só que não encontrei o link na seção "CODIGO FONTE", onde poderia encontra-las?

Obrigado Pessoal,

Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Erro no sistema ao usar funções da CTP.LIB

Mensagem por sygecom »

Segue abaixo um exemplo simples usando a CTP.LIB

Código: Selecionar todos

Function CHAMABAL
COM_CLOSE(1)
COM_OPEN(1, 1, 1)
COM_INIT(1, 1200, "N", 8, 1)
COM_HARD(.F.)
W_PESO:=""
W_LETRA:=""
DO WHILE .T.
   IF COM_COUNT(1) > 0
      W_LETRA := COM_READ(1, 1)
      IF !W_LETRA$"0123456789"
         W_PESO := ""
      ELSE
         W_PESO = W_PESO+W_LETRA
      ENDIF
   ENDIF
   IF LEN(ALLTRIM(W_PESO)) = 6
      EXIT
   ENDIF
ENDDO
W_PESO = ALLTRIM(W_PESO)
COM_CLOSE(1)
vLIQ=VAL(W_PESO)
Return(vLIQ)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder