'Activity module
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim HC As HttpClient
Dim PARSER As SaxParser
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim TxtList As List
Dim SPSDataTypes As Map
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
HC.Initialize("HC")
PARSER.Initialize
End If
End Sub
Sub Activity_Resume
Dim Query As String
TxtList.Initialize
SPSDataTypes.Initialize
' ** Initialisiere Vars
Load_Defaults
Query = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & "encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>" & _
"<i><n>@GV.PLCMODE_ON</n></i><i><n>@GV.ONBOARD_INPUT_BIT1</n></i>"
Send2SPS(Query,1)
End Sub
Sub Load_Defaults
SPSDataTypes = File.ReadMap (File.DirDefaultExternal,"SPS_Vars.csv")
' Format eg. ONBOARD_INPUT:WORD
'**Manuelles Laden der MAP
'SPSDataTypes.Put("ONBOARD_INPUT","WORD")
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub HC_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int )
Log("Error: " & Reason & ", StatusCode: " & StatusCode)
If Response <> Null Then
Log(Response.GetString("UTF8"))
Response.Release
End If
End Sub
Sub Send2SPS(Query As String, TaskId As Int)
Dim Req As HttpRequest
ProgressDialogShow("connecting...")
Req.InitializePost2("http://192.168.216.22/spstest/track.xml", Query.GetBytes("UTF8"))
HC.Execute(Req,TaskId)
ProgressDialogHide
End Sub
Sub HC_ResponseSuccess (Response As HttpResponse, TaskId As Int)
Dim Res As String
Dim In As InputStream
' Res = Response.GetString("UTF8")
Log("Response from server: " & Res)
Select TaskId
Case 1
' Msgbox(Res,"Result") ' fail = -1
' Response.GetAsynchronously("XMLResponse", File.OpenOutput(File.DirInternalCache, "Rss.txt", False), True, TaskId)
Response.GetAsynchronously("XMLResponse", File.OpenOutput(File.DirDefaultExternal , "sps.xml", False), True, TaskId)
End Select
End Sub
Sub XMLResponse_StreamFinish (Success As Boolean, TaskId As Int)
Dim In As InputStream
If Success = False Then
Msgbox(LastException.Message, "Error")
Return
End If
' parse the xml file
In = File.OpenInput(File.DirDefaultExternal, "sps.xml")
PARSER.Parse(In, "Parser")
In.Close
' TEST TEST TEST TEST TEST TEST TEST TEST
File.WriteList(File.DirDefaultExternal, "result.txt", TxtList)
End Sub
Sub Parser_StartElement (Uri As String, Name As String, Attributes As Attributes)
End Sub
Sub Parser_EndElement (Uri As String, Name As String, Text As StringBuilder)
'*** Hole die Anzahl der Werte
If PARSER.Parents.IndexOf("body") > -1 Then
If Name = "item_list_size" Then
TxtList.add(Text.ToString)
End If
End If
' If PARSER.Parents.IndexOf("item_list") > -1 Then
' If Name = "b" Then
' TxtList.add(Text.ToString)
' End If
' End If
' *** Abschnitt item_list
' *** wenn das übergeordnete Element item_list ist
If PARSER.Parents.IndexOf("item_list") > -1 Then
' *** wenn das übergeordnete Element n ist
If PARSER.Parents.IndexOf("n") > -1 Then
' *** wenn das aktuelle Element b ist
If Name = "b" Then
TxtList.add(Text.ToString)
End If
End If
' *** wenn das übergeordnete Element v ist
If PARSER.Parents.IndexOf("v") > -1 Then
' *** wenn das aktuelle Element i ist
If Name = "i" Then
TxtList.add(Text.ToString)
End If
End If
End If
End Sub