MCPcopy Index your code
hub / github.com/rawpython/remi / __init__

Method __init__

editor/widgets/toolbox_EPICS.py:292–356  ·  view source on GitHub ↗
(self, epics_pv_name='', min_value=0, max_value=100, *args, **kwargs)

Source from the content-addressed store, hash-verified

290 text_actual_value = None # the gui.SvgText value indicator
291
292 def __init__(self, epics_pv_name='', min_value=0, max_value=100, *args, **kwargs):
293 w = kwargs.get("style", {}).get("width", kwargs.get("width", 100))
294 h = kwargs.get("style", {}).get("height", kwargs.get("height", 100))
295 if 'width' in kwargs.keys():
296 del kwargs["width"]
297 if 'height' in kwargs.keys():
298 del kwargs["height"]
299 default_style = {'position':'absolute','left':'10px','top':'10px'}
300 default_style.update(kwargs.get('style',{}))
301 kwargs['style'] = default_style
302 super(EPICSValueGaugeWidget, self).__init__(width=w, height=h, *args, **kwargs)
303 self.epics_pv_name = epics_pv_name
304
305 #the indicator
306 self.indicator = gui.SvgPolygon(_maxlen=4)
307 self.indicator.set_stroke(width=0.001, color='red')
308 self.indicator.set_fill('red')
309
310 indicator_pin_radius = 0.05
311 self.indicator_pin = gui.SvgCircle(0,0.5,indicator_pin_radius)
312 self.indicator_pin.set_fill('black')
313
314 #the value signs
315 scale = max_value-min_value
316 radius_min = 0.4
317 radius_max = 0.5
318 for i in range(0,10):
319 angle = math.pi/9*i
320 #sign = gui.SvgLine(math.cos(angle)*radius_min, radius_max-math.sin(angle)*radius_min, math.cos(angle)*radius_max, radius_max-math.sin(angle)*radius_max)
321 sign = gui.SvgLine(math.cos(angle)*(radius_min - 0.01 + 0.1*(i+1)/10), radius_max-math.sin(angle)*(radius_min - 0.01 + 0.1*(i+1)/10), math.cos(angle)*radius_max, radius_max-math.sin(angle)*radius_max)
322 sign.set_stroke(0.01, 'black')
323 self.append(sign)
324
325 #subindicators value signs
326 scale = max_value-min_value
327 radius_min = 0.4
328 radius_max = 0.5
329 for i in range(0,100):
330 angle = math.pi/99*i
331 #sign = gui.SvgLine(math.cos(angle)*radius_min, radius_max-math.sin(angle)*radius_min, math.cos(angle)*radius_max, radius_max-math.sin(angle)*radius_max)
332 sign = gui.SvgLine(math.cos(angle)*(radius_min - 0.01 + 0.1*(i+10)/100), radius_max-math.sin(angle)*(radius_min - 0.01 + 0.1*(i+10)/100), math.cos(angle)*radius_max, radius_max-math.sin(angle)*radius_max)
333 sign.set_stroke(0.002, 'black')
334 self.append(sign)
335
336 font_size = 0.1
337 self.text_min_value = gui.SvgText(-radius_max, 0.5 + font_size + 0.01, str(min_value))
338 self.text_min_value.style['font-size'] = gui.to_pix(font_size)
339 self.text_min_value.style['text-anchor'] = "start"
340
341 self.text_max_value = gui.SvgText(radius_max, 0.5 + font_size + 0.01, str(max_value))
342 self.text_max_value.style['font-size'] = gui.to_pix(font_size)
343 self.text_max_value.style['text-anchor'] = "end"
344
345 self.text_actual_value = gui.SvgText(0, 0.5 + indicator_pin_radius + font_size + 0.01, str(max_value))
346 self.text_actual_value.style['font-size'] = gui.to_pix(font_size)
347 self.text_actual_value.style['text-anchor'] = "middle"
348 self.text_actual_value.style['font-weight'] = 'bold'
349

Callers

nothing calls this directly

Calls 6

set_viewboxMethod · 0.80
updateMethod · 0.45
__init__Method · 0.45
set_strokeMethod · 0.45
set_fillMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected