From 7e1735c7ab6ee1e3442c30b80624852241ae7a69 Mon Sep 17 00:00:00 2001
From: Alessio Igor Bogani <alessio.bogani@elettra.eu>
Date: Tue, 11 Jan 2022 22:43:29 +0100
Subject: [PATCH] Avoid to change device's mode during init()

---
 src/IPCMini.cpp | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/IPCMini.cpp b/src/IPCMini.cpp
index c3bc9f4..e706a5c 100644
--- a/src/IPCMini.cpp
+++ b/src/IPCMini.cpp
@@ -249,6 +249,15 @@ void IPCMini::init_device()
 		attr_Model_read[0] = new char[MAX_DEVSTRING_LENGTH];
 		attr_SerialNumber_read[0] = new char[MAX_DEVSTRING_LENGTH];
 
+		/* Che if the mBar is pressure unit used */
+		int pressure_unit;
+		read_window(600, pressure_unit);
+		if (pressure_unit != 1) {
+			Tango::Except::throw_exception( "",
+					"mBar is not the pressure unit used",
+					"Agilent4uhv::init_device()");
+		}
+
 		/* Identify model:
 		* X3602-64010 con 1 canale
 		*/
@@ -266,16 +275,8 @@ void IPCMini::init_device()
 		read_window(323, serial);
 		strncpy(attr_SerialNumber_read[0], serial.c_str(), MAX_DEVSTRING_LENGTH);
 
-		// Set the mode
-//		int mode = 0; /* Serial */
-//		write_window(8, mode);
-
-		/* Setup mBar as pressure unit used */
-		int pressure_unit = 1 /* mBar */;
-		write_window(600, pressure_unit);
-
 		/* Read all the device data */
-		static const int nw[] = { 8, 11 /*, 108 */ , 206 
+		static const int nw[] = { 8, 11 /*, 108, 205 */, 206
 			/*, 319, 323, 503, 504, 600 */, 601, 602, 603, 610,
 			612, 613, 614, 615, 800, 801, 804, 810, 811 /*, 890 */ };
 		vector<int> normal_windows(nw, nw + sizeof(nw) / sizeof(nw[0]));
-- 
GitLab