From b0c7c8fcd0c35e79c00b3eca39486156a380e43a Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 22 Aug 2023 14:45:28 +0200 Subject: [PATCH] ioc: fill in display.precision --- ioc/iocsource.cpp | 1 + test/testqgroup.cpp | 4 ++++ test/testqsingle.cpp | 9 ++++++++- test/testqsingle.db | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ioc/iocsource.cpp b/ioc/iocsource.cpp index 8e1c931d4..5bb53b5cd 100644 --- a/ioc/iocsource.cpp +++ b/ioc/iocsource.cpp @@ -327,6 +327,7 @@ void getProperties(dbChannel* pChannel, db_field_log *pfl, Value& node) if(options & DBR_GR_DOUBLE) { dlL = meta.lower_disp_limit; node["display.limitHigh"] = meta.upper_disp_limit; + node["display.precision"] = meta.precision.dp; } if(options & DBR_CTRL_DOUBLE) { node["control.limitLow"] = meta.lower_ctrl_limit; diff --git a/test/testqgroup.cpp b/test/testqgroup.cpp index 4e750d388..88ba984ea 100644 --- a/test/testqgroup.cpp +++ b/test/testqgroup.cpp @@ -557,6 +557,7 @@ void testIQ() "I.display.limitHigh double = 0\n" "I.display.description string = \"\"\n" "I.display.units string = \"\"\n" + "I.display.precision int32_t = 0\n" "I.display.form.index int32_t = 6\n" "I.display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", ...]\n" "I.control.limitLow double = 0\n" @@ -571,6 +572,7 @@ void testIQ() "Q.display.limitHigh double = 0\n" "Q.display.description string = \"\"\n" "Q.display.units string = \"\"\n" + "Q.display.precision int32_t = 0\n" "Q.display.form.index int32_t = 6\n" "Q.display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", ...]\n" "Q.control.limitLow double = 0\n" @@ -595,6 +597,7 @@ void testIQ() "I.display.limitHigh double = 0\n" "I.display.description string = \"\"\n" "I.display.units string = \"\"\n" + "I.display.precision int32_t = 0\n" "I.display.form.index int32_t = 6\n" "I.display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", ...]\n" "I.control.limitLow double = 0\n" @@ -609,6 +612,7 @@ void testIQ() "Q.display.limitHigh double = 0\n" "Q.display.description string = \"\"\n" "Q.display.units string = \"\"\n" + "Q.display.precision int32_t = 0\n" "Q.display.form.index int32_t = 6\n" "Q.display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", ...]\n" "Q.control.limitLow double = 0\n" diff --git a/test/testqsingle.cpp b/test/testqsingle.cpp index d6e6aa2b0..b692eb758 100644 --- a/test/testqsingle.cpp +++ b/test/testqsingle.cpp @@ -96,7 +96,7 @@ void testGetScalar() " double limitHigh = 100\n" " string description = \"Analog input\"\n" " string units = \"arb\"\n" - " int32_t precision = 0\n" + " int32_t precision = 1\n" " struct \"enum_t\" {\n" " int32_t index = 6\n" " string[] choices = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" @@ -131,6 +131,7 @@ void testGetScalar() "display.limitHigh double = 100\n" "display.description string = \"Analog input\"\n" "display.units string = \"arb\"\n" + "display.precision int32_t = 1\n" "display.form.index int32_t = 6\n" "display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" "control.limitLow double = 0\n" @@ -288,6 +289,7 @@ void testGetScalar() "display.limitHigh int32_t = 0\n" "display.description string = \"\"\n" "display.units string = \"\"\n" + "display.precision int32_t = 0\n" "display.form.index int32_t = 0\n" "display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" "control.limitLow int32_t = 0\n" @@ -402,6 +404,7 @@ void testGetArray() "display.limitHigh int32_t = 0\n" "display.description string = \"\"\n" "display.units string = \"\"\n" + "display.precision int32_t = 0\n" "display.form.index int32_t = 0\n" "display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" "control.limitLow int32_t = 0\n" @@ -533,6 +536,7 @@ void testGetPut64() "display.limitHigh uint64_t = 0\n" "display.description string = \"\"\n" "display.units string = \"\"\n" + "display.precision int32_t = 0\n" "display.form.index int32_t = 0\n" "display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" "control.limitLow uint64_t = 0\n" @@ -701,6 +705,7 @@ void testMonitorAI(TestClient& ctxt) "display.limitHigh double = 100\n" "display.description string = \"testing\"\n" "display.units string = \"arb\"\n" + "display.precision int32_t = 1\n" "display.form.index int32_t = 6\n" "display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" "control.limitLow double = 0\n" @@ -749,6 +754,7 @@ void testMonitorAI(TestClient& ctxt) "display.limitHigh double = 100\n" "display.description string = \"testing\"\n" "display.units string = \"arb\"\n" + "display.precision int32_t = 1\n" "control.limitLow double = 0\n" "control.limitHigh double = 100\n" "valueAlarm.lowAlarmLimit double = 0\n" @@ -828,6 +834,7 @@ void testMonitorAIFilt(TestClient& ctxt) "display.limitHigh double = 100\n" "display.description string = \"testing\"\n" "display.units string = \"arb\"\n" + "display.precision int32_t = 1\n" "display.form.index int32_t = 6\n" "display.form.choices string[] = {7}[\"Default\", \"String\", \"Binary\", \"Decimal\", \"Hex\", \"Exponential\", \"Engineering\"]\n" "control.limitLow double = 0\n" diff --git a/test/testqsingle.db b/test/testqsingle.db index ba715b1fa..fda703c56 100644 --- a/test/testqsingle.db +++ b/test/testqsingle.db @@ -1,6 +1,7 @@ record(ai, "test:ai") { field(DESC, "Analog input") field(EGU , "arb") + field(PREC, "1") field(HHSV, "INVALID") field(HSV, "MAJOR") field(HIHI, "100")