Skip to content

Commit fff77b1

Browse files
committed
Fixes Cancel button behaviour [WARNING: Firmware Issue]
Finishes implementing Cancel button, BUT not fully Firmware supported Prevents user acquiring data before initialising system Tidies up HTML.
1 parent 92aec44 commit fff77b1

File tree

4 files changed

+37
-30
lines changed

4 files changed

+37
-30
lines changed

control/src/hexitec/HexitecFem.py

+8-9
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ def __init__(self, parent, config):
140140
self.sync_list = [0, 0, 0, 0, 0, 0]
141141

142142
self.hv_bias_enabled = False
143+
self.system_initialised = False
143144

144145
self.read_firmware_version = True
145146
self.firmware_date = "N/A"
@@ -164,7 +165,7 @@ def __init__(self, parent, config):
164165

165166
self.environs_in_progress = False
166167

167-
# Did Hardware finish sending data
168+
# Did Hardware finish sending data?
168169
self.all_data_sent = 0
169170

170171
param_tree_dict = {
@@ -193,6 +194,7 @@ def __init__(self, parent, config):
193194
"environs_in_progress": (lambda: self.environs_in_progress, None),
194195
"hardware_connected": (lambda: self.hardware_connected, None),
195196
"hardware_busy": (lambda: self.hardware_busy, None),
197+
"system_initialised": (lambda: self.system_initialised, None),
196198
"firmware_date": (lambda: self.firmware_date, None),
197199
"firmware_time": (lambda: self.firmware_time, None),
198200
"firmware_version": (lambda: self.firmware_version, None),
@@ -510,11 +512,6 @@ def read_sensors(self, msg=None):
510512
fw_version = board_status.get_fpga_fw_version()
511513
build_date = board_status.get_fpga_build_date()
512514
build_time = board_status.get_fpga_build_time()
513-
# build_date_and_time = build_date + " " + build_time
514-
# print(f"version: {fw_version}")
515-
# print(f"date: {build_date}")
516-
# print(f"time: {build_time}")
517-
# print(f"together: {build_date_and_time}")
518515
self.firmware_date = build_date
519516
self.firmware_time = build_time
520517
self.firmware_version = fw_version
@@ -753,6 +750,7 @@ def cam_disconnect(self):
753750
logging.debug("Modules Disabled")
754751
self.disconnect()
755752
logging.debug("Camera is Disconnected")
753+
self.system_initialised = False
756754
except socket_error as e:
757755
self.flag_error("Unable to disconnect camera", str(e))
758756
raise HexitecFemError(e)
@@ -807,7 +805,7 @@ def check_acquire_finished(self):
807805
# 0 during data transmission, 65536 when completed
808806
self.all_data_sent = (status & 65536)
809807
if self.all_data_sent == 0:
810-
# print(" *** Awaiting data.. ***")
808+
# print(f" *** Awaiting data.. (status = {status})***")
811809
IOLoop.instance().call_later(0.1, self.check_acquire_finished)
812810
return
813811
else:
@@ -828,15 +826,16 @@ def acquire_data_completed(self):
828826

829827
if self.stop_acquisition:
830828
logging.info("Cancelling Acquisition..")
831-
# TODO Verify working okay: ?
832829
for vsr in self.vsr_list:
833830
vsr.disable_vsr()
831+
self.data_path_reset()
834832
logging.info("Acquisition cancelled")
835833
# Reset variables
836834
self.stop_acquisition = False
837835
self.hardware_busy = False
838836
self.acquisition_completed = True
839837
self._set_status_message("Acquire cancelled")
838+
self.system_initialised = False
840839
return
841840

842841
# Workout exact duration of fem data transmission:
@@ -1156,6 +1155,7 @@ def initialise_system(self):
11561155

11571156
self._set_status_message("Initialisation completed. VSRs configured.")
11581157
self.parent.software_state = "Idle"
1158+
self.system_initialised = True
11591159
except HexitecFemError as e:
11601160
self.flag_error("Failed to initialise camera", str(e))
11611161
except Exception as e:
@@ -1706,7 +1706,6 @@ def set_nof_frames(self, number_frames):
17061706
self.set_bit(HEX_REGISTERS.HEXITEC_2X6_HEADER_CTRL, "ACQ_NOF_FRAMES_EN")
17071707
self.x10g_rdma.udp_rdma_write(address=HEX_REGISTERS.HEXITEC_2X6_ACQ_NOF_FRAMES_LOWER['addr'],
17081708
data=number_frames, burst_len=1)
1709-
logging.debug("Number of frames set to 0x{0:X}".format(number_frames))
17101709

17111710
def data_en(self, enable=True):
17121711
if enable:

control/src/hexitec/adapter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def polling(self): # pragma: no cover
304304
"""Poll FEM for status.
305305
306306
Check if acquisition completed (if initiated), for error(s) and
307-
whether DAQ/FEM watchdogs timed out.
307+
whether DAQ watchdogs timed out.
308308
"""
309309
# Poll FEM acquisition & health status
310310
self.poll_fem()

control/static/index.html

+14-18
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ <h2>Column 3</h2>
6868
<input type="button" onclick="hvOnButtonClicked()" class="btn btn-primary" id='hvOnButton' data-size="small" value="HV On">
6969
<input type="button" onclick="hvOffButtonClicked()" class="btn btn-primary" id='hvOffButton' data-size="small" value="HV Off">
7070
<!-- -->
71-
<input type="button" onclick="environsButtonClicked()" class="btn btn-primary" id='environsButton' data-size="small" value="Environs" disabled="true">
71+
<input type="button" onclick="environsButtonClicked()" accesskey="r" class="btn btn-primary" id='environsButton' data-size="small" value="Environs" disabled="true">
7272
<!-- -->
7373
<input type="button" onclick="initialiseButtonClicked()" accesskey="n" class="btn btn-primary" id='initialiseButton' data-size="small" value="Initialise">
7474
<input type="button" onclick="offsetsButtonClicked()" accesskey="l" class="btn btn-primary" id='offsetsButton' data-size="small" value="Collect Offsets">
7575
<input type="button" onclick="acquireButtonClicked()" accesskey="q" class="btn btn-primary" id='acquireButton' data-size="small" value="Acquire">
76-
<input type="button" onclick="cancelButtonClicked()" accesskey="x" class="btn btn-primary" id='cancelButton' data-size="small" value="Cancel">
76+
<input type="button" onclick="cancelButtonClicked()" accesskey="a" class="btn btn-primary" id='cancelButton' data-size="small" value="Cancel">
7777
<input type="button" onclick="resetButtonClicked()" accesskey="x" class="btn btn-primary" id='resetButton' data-size="small" value="Reset">
7878
<!-- -->
7979
<input type="button" onclick="disconnectButtonClicked()" accesskey="i" class="btn btn-primary" id='disconnectButton' data-size="small" value="Disconnect">
@@ -86,21 +86,21 @@ <h2>Column 3</h2>
8686
</div> <!-- "main-container" -->
8787
</div> <!-- col-sm-12 -->
8888

89-
<ul class="nav nav-tabs" role="tablist"> <!-- accesskey="c" -->
90-
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="s" data-bs-toggle="tab" type="button" role="tab" aria-controls="visualisation" data-bs-target="#visualisation">&nbsp;&nbsp;Visualisation</a></li> -->
91-
<li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="False" accesskey="s" data-bs-toggle="tab" type="button" role="tab" aria-controls="visualisation" data-bs-target="#visualisation">&nbsp;&nbsp;Visualisation</a></li>
89+
<ul class="nav nav-tabs" role="tablist">
90+
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="s" data-bs-toggle="tab" type="button" role="tab" aria-controls="visualisation" data-bs-target="#visualisation">&nbsp;&nbsp;Visualisation</a></li> -->
91+
<li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="False" accesskey="s" data-bs-toggle="tab" type="button" role="tab" aria-controls="visualisation" data-bs-target="#visualisation">&nbsp;&nbsp;Visualisation</a></li>
9292

93-
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="t" data-bs-toggle="tab" type="button" role="tab" aria-controls="processing" data-bs-target="#processing">Processing</a></li> -->
94-
<li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="t" data-bs-toggle="tab" type="button" role="tab" aria-controls="processing" data-bs-target="#processing">Processing</a></li>
93+
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="t" data-bs-toggle="tab" type="button" role="tab" aria-controls="processing" data-bs-target="#processing">Processing</a></li> -->
94+
<li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="t" data-bs-toggle="tab" type="button" role="tab" aria-controls="processing" data-bs-target="#processing">Processing</a></li>
9595

96-
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="u" data-bs-toggle="tab" type="button" role="tab" aria-controls="health" data-bs-target="#health">Health</a></li> -->
97-
<li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="u" data-bs-toggle="tab" type="button" role="tab" aria-controls="health" data-bs-target="#health">Health</a></li>
96+
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="u" data-bs-toggle="tab" type="button" role="tab" aria-controls="health" data-bs-target="#health">Health</a></li> -->
97+
<li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="u" data-bs-toggle="tab" type="button" role="tab" aria-controls="health" data-bs-target="#health">Health</a></li>
9898

99-
<li class="nav-item" role="presentation"><a class="nav-link " aria-selected="False" accesskey="o" data-bs-toggle="tab" type="button" role="tab" aria-controls="debug" data-bs-target="#debug">Debug</a></li>
100-
<!-- <li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="o" data-bs-toggle="tab" type="button" role="tab" aria-controls="debug" data-bs-target="#debug">Debug</a></li> -->
99+
<li class="nav-item" role="presentation"><a class="nav-link " aria-selected="False" accesskey="o" data-bs-toggle="tab" type="button" role="tab" aria-controls="debug" data-bs-target="#debug">Debug</a></li>
100+
<!-- <li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="o" data-bs-toggle="tab" type="button" role="tab" aria-controls="debug" data-bs-target="#debug">Debug</a></li> -->
101101

102-
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" data-bs-toggle="tab" type="button" role="tab" aria-controls="logging" data-bs-target="#logging">Logging</a></li> -->
103-
<li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" data-bs-toggle="tab" type="button" role="tab" aria-controls="logging" data-bs-target="#logging">Logging</a></li>
102+
<!-- <li class="nav-item" role="presentation"><a class="nav-link active" aria-selected="True" accesskey="g" data-bs-toggle="tab" type="button" role="tab" aria-controls="logging" data-bs-target="#logging">Logging</a></li> -->
103+
<li class="nav-item" role="presentation"><a class="nav-link" aria-selected="False" accesskey="g" data-bs-toggle="tab" type="button" role="tab" aria-controls="logging" data-bs-target="#logging">Logging</a></li>
104104
</ul>
105105

106106
<div class="tab-content"> <!-- tab-content -->
@@ -360,9 +360,8 @@ <h2>Column 3</h2>
360360
<td>
361361
<div class="row sidebar-row vertical-align">
362362
<div class="col-xs-7">
363-
<!-- <input type="checkbox" accesskey="v" name="liveview_enable" data-size="small"> -->
364363
<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
365-
<input type="radio" class="btn-check" name="live_view_radio" id="live_view_radio1" autocomplete="off" onclick="changeLiveViewEnable()">
364+
<input type="radio" class="btn-check" name="live_view_radio" accesskey="v" id="live_view_radio1" autocomplete="off" onclick="changeLiveViewEnable()">
366365
<label class="btn btn-outline-primary" for="live_view_radio1">On</label>
367366
<input type="radio" class="btn-check" name="live_view_radio" id="live_view_radio2" autocomplete="off" onclick="changeLiveViewEnable()" checked>
368367
<label class="btn btn-outline-primary" for="live_view_radio2">Off</label>
@@ -381,7 +380,6 @@ <h2>Column 3</h2>
381380
<td>
382381
<div class="row sidebar-row vertical-align">
383382
<div class="col-xs-7">
384-
<!-- <input type="checkbox" name="clip_enable" data-size="small":"> -->
385383
<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
386384
<input type="radio" class="btn-check" name="clip_enable_radio" id="clip_enable_radio1" autocomplete="off" onclick="changeClipEnable()">
387385
<label class="btn btn-outline-primary" for="clip_enable_radio1">On</label>
@@ -642,7 +640,6 @@ <h2>Column 3</h2>
642640
<td>
643641
<div class="row sidebar-row vertical-align">
644642
<div class="col-xs-7">
645-
<!-- <input type="checkbox" accesskey="w" id='rawDataButton' name="raw_data_enable" data-size="small"> -->
646643
<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
647644
<input type="radio" class="btn-check" name="raw_data_radio" accesskey="w" id="raw_data_radio1" autocomplete="off" onclick="changeRawDataEnable()">
648645
<label class="btn btn-outline-primary" for="raw_data_radio1">On</label>
@@ -661,7 +658,6 @@ <h2>Column 3</h2>
661658
<td>
662659
<div class="row sidebar-row vertical-align">
663660
<div class="col-xs-7">
664-
<!-- <input type="checkbox" accesskey="p" id='processedDataButton' name="processed_data_enable" data-size="small"> -->
665661
<div class="btn-group" role="group" aria-label="Basic radio toggle button group">
666662
<input type="radio" class="btn-check" name="processed_data_radio" accesskey="p" id="processed_data_radio1" autocomplete="off" onclick="changeProcessedDataEnable()">
667663
<label class="btn btn-outline-primary" for="processed_data_radio1">On</label>

control/static/js/odin_server.js

+14-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ document.addEventListener("DOMContentLoaded", function () {
4141
document.querySelector('#offsetsButton').disabled = true;
4242
document.querySelector('#hvOnButton').disabled = true;
4343
document.querySelector('#hvOffButton').disabled = true;
44-
document.querySelector('#environsButton').disable = true;
44+
document.querySelector('#environsButton').disabled = true;
4545
// Start polling after page loaded (800 ms)
4646
setTimeout(function () {
4747
if (polling_thread_running === false) {
@@ -364,6 +364,7 @@ function poll_fem() {
364364
document.querySelector('#all_data_sent').innerHTML = fem["all_data_sent"];
365365
const hardware_connected = fem["hardware_connected"];
366366
const hardware_busy = fem["hardware_busy"];
367+
const system_initialised = fem["system_initialised"];
367368

368369
const daq_in_progress = result["detector"]["daq"]["status"]["in_progress"];
369370

@@ -392,7 +393,18 @@ function poll_fem() {
392393
toggle_ui_elements(true); // Disable UI elements
393394
}
394395
else {
395-
toggle_ui_elements(false); // Enable UI elements
396+
toggle_ui_elements(false); // Enable UI elements..
397+
// ..but keep Offsets, Acquire buttons disabled until system initialised
398+
if (system_initialised === false) {
399+
document.querySelector('#acquireButton').disabled = true;
400+
document.querySelector('#offsetsButton').disabled = true;
401+
}
402+
else
403+
{
404+
document.querySelector('#acquireButton').disabled = false;
405+
document.querySelector('#offsetsButton').disabled = false;
406+
}
407+
396408
// Disable Environs button if collecting environmental data
397409
if (fem["environs_in_progress"] === true)
398410
document.querySelector('#environsButton').disabled = true;

0 commit comments

Comments
 (0)