node-2
command: set readInterval=30000
command: program dp
program: dim thisTable
program: dim thisRowLabel
program: dim thisColumnLabel
program: dim prevTable
program: dim prevRowLabel
program: dim prevColumnLabel
program: thisPage=ex("service", "getThisPage")
program: thisPageR=getResultPart(thisPage)
program: ex("service","println "+thisPageR)
program: parseCsv(thisPageR, thisTable, thisRowLabel, thisColumnLabel)
program: lineNumber=getMaxIndex(thisRowLabel)
program: minVal=10000
program: selectedNode=0
program: selectedPath=""
program: preNodes=0
program: for i=0 to lineNumber-1
program: if thisTable(i,thisColumnLabel("kind")) = "preNode" then
program: {
program: preNodes=preNodes+1
program: prevPageUrl=thisTable(i,thisColumnLabel("url"))
program: prevPage=ex("connector", "getpage "+prevPageUrl)
program: if prevPage = "ERROR" then
program: {
program: prevPageUrl=thisTable(i,thisColumnLabel("url2"))
program: prevPage=ex("connector", "getpage "+prevPageUrl)
program: }
program: if prevPage <> "ERROR" then
program: {
program: prevPageR=getResultPart(prevPage)
program: parseCsv(prevPageR, prevTable, prevRowLabel, prevColumnLabel)
program: ix=getindex(prevTable, prevRowLabel, prevColumnLabel("kind"),"=","nodeInfo")
program: prevVal=prevTable(ix,prevColumnLabel("val"))
program: arcVal=thisTable(i,thisColumnLabel("arcVal"))
program: xval=prevVal+arcVal
program: thisTable(i,thisColumnLabel("val"))=xval
program: prevPath=prevTable(ix,prevColumnLabel("path"))
program: thisTable(i,thisColumnLabel("path"))=prevPath
program: if xval<minVal then
program: {
program: minVal=xval
program: selectedNode=thisTable(i,thisColumnLabel("No"))
program: selectedPath=prevPath
program: }
program: }
program: }
program: next i
program: ex("service","clear sendBuffer")
program: thisNodeIndex=getindex(thisTable,thisRowLabel, thisColumnLabel("kind"),"=","nodeInfo")
program: thisTable(thisNodeIndex,thisColumnLabel("selectedNode"))=selectedNode
program: if preNodes=0 then
program: {
program: thisTable(thisNodeIndex,thisColumnLabel("path"))=thisTable(thisNodeIndex, thisColumnLabel("nodeName"))
program: thisTable(thisNodeIndex,thisColumnLabel("val"))=0
program: }
program: else
program: {
program: thisTable(thisNodeIndex,thisColumnLabel("path"))=selectedPath+" - "+thisTable(thisNodeIndex, thisColumnLabel("nodeName"))
program: thisTable(thisNodeIndex,thisColumnLabel("val"))=minVal
program: }
program: dataline="kind=\"nodeInfo\""
program: dataline=dataline+",nodeName=\""+thisTable(thisNodeIndex,thisColumnLabel("nodeName"))+"\""
program: dataline=dataline+",startNode=\""+thisTable(thisNodeIndex,thisColumnLabel("startNode"))+"\""
program: dataline=dataline+",selectedNode="+thisTable(thisNodeIndex,thisColumnLabel("selectedNode"))
program: dataline=dataline+",val="+thisTable(thisNodeIndex,thisColumnLabel("val"))
program: dataline=dataline+",path=\""+thisTable(thisNodeIndex,thisColumnLabel("path"))+"\""
program: ex("service","putSendBuffer "+dataline)
program: for i=0 to lineNumber-1
program: if thisTable(i,thisColumnLabel("kind")) = "preNode" then
program: {
program: dataline="kind=\"preNode\""
program: dataline=dataline+",No="+thisTable(i,thisColumnLabel("No"))
program: dataline=dataline+",url=\""+thisTable(i,thisColumnLabel("url"))+"\""
program: dataline=dataline+",url2=\""+thisTable(i,thisColumnLabel("url2"))+"\""
program: dataline=dataline+",arcVal="+thisTable(i,thisColumnLabel("arcVal"))
program: dataline=dataline+",val="+thisTable(i,thisColumnLabel("val"))
program: dataline=dataline+",path=\""+thisTable(i,thisColumnLabel("path"))+"\""
program: ex("service","putSendBuffer "+dataline)
program: }
program: next i
program: ex("service","sendResults.");
command: end dp
command: run dp