package envitem import ( "encoding/json" "testing" "time" ) func TestEnvItem_GetCurrentData(t *testing.T) { SetOptions(Options{GtServerIp: "47.96.12.136:8788"}) e := EnvItem{ ProjectId: 92, Item: "C.M.LT_CIP@out,C.M.RO1_DB@time_CS_display", } v, ht, err := e.getCurrentValue() t.Log(v, ht, err) } func TestMultiEnvItem_FillCurrentValue(t *testing.T) { SetOptions(Options{GtServerIp: "47.96.12.136:8788"}) m := make(MultiEnvItem, 2) m["C.M.LT_CIP@out"] = &EnvItem{ ProjectId: 92, Item: "C.M.LT_CIP@out", } m["C.M.RO1_DB@time_CS_display"] = &EnvItem{ ProjectId: 92, Item: "C.M.RO1_DB@time_CS_display", } err := m.FillCurrentValue() t.Log(err) for s, item := range m { t.Logf("item: %s value: %s htime: %s", s, item.Value, item.Htime) } } func TestMultiEnvItem_FillCurrentValue2(t *testing.T) { SetOptions(Options{GtServerIp: "47.96.12.136:8788"}) js := `{"tmp":{"project_id":92,"device_code":"UF-4001A","plc_device_id":"0","item":"C.M.UF1_DB@press_PV","default_val":0},"feed_flow":{"project_id":92,"device_code":"UF-4001A","plc_device_id":"0","item":"C.M.UF1_FT_JS@out","default_val":0},"feed_pressure":{"project_id":92,"device_code":"UF-4001A","plc_device_id":"0","item":"C.M.UF1_PT_JS@out","default_val":0},"product_pressure":{"project_id":92,"device_code":"UF-4001A","plc_device_id":"0","item":"C.M.UF1_PT_CS@out","default_val":0},"feed_wq_turbidity":{"project_id":92,"device_code":"AIT-94061","plc_device_id":"0","item":"C.M.UF_Tur_ZJS@out","default_val":0},"water_temperature":{"project_id":92,"device_code":"TIT-34061","plc_device_id":"0","item":"C.M.RO_TT_ZJS@out","default_val":0},"product_wq_ph":{"project_id":92,"device_code":"AIT-95065b","plc_device_id":"0","item":"C.M.UF_PH_ZCS@out","default_val":0},"step":{"project_id":92,"device_code":"HB","plc_device_id":"0","item":"C.M.UF1_DB@word_control","default_val":0}}` var multiEnvItems MultiEnvItem _ = json.Unmarshal([]byte(js), &multiEnvItems) t.Log(multiEnvItems) for { _ = multiEnvItems.FillCurrentValue() time.Sleep(2 * time.Second) //ms := multiEnvItems.FindString() t.Logf("%+v", multiEnvItems) t.Logf("step: %d", multiEnvItems.GetItemInt64Value("step")) //early := checkEarly(multiEnvItems.GetItemFloat64Value("Display_Time"), multiEnvItems.GetItemFloat64Value("Filter_Time_Set"), multiEnvItems.GetItemStringValue("Step")) //advanced := checkAdvanced(multiEnvItems.GetItemFloat64Value("Display_Time"), multiEnvItems.GetItemFloat64Value("Filter_Time_Set"), multiEnvItems.GetItemStringValue("Step")) // //t.Logf("early: %v, advanced: %v, step: %s filterNumber: %s Display_Time: %s Filter_Time_Set: %s", early, advanced, multiEnvItems.GetItemStringValue("Step"), multiEnvItems.GetItemStringValue("Filter_Number"), multiEnvItems.GetItemStringValue("Display_Time"), multiEnvItems.GetItemStringValue("Filter_Time_Set")) //t.Log(err) //for s, item := range multiEnvItems { // t.Logf("item: %s value: %s htime: %s", s, item.Value, item.Htime) //} } } func checkEarly(ft, fst float64, step string) bool { return step == "26" && ft >= 360 && ft <= 660 } func checkAdvanced(ft, fst float64, step string) bool { return step == "26" && ft+360 >= fst && ft+60 <= fst }