Skip to content

Commit

Permalink
n2o rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
sannyschulz committed Sep 6, 2021
1 parent 168ee79 commit 7875d32
Showing 1 changed file with 172 additions and 5 deletions.
177 changes: 172 additions & 5 deletions src/renderservice/hermes_render_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@ import (
func main() {
StartRPCHandler()
Kalender = hermes.KalenderConverter(hermes.DateDEshort, ".")
http.HandleFunc("/", httpserver)
http.ListenAndServe(":8081", nil)
fmt.Println("Open a browser and connet to: http://localhost:8081 ")
fmt.Println("For N2O connet to: http://localhost:8081/n2o ")
http.HandleFunc("/", c1debughttpserver)
http.HandleFunc("/n2o", n2odebughttpserver)
http.ListenAndServe("localhost:8081", nil)
}

// RPCHandler for receiving and storing data from a run
Expand All @@ -45,7 +48,7 @@ var Kalender hermes.KalenderConverterFunc
// StartRPCHandler start RPC handler in another go routine
func StartRPCHandler() {

l, err := net.Listen("tcp", ":8082")
l, err := net.Listen("tcp", "localhost:8082")
if err != nil {
log.Fatalf("Error while starting rpc server: %+v", err)
}
Expand Down Expand Up @@ -92,8 +95,8 @@ func (rh *RPCHandler) DumpNitroVar(payload hermes.TransferEnvNitro, reply *strin
return nil
}

// httpserver for web interface, to render the stuff that has been recieved
func httpserver(w http.ResponseWriter, _ *http.Request) {
// c1debughttpserver for web interface, to render the stuff that has been recieved
func c1debughttpserver(w http.ResponseWriter, _ *http.Request) {

page := components.NewPage()
keys := extractSortedKeys()
Expand All @@ -119,6 +122,35 @@ func httpserver(w http.ResponseWriter, _ *http.Request) {

}

func n2odebughttpserver(w http.ResponseWriter, _ *http.Request) {

page := components.NewPage()
keys := extractSortedKeys()
dates := keysAsDate(Kalender, keys)
errKeys := generateErrorItems(keys)

//NH4N
//N2Odencum
//NH4Sum
//NH4UMS
//N2onitsum
page.AddCharts(
lineMultiNH4N(keys, errKeys, dates),
lineMultiN2Odencum(keys, errKeys, dates),
lineMultiNH4UMS(keys, errKeys, dates),
lineMultiDNH4UMS(keys, errKeys, dates),
lineMultiN2onitsum(keys, errKeys, dates),
)

page.Render(w)
f, err := os.Create("n2o_last_run.html")
if err != nil {
panic(err)
}
page.Render(io.MultiWriter(f))

}

// generateC1Items generate Nmin (C1) items
func generateC1Items(keys []int, index int) []opts.LineData {
globalHandler.mux.Lock()
Expand Down Expand Up @@ -394,3 +426,138 @@ func keysAsDate(dateConverter func(int) string, keys []int) []string {
}
return asDate
}

func lineMultiNH4N(keys, errKeys []int, dates []string) *charts.Line {

line := makeMultiLine("NH4N")

line.SetXAxis(dates).
AddSeries("NH4Sum", generateNH4SumItems(keys), errorMarker(errKeys, 23)).
AddSeries("NH4N", generateNH4NItems(keys))
return line
}

func generateNH4NItems(keys []int) []opts.LineData {
globalHandler.mux.Lock()
items := make([]opts.LineData, 0, len(keys))

for i, key := range keys {
dmp := globalHandler.receivedDumps[key]
if dmp.Global.NDG.Index > 0 &&
dmp.Zeit == dmp.Global.ZTDG[dmp.Global.NDG.Index-1]+1 &&
dmp.Step == 1 {

//g.NH4Sum = g.NH4Sum + g.NH4N[g.NDG.Index]
val := dmp.Global.NH4N[dmp.Global.NDG.Index-1]
items = append(items, opts.LineData{Value: val, Symbol: "diamond", XAxisIndex: i})
}
}
globalHandler.mux.Unlock()
return items
}

func generateNH4SumItems(keys []int) []opts.LineData {
globalHandler.mux.Lock()
items := make([]opts.LineData, 0, len(keys))

for _, key := range keys {
val := globalHandler.receivedDumps[key].Global.NH4Sum
items = append(items, opts.LineData{Value: val})
}
globalHandler.mux.Unlock()
return items
}

func lineMultiN2Odencum(keys, errKeys []int, dates []string) *charts.Line {

line := makeMultiLine("N2Odencum")

line.SetXAxis(dates).
AddSeries("N2Odencum", generateN2OdencumItems(keys), errorMarker(errKeys, 23))
return line
}

func generateN2OdencumItems(keys []int) []opts.LineData {
globalHandler.mux.Lock()
items := make([]opts.LineData, 0, len(keys))

for _, key := range keys {
val := globalHandler.receivedDumps[key].Global.N2Odencum
items = append(items, opts.LineData{Value: val})
}
globalHandler.mux.Unlock()
return items
}

func lineMultiDNH4UMS(keys, errKeys []int, dates []string) *charts.Line {

line := makeMultiLine("DNH4UMS")

globalHandler.mux.Lock()
num := 0
for key := range globalHandler.receivedDumps {
g := globalHandler.receivedDumps[key].Global
num = g.IZM / g.DZ.Index
break
}
globalHandler.mux.Unlock()
line.SetXAxis(dates)
for i := 0; i < num; i++ {
line.AddSeries("DNH4UMS 1", generateDNH4UMSItems(keys, 0))
line.AddSeries("DNH4UMS 2", generateDNH4UMSItems(keys, 1))
line.AddSeries("DNH4UMS 3", generateDNH4UMSItems(keys, 2))
}

return line
}
func lineMultiNH4UMS(keys, errKeys []int, dates []string) *charts.Line {

line := makeMultiLine("NH4UMS")

line.SetXAxis(dates)
line.AddSeries("NH4UMS 1", generateNH4UMSItems(keys, 0))
return line
}
func generateNH4UMSItems(keys []int, index int) []opts.LineData {
globalHandler.mux.Lock()
items := make([]opts.LineData, 0, len(keys))

for _, key := range keys {
val := globalHandler.receivedDumps[key].Global.NH4UMS
items = append(items, opts.LineData{Value: val})
}
globalHandler.mux.Unlock()
return items
}

func generateDNH4UMSItems(keys []int, index int) []opts.LineData {
globalHandler.mux.Lock()
items := make([]opts.LineData, 0, len(keys))

for _, key := range keys {
val := globalHandler.receivedNitroDumps[key].Nitro.DNH4UMS[index]
items = append(items, opts.LineData{Value: val})
}
globalHandler.mux.Unlock()
return items
}

func lineMultiN2onitsum(keys, errKeys []int, dates []string) *charts.Line {

line := makeMultiLine("N2onitsum")

line.SetXAxis(dates).
AddSeries("N2onitsum", generateN2onitsumItems(keys), errorMarker(errKeys, 23))
return line
}
func generateN2onitsumItems(keys []int) []opts.LineData {
globalHandler.mux.Lock()
items := make([]opts.LineData, 0, len(keys))

for _, key := range keys {
val := globalHandler.receivedDumps[key].Global.N2onitsum
items = append(items, opts.LineData{Value: val})
}
globalHandler.mux.Unlock()
return items
}

0 comments on commit 7875d32

Please sign in to comment.