3 Commits

Author SHA1 Message Date
Adrian Zuercher
2dc3baca3c add right to subscription 2025-07-15 20:17:21 +02:00
Adrian Zuercher
274a80d605 fix wrong float and bool conversion 2025-07-15 19:20:11 +02:00
Adrian Zuercher
3b38be8de5 change string to 3 letters STR 2025-07-15 19:19:45 +02:00
3 changed files with 25 additions and 17 deletions

View File

@@ -8,6 +8,7 @@ type Subscription struct {
Path string `json:"path,omitempty"` // dbm path Path string `json:"path,omitempty"` // dbm path
Depth uint `json:"depth,omitempty"` // depth of subscriptions from found path or uuid Depth uint `json:"depth,omitempty"` // depth of subscriptions from found path or uuid
Value any `json:"value,omitempty"` // current value Value any `json:"value,omitempty"` // current value
Rights Rights `json:"rights,omitempty"` // read /write rights
HasChild bool `json:"hasChild,omitempty"` // inidicates path has child/ren HasChild bool `json:"hasChild,omitempty"` // inidicates path has child/ren
Drivers *Drivers `json:"drivers,omitempty"` // assigned drivers Drivers *Drivers `json:"drivers,omitempty"` // assigned drivers
Driver string `json:"driver,omitempty"` // driver type to assign this subscription Driver string `json:"driver,omitempty"` // driver type to assign this subscription

View File

@@ -20,7 +20,7 @@ const (
LOU Type = "LOU" // UINT64 LOU Type = "LOU" // UINT64
F32 Type = "F32" // FLOAT32 F32 Type = "F32" // FLOAT32
F64 Type = "F64" // FLOAT64 F64 Type = "F64" // FLOAT64
STR Type = "STRING" // STRING STR Type = "STR" // STRING
) )
// dbm datatype model // dbm datatype model

View File

@@ -36,8 +36,8 @@ func Float32From(v any) float32 {
case uint64: case uint64:
return float32(val) return float32(val)
case string: case string:
if i, err := strconv.Atoi(val); err == nil { if f64, err := strconv.ParseFloat(val, 32); err == nil {
return float32(i) return float32(f64)
} }
return 0 return 0
default: default:
@@ -76,8 +76,8 @@ func Float64From(v any) float64 {
case uint64: case uint64:
return float64(val) return float64(val)
case string: case string:
if i, err := strconv.Atoi(val); err == nil { if f64, err := strconv.ParseFloat(val, 32); err == nil {
return float64(i) return f64
} }
return 0 return 0
default: default:
@@ -433,7 +433,14 @@ func BoolFrom(v any) bool {
case float64: case float64:
return val >= 1 return val >= 1
case string: case string:
return strings.ToLower(val) == "false" || v == "0" if strings.ToLower(val) == "true" {
return true
} else if strings.ToLower(val) == "false" {
return false
} else if i, err := strconv.Atoi(val); err == nil {
return i > 0
}
return false
default: default:
return false return false
} }