algum amigo aqui ja enviou pela serial valores diretamente em hexadecimal?
estou precisando enviar os seguintas valores
0x53|0x80
0x55|0x80
alguem ja enviou coisa desse tipo??
Porta Serial
Moderador: Moderadores
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Porta Serial
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Porta Serial
Desculpe, não entendi, explique melhor. Usei muito, mas para pegar o Código de Barras dos produtos em mercadinhos. Usei a HBCOMM.LIB.
https://pctoledo.org/forum/viewto ... f=4&t=8412
https://pctoledo.org/forum/viewto ... f=4&t=7778
https://pctoledo.org/forum/viewto ... f=4&t=8412
https://pctoledo.org/forum/viewto ... f=4&t=7778
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Porta Serial
programo em clipper/harbour a vários anos , mais também sou técnico em eletrônica, nesses dias recebi um equipamento
que precisa de um soft para comunicar com ele, e o protocolo que o cara me mandou foi esse:
acionar motor = 0x53
desligar motor = 0x53|0x80
acionar solenoide = 0x54
desligar solenoide = 0x54|0x80
entre outros comandos mais todos seguindo essa regra
com o |0x80 desliga
eu sei que o |0x80 seta o bit 7
como sabemos um hexadecimal é um valor em binário nesses em questão são de 8 bits ou 1 byte
se fosse de 1 microcontrolador para outro eu enviaria tranquilamente , mais não sei ainda como fazer no harbour
tenho um pouco mais de intimidade com a hbct, mais se conseguise um exemplo com a hbcom funcional pra mim seria otimo!
que precisa de um soft para comunicar com ele, e o protocolo que o cara me mandou foi esse:
acionar motor = 0x53
desligar motor = 0x53|0x80
acionar solenoide = 0x54
desligar solenoide = 0x54|0x80
entre outros comandos mais todos seguindo essa regra
com o |0x80 desliga
eu sei que o |0x80 seta o bit 7
como sabemos um hexadecimal é um valor em binário nesses em questão são de 8 bits ou 1 byte
se fosse de 1 microcontrolador para outro eu enviaria tranquilamente , mais não sei ainda como fazer no harbour
tenho um pouco mais de intimidade com a hbct, mais se conseguise um exemplo com a hbcom funcional pra mim seria otimo!
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Porta Serial
Boa tarde !
Não entendo quase nada desse negócio de hexadecimal, mas com as funções de conversão do xHarbour não seria possível ?
A função abaixo é da HbComm.
Perdão pelo tratamento dos retornos que eu não editei, mas eu lido com balanças rsrsrsrs.
Mas creio que o caminho seja por aí.
Não entendo quase nada desse negócio de hexadecimal, mas com as funções de conversão do xHarbour não seria possível ?
A função abaixo é da HbComm.
Código: Selecionar todos
Function pegapeso
Local bHandle, string:=chr(5), bytes, buffer, q, tenta:= 0
Private dados
bal_marca = "TOLEDO"
bal_porta = "COM1"
bal_veloc = "9600"
string = HexToSTr( <valor hexadecimal> ) // precisaria converter o seu valor hexa com HexToSTr( <valor hexadecimal> )
do while .t.
bhandle:= Init_Port(bal_porta,val(bal_veloc),8,0,1,8000)
OutBufClr(bhandle) // Limpa o Buffer de Saida
OUTCHR(bhandle,string)
millisec(250)
bytes:= InbufSize(bhandle)
dados:= SPACE(20)
buffer:= InChr( bhandle, Bytes, @DADOS)
UnInt_Port(bhandle)
dados = subs(alltrim(dados),2,5)
if dados = "IIIII"
millisec(250)
tenta ++
if tenta > 8
return -1
endif
loop
elseif dados = "SSSSS"
return -2
elseif dados = "NNNNN"
return -3
endif
q = val(dados)/1000
if q = 0
return -4
endif
exit
enddo
return qMas creio que o caminho seja por aí.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Porta Serial
tudo tranquilo, o problema é que tem que entender um pouco de eletronica mais precisamente na parte de microcontroladores
estou com o codigo do rx " o codigo escrito para o microcontrolador alvo" o que esta me encucando é como enviar marcando o bit 7 rsrs
exatamente isso 0x53|0x80 "dessa forma marco o bit 7"
de microcontrolador para microcontrolador consigo normalmente agora ja com o harbour estou levando couro
estou com o codigo do rx " o codigo escrito para o microcontrolador alvo" o que esta me encucando é como enviar marcando o bit 7 rsrs
exatamente isso 0x53|0x80 "dessa forma marco o bit 7"
de microcontrolador para microcontrolador consigo normalmente agora ja com o harbour estou levando couro
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Porta Serial
No entendí muy bien lo que necesitas pero esto 0x53|0x80 en Hb es equivalente a
hb_bitOR (0x53,0x80)
hb_bitOR (0x53,0x80)