DAS-8000 ver. 2.5
'Enviar datos al Área de Escritura
'nDIS = Número de dispositivo;
'cant = Cantidad de palabras a escribir;
'Retorna los datos recibidos vía serie
Private Function Enviar(nDIS As Integer, add As Integer, cant As Integer, datos
As String) As String
Dim nbytes
Dim balto
Dim bbajo
Dim crc
Dim env
Dim TBytes()
Dim b
'Mensaje a enviar
env = Chr$(nDIS) & Chr$(16)
env = env & Chr$(0) & Chr$(add)
env = env & Chr$(0) & Chr$(cant)
env = env & Chr$(cant * 2)
env = env & datos
nbytes = 8
crc = CRC16(env)
'Añadir el CRC al mensaje
balto = CInt(((crc And &HFF00&) \ &H100&) And &HFF&) 'byte alto del CRC
bbajo = CInt(crc And &HFF&)
CRC
env = env & Chr$(bbajo)
env = env & Chr$(balto)
'Enviar los datos
ReDim TBytes(1 To Len(env))
While b < Len(env)
Wend
Comm.Output = TBytes()
'Esperar la respuesta
While Comm.InBufferCount <> nbytes
Wend
'Retornar los datos recibidos
Erase TBytes
b = 0
env = ""
TBytes() = Comm.Input
While b < nbytes
Wend
Enviar = env
End Function
/ 162
Comunicaciones
As Integer
As Integer
As Integer
As Long
As String
As Byte
As Integer
b = b + 1
TBytes(b) = AscB(Mid(env, b, 1))
DoEvents
env = env & Chr$(TBytes(b))
b = b + 1
add = Dirección inicial de escritura
datos = Datos, en binario, a escribir
'Bytes a retornar el dispositivo
'Byte alto del CRC
'Byte bajo del CRC
'Valor de CRC
'Datos a enviar
'Igual que "env"
'Índice
'cabecera
'dirección inicial
'cantidad de palabras
'nº de bytes
'Calcular el CRC
As Byte
'byte bajo del