Sub Class_Globals
Private fx As JFX
Type cmdData_t (cmd As Int, _
cmdName As String, _
dt As Long, _
status As Int, _
jDate As Double, _
Vrms As Double, _
Freq As Double)
Private Const PAUSE_I As Int = 0
Private Const RUN_I As Int = 1
Private Const CHEKPOINT_I As Int = 2
Private Const SHUTDOWN_I As Int = 3
Private Const GET_DATA_I As Int = 4
Private Const PAUSE_S As String = "Pause"
Private Const RUN_S As String = "Run"
Private Const CHEKPOINT_S As String = "Checkpoint"
Private Const SHUTDOWN_S As String = "Shutdown"
Private Const GET_DATA_S As String = "GetData"
Private Const STATUS_OK As Int = 0
Private Const STATUS_ERROR As Int = 1
Private cmdWrite As cmdData_t
Private cmdRead As cmdData_t
Private Astream As AsyncStreams
Public IsConnected As Boolean
Private ser As B4XSerializator
Private socket As Socket
Private tmr As Timer
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
cmdRead.Initialize
cmdWrite.Initialize
tmr.Initialize("tmr", 2000)
tmr.Enabled = True
SetState(False)
End Sub
'============================================================================================
Private Sub SetState(connected As Boolean)
IsConnected = connected
If IsConnected Then
' lblState.Text = "State: Connected"
Else
' lblState.Text = "State: Disconnected"
End If
End Sub
'============================================================================================
Private Sub Astream_NewData(buffer() As Byte)
' Try
cmdRead = ser.ConvertBytesToObject(buffer) 'Error here'
' Catch
Log(LastException)
' End Try
Log(("Read Data: " & cmdRead.cmd & " - " & cmdRead.cmdName & "Status: " & cmdRead.status & " Date: " & cmdRead.dt))
'Debug only
cmdWrite.cmd = cmdRead.cmd
cmdWrite.cmdName = cmdRead.cmdName
cmdWrite.status = STATUS_OK
cmdWrite.dt = DateTime.Now
'------------------------------
Select cmdRead.cmd
Case PAUSE_I
Case RUN_I
Case CHEKPOINT_I
Case SHUTDOWN_I
'Check point db
'Setup return message
astreamWriteData
'Exit app
ExitApplication
Case GET_DATA_I
End Select
astreamWriteData
End Sub
'============================================================================================
Private Sub astreamWriteData
Astream.Write(ser.ConvertObjectToBytes(cmdWrite))
Log(("Write Data: " & cmdWrite.cmd & " - " & cmdWrite.cmdName & "Status: " & cmdWrite.status & " Date: " & cmdWrite.dt))
End Sub