Skip to content

Commit

Permalink
Merge pull request #40 from lnls-sirius/PR-bit-manipulation-features
Browse files Browse the repository at this point in the history
Bit manipulation features.
  • Loading branch information
fernandohds564 authored Aug 13, 2018
2 parents 2a52b76 + 21c66ee commit f291f49
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 48 deletions.
24 changes: 12 additions & 12 deletions as-ap-opticscorr/as_ap_opticscorr/chrom/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,8 +298,8 @@ def write(self, reason, value):
else:
val = 1

self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=2)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=2, bit_val=val)

self.driver.setParam('Status-Mon', self._status)
self.driver.setParam('SyncCorr-Sts', self._sync_corr)
Expand Down Expand Up @@ -404,8 +404,8 @@ def _connection_callback_sfam_sl_rb(self, pvname, conn, **kws):

# Change the first bit of correction status
val = (1 if any(s == 0 for s in self._sfam_check_connection) else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=0)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=0, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand Down Expand Up @@ -439,8 +439,8 @@ def _callback_sfam_pwrstate_sts(self, pvname, value, **kws):
# Change the second bit of correction status
val = (1 if any(s == 0 for s in self._sfam_check_pwrstate_sts)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=1)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=1, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -457,8 +457,8 @@ def _callback_sfam_opmode_sts(self, pvname, value, **kws):
opmode = self._sync_corr
val = (1 if any(s != opmode for s in self._sfam_check_opmode_sts)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=2)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=2, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -475,8 +475,8 @@ def _callback_sfam_ctrlmode_mon(self, pvname, value, **kws):
# Change the fourth bit of correction status
val = (1 if any(s == 1 for s in self._sfam_check_ctrlmode_mon)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=3)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=3, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -497,8 +497,8 @@ def _callback_timing_state(self, pvname, value, **kws):
# Change the fifth bit of correction status
val = (1 if any(index == 0 for index in self._timing_check_config)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=4)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=4, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand Down
24 changes: 12 additions & 12 deletions as-ap-opticscorr/as_ap_opticscorr/tune/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -292,8 +292,8 @@ def write(self, reason, value):
else:
val = 1

self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=2)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=2, bit_val=val)

self.driver.setParam('Status-Mon', self._status)
self.driver.setParam('SyncCorr-Sts', self._sync_corr)
Expand Down Expand Up @@ -448,8 +448,8 @@ def _connection_callback_qfam_kl_rb(self, pvname, conn, **kws):

# Change the first bit of correction status
val = (1 if any(q == 0 for q in self._qfam_check_connection) else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=0)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=0, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -476,8 +476,8 @@ def _callback_qfam_pwrstate_sts(self, pvname, value, **kws):

# Change the second bit of correction status
val = (1 if any(q == 0 for q in self._qfam_check_pwrstate_sts) else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=1)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=1, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -494,8 +494,8 @@ def _callback_qfam_opmode_sts(self, pvname, value, **kws):
opmode = self._sync_corr
val = (1 if any(s != opmode for s in self._qfam_check_opmode_sts)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=2)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=2, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -512,8 +512,8 @@ def _callback_qfam_ctrlmode_mon(self, pvname, value, **kws):
# Change the fourth bit of correction status
val = (1 if any(q == 1 for q in self._qfam_check_ctrlmode_mon)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=3)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=3, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -534,8 +534,8 @@ def _callback_timing_state(self, pvname, value, **kws):
# Change the fifth bit of correction status
val = (1 if any(index == 0 for index in self._timing_check_config)
else 0)
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=5, value=val, bit=4)
self._status = _siriuspy.util.update_bit(
v=self._status, bit_pos=4, bit_val=val)
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand Down
40 changes: 16 additions & 24 deletions as-ap-posang/as_ap_posang/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -370,12 +370,10 @@ def _connection_callback_corr_kick_pvs(self, pvname, conn, **kws):
self._corr_check_connection[corr_index] = (1 if conn else 0)

# Change the first bit of correction status
if any(q == 0 for q in self._corr_check_connection):
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=1, bit=0)
else:
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=0, bit=0)
self._status = _siriuspy.util.update_bit(
v=self._status,
bit_pos=0,
bit_val=any(q == 0 for q in self._corr_check_connection))
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -389,12 +387,10 @@ def _callback_corr_pwrstate_sts(self, pvname, value, **kws):
self._corr_check_pwrstate_sts[corr_index] = value

# Change the second bit of correction status
if any(q == 0 for q in self._corr_check_pwrstate_sts):
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=1, bit=1)
else:
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=0, bit=1)
self._status = _siriuspy.util.update_bit(
v=self._status,
bit_pos=1,
bit_val=any(q == 0 for q in self._corr_check_pwrstate_sts))
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -408,12 +404,10 @@ def _callback_corr_opmode_sts(self, pvname, value, **kws):
self._corr_check_opmode_sts[corr_index] = value

# Change the third bit of correction status
if any(s != 0 for s in self._corr_check_opmode_sts):
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=1, bit=2)
else:
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=0, bit=2)
self._status = _siriuspy.util.update_bit(
v=self._status,
bit_pos=2,
bit_val=any(s != 0 for s in self._corr_check_opmode_sts))
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand All @@ -428,12 +422,10 @@ def _callback_corr_ctrlmode_mon(self, pvname, value, **kws):
self._corr_check_ctrlmode_mon[corr_index] = value

# Change the fourth bit of correction status
if any(q == 1 for q in self._corr_check_ctrlmode_mon):
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=1, bit=3)
else:
self._status = _siriuspy.util.update_integer_bit(
integer=self._status, number_of_bits=4, value=0, bit=3)
self._status = _siriuspy.util.update_bit(
v=self._status,
bit_pos=3,
bit_val=any(q == 1 for q in self._corr_check_ctrlmode_mon))
self.driver.setParam('Status-Mon', self._status)
self.driver.updatePVs()

Expand Down

0 comments on commit f291f49

Please sign in to comment.