Commit a5351be4a28c03be677a9da8ebac17d8f7f855b9

Authored by bmarechal
1 parent c0331afbef
Exists in master

add double_pid_vco and iq_pid_vco

Showing 5 changed files with 2132 additions and 4 deletions Side-by-side Diff

redpitaya/client/dds_gnuradio.grc
... ... @@ -168,7 +168,7 @@
168 168 </param>
169 169 <param>
170 170 <key>value</key>
171   - <value>"192.168.0.203"</value>
  171 + <value>"192.168.0.201"</value>
172 172 </param>
173 173 </block>
174 174 <block>
redpitaya/client/dds_gnuradio.py
... ... @@ -3,7 +3,7 @@
3 3 ##################################################
4 4 # GNU Radio Python Flow Graph
5 5 # Title: Dds Gnuradio
6   -# Generated: Fri Apr 21 12:30:52 2017
  6 +# Generated: Fri Apr 21 17:59:20 2017
7 7 ##################################################
8 8  
9 9 if __name__ == '__main__':
... ... @@ -58,7 +58,7 @@
58 58 self.port = port = 1001
59 59 self.offset_out1 = offset_out1 = 0
60 60 self.f_dds = f_dds = 0
61   - self.addr = addr = "192.168.0.203"
  61 + self.addr = addr = "192.168.0.201"
62 62 self.a_dds = a_dds = 0
63 63  
64 64 ##################################################
redpitaya/client/double_pid_vco.py
... ... @@ -3,7 +3,7 @@
3 3 ##################################################
4 4 # GNU Radio Python Flow Graph
5 5 # Title: Double Pid Vco
6   -# Generated: Fri Apr 21 14:54:08 2017
  6 +# Generated: Fri Apr 21 15:21:06 2017
7 7 ##################################################
8 8  
9 9 if __name__ == '__main__':
redpitaya/client/iq_pid_vco.grc
Diff suppressed. Click to show
  1 +<?xml version='1.0' encoding='utf-8'?>
  2 +<?grc format='1' created='3.7.10'?>
  3 +<flow_graph>
  4 + <timestamp>Thu Feb 2 22:54:58 2017</timestamp>
  5 + <block>
  6 + <key>options</key>
  7 + <param>
  8 + <key>author</key>
  9 + <value></value>
  10 + </param>
  11 + <param>
  12 + <key>window_size</key>
  13 + <value>2000, 2000</value>
  14 + </param>
  15 + <param>
  16 + <key>category</key>
  17 + <value>[GRC Hier Blocks]</value>
  18 + </param>
  19 + <param>
  20 + <key>comment</key>
  21 + <value></value>
  22 + </param>
  23 + <param>
  24 + <key>description</key>
  25 + <value></value>
  26 + </param>
  27 + <param>
  28 + <key>_enabled</key>
  29 + <value>True</value>
  30 + </param>
  31 + <param>
  32 + <key>_coordinate</key>
  33 + <value>(8, 8)</value>
  34 + </param>
  35 + <param>
  36 + <key>_rotation</key>
  37 + <value>0</value>
  38 + </param>
  39 + <param>
  40 + <key>generate_options</key>
  41 + <value>qt_gui</value>
  42 + </param>
  43 + <param>
  44 + <key>hier_block_src_path</key>
  45 + <value>.:</value>
  46 + </param>
  47 + <param>
  48 + <key>id</key>
  49 + <value>iq_pid_vco</value>
  50 + </param>
  51 + <param>
  52 + <key>max_nouts</key>
  53 + <value>0</value>
  54 + </param>
  55 + <param>
  56 + <key>qt_qss_theme</key>
  57 + <value></value>
  58 + </param>
  59 + <param>
  60 + <key>realtime_scheduling</key>
  61 + <value></value>
  62 + </param>
  63 + <param>
  64 + <key>run_command</key>
  65 + <value>{python} -u {filename}</value>
  66 + </param>
  67 + <param>
  68 + <key>run_options</key>
  69 + <value>prompt</value>
  70 + </param>
  71 + <param>
  72 + <key>run</key>
  73 + <value>True</value>
  74 + </param>
  75 + <param>
  76 + <key>thread_safe_setters</key>
  77 + <value></value>
  78 + </param>
  79 + <param>
  80 + <key>title</key>
  81 + <value></value>
  82 + </param>
  83 + </block>
  84 + <block>
  85 + <key>variable_qtgui_range</key>
  86 + <param>
  87 + <key>comment</key>
  88 + <value></value>
  89 + </param>
  90 + <param>
  91 + <key>value</key>
  92 + <value>0</value>
  93 + </param>
  94 + <param>
  95 + <key>_enabled</key>
  96 + <value>True</value>
  97 + </param>
  98 + <param>
  99 + <key>_coordinate</key>
  100 + <value>(216, 8)</value>
  101 + </param>
  102 + <param>
  103 + <key>gui_hint</key>
  104 + <value>1, 1</value>
  105 + </param>
  106 + <param>
  107 + <key>_rotation</key>
  108 + <value>0</value>
  109 + </param>
  110 + <param>
  111 + <key>id</key>
  112 + <value>adc1_offset</value>
  113 + </param>
  114 + <param>
  115 + <key>label</key>
  116 + <value>adc1_offset</value>
  117 + </param>
  118 + <param>
  119 + <key>min_len</key>
  120 + <value>200</value>
  121 + </param>
  122 + <param>
  123 + <key>orient</key>
  124 + <value>Qt.Horizontal</value>
  125 + </param>
  126 + <param>
  127 + <key>start</key>
  128 + <value>-2**13</value>
  129 + </param>
  130 + <param>
  131 + <key>step</key>
  132 + <value>1</value>
  133 + </param>
  134 + <param>
  135 + <key>stop</key>
  136 + <value>2**13-1</value>
  137 + </param>
  138 + <param>
  139 + <key>rangeType</key>
  140 + <value>int</value>
  141 + </param>
  142 + <param>
  143 + <key>widget</key>
  144 + <value>counter_slider</value>
  145 + </param>
  146 + </block>
  147 + <block>
  148 + <key>variable</key>
  149 + <param>
  150 + <key>comment</key>
  151 + <value></value>
  152 + </param>
  153 + <param>
  154 + <key>_enabled</key>
  155 + <value>True</value>
  156 + </param>
  157 + <param>
  158 + <key>_coordinate</key>
  159 + <value>(8, 104)</value>
  160 + </param>
  161 + <param>
  162 + <key>_rotation</key>
  163 + <value>0</value>
  164 + </param>
  165 + <param>
  166 + <key>id</key>
  167 + <value>addr</value>
  168 + </param>
  169 + <param>
  170 + <key>value</key>
  171 + <value>"192.168.0.201"</value>
  172 + </param>
  173 + </block>
  174 + <block>
  175 + <key>variable_qtgui_range</key>
  176 + <param>
  177 + <key>comment</key>
  178 + <value></value>
  179 + </param>
  180 + <param>
  181 + <key>value</key>
  182 + <value>0</value>
  183 + </param>
  184 + <param>
  185 + <key>_enabled</key>
  186 + <value>True</value>
  187 + </param>
  188 + <param>
  189 + <key>_coordinate</key>
  190 + <value>(400, 8)</value>
  191 + </param>
  192 + <param>
  193 + <key>gui_hint</key>
  194 + <value>1, 2</value>
  195 + </param>
  196 + <param>
  197 + <key>_rotation</key>
  198 + <value>0</value>
  199 + </param>
  200 + <param>
  201 + <key>id</key>
  202 + <value>dac2_offset</value>
  203 + </param>
  204 + <param>
  205 + <key>label</key>
  206 + <value>dac2_offset</value>
  207 + </param>
  208 + <param>
  209 + <key>min_len</key>
  210 + <value>200</value>
  211 + </param>
  212 + <param>
  213 + <key>orient</key>
  214 + <value>Qt.Horizontal</value>
  215 + </param>
  216 + <param>
  217 + <key>start</key>
  218 + <value>-2**13</value>
  219 + </param>
  220 + <param>
  221 + <key>step</key>
  222 + <value>1</value>
  223 + </param>
  224 + <param>
  225 + <key>stop</key>
  226 + <value>2**13-1</value>
  227 + </param>
  228 + <param>
  229 + <key>rangeType</key>
  230 + <value>int</value>
  231 + </param>
  232 + <param>
  233 + <key>widget</key>
  234 + <value>counter_slider</value>
  235 + </param>
  236 + </block>
  237 + <block>
  238 + <key>variable_qtgui_range</key>
  239 + <param>
  240 + <key>comment</key>
  241 + <value></value>
  242 + </param>
  243 + <param>
  244 + <key>value</key>
  245 + <value>0</value>
  246 + </param>
  247 + <param>
  248 + <key>_enabled</key>
  249 + <value>True</value>
  250 + </param>
  251 + <param>
  252 + <key>_coordinate</key>
  253 + <value>(704, 8)</value>
  254 + </param>
  255 + <param>
  256 + <key>gui_hint</key>
  257 + <value>1, 3</value>
  258 + </param>
  259 + <param>
  260 + <key>_rotation</key>
  261 + <value>0</value>
  262 + </param>
  263 + <param>
  264 + <key>id</key>
  265 + <value>dds_ampl</value>
  266 + </param>
  267 + <param>
  268 + <key>label</key>
  269 + <value>dds_ampl</value>
  270 + </param>
  271 + <param>
  272 + <key>min_len</key>
  273 + <value>200</value>
  274 + </param>
  275 + <param>
  276 + <key>orient</key>
  277 + <value>Qt.Horizontal</value>
  278 + </param>
  279 + <param>
  280 + <key>start</key>
  281 + <value>0</value>
  282 + </param>
  283 + <param>
  284 + <key>step</key>
  285 + <value>1</value>
  286 + </param>
  287 + <param>
  288 + <key>stop</key>
  289 + <value>2**13-1</value>
  290 + </param>
  291 + <param>
  292 + <key>rangeType</key>
  293 + <value>int</value>
  294 + </param>
  295 + <param>
  296 + <key>widget</key>
  297 + <value>counter_slider</value>
  298 + </param>
  299 + </block>
  300 + <block>
  301 + <key>variable_qtgui_range</key>
  302 + <param>
  303 + <key>comment</key>
  304 + <value></value>
  305 + </param>
  306 + <param>
  307 + <key>value</key>
  308 + <value>0</value>
  309 + </param>
  310 + <param>
  311 + <key>_enabled</key>
  312 + <value>True</value>
  313 + </param>
  314 + <param>
  315 + <key>_coordinate</key>
  316 + <value>(696, 668)</value>
  317 + </param>
  318 + <param>
  319 + <key>gui_hint</key>
  320 + <value>4, 3</value>
  321 + </param>
  322 + <param>
  323 + <key>_rotation</key>
  324 + <value>0</value>
  325 + </param>
  326 + <param>
  327 + <key>id</key>
  328 + <value>dds_f0</value>
  329 + </param>
  330 + <param>
  331 + <key>label</key>
  332 + <value>dds_f0</value>
  333 + </param>
  334 + <param>
  335 + <key>min_len</key>
  336 + <value>200</value>
  337 + </param>
  338 + <param>
  339 + <key>orient</key>
  340 + <value>Qt.Horizontal</value>
  341 + </param>
  342 + <param>
  343 + <key>start</key>
  344 + <value>0</value>
  345 + </param>
  346 + <param>
  347 + <key>step</key>
  348 + <value>1</value>
  349 + </param>
  350 + <param>
  351 + <key>stop</key>
  352 + <value>60000000</value>
  353 + </param>
  354 + <param>
  355 + <key>rangeType</key>
  356 + <value>int</value>
  357 + </param>
  358 + <param>
  359 + <key>widget</key>
  360 + <value>counter_slider</value>
  361 + </param>
  362 + </block>
  363 + <block>
  364 + <key>variable_qtgui_range</key>
  365 + <param>
  366 + <key>comment</key>
  367 + <value></value>
  368 + </param>
  369 + <param>
  370 + <key>value</key>
  371 + <value>0</value>
  372 + </param>
  373 + <param>
  374 + <key>_enabled</key>
  375 + <value>True</value>
  376 + </param>
  377 + <param>
  378 + <key>_coordinate</key>
  379 + <value>(696, 236)</value>
  380 + </param>
  381 + <param>
  382 + <key>gui_hint</key>
  383 + <value>2, 3</value>
  384 + </param>
  385 + <param>
  386 + <key>_rotation</key>
  387 + <value>0</value>
  388 + </param>
  389 + <param>
  390 + <key>id</key>
  391 + <value>dds_nco</value>
  392 + </param>
  393 + <param>
  394 + <key>label</key>
  395 + <value>dds_nco</value>
  396 + </param>
  397 + <param>
  398 + <key>min_len</key>
  399 + <value>200</value>
  400 + </param>
  401 + <param>
  402 + <key>orient</key>
  403 + <value>Qt.Horizontal</value>
  404 + </param>
  405 + <param>
  406 + <key>start</key>
  407 + <value>0</value>
  408 + </param>
  409 + <param>
  410 + <key>step</key>
  411 + <value>1</value>
  412 + </param>
  413 + <param>
  414 + <key>stop</key>
  415 + <value>60000000</value>
  416 + </param>
  417 + <param>
  418 + <key>rangeType</key>
  419 + <value>int</value>
  420 + </param>
  421 + <param>
  422 + <key>widget</key>
  423 + <value>counter_slider</value>
  424 + </param>
  425 + </block>
  426 + <block>
  427 + <key>variable_qtgui_range</key>
  428 + <param>
  429 + <key>comment</key>
  430 + <value></value>
  431 + </param>
  432 + <param>
  433 + <key>value</key>
  434 + <value>0</value>
  435 + </param>
  436 + <param>
  437 + <key>_enabled</key>
  438 + <value>True</value>
  439 + </param>
  440 + <param>
  441 + <key>_coordinate</key>
  442 + <value>(704, 460)</value>
  443 + </param>
  444 + <param>
  445 + <key>gui_hint</key>
  446 + <value>3, 3</value>
  447 + </param>
  448 + <param>
  449 + <key>_rotation</key>
  450 + <value>0</value>
  451 + </param>
  452 + <param>
  453 + <key>id</key>
  454 + <value>dds_offset</value>
  455 + </param>
  456 + <param>
  457 + <key>label</key>
  458 + <value>dds_offset</value>
  459 + </param>
  460 + <param>
  461 + <key>min_len</key>
  462 + <value>200</value>
  463 + </param>
  464 + <param>
  465 + <key>orient</key>
  466 + <value>Qt.Horizontal</value>
  467 + </param>
  468 + <param>
  469 + <key>start</key>
  470 + <value>-2**13</value>
  471 + </param>
  472 + <param>
  473 + <key>step</key>
  474 + <value>1</value>
  475 + </param>
  476 + <param>
  477 + <key>stop</key>
  478 + <value>2**13-1</value>
  479 + </param>
  480 + <param>
  481 + <key>rangeType</key>
  482 + <value>int</value>
  483 + </param>
  484 + <param>
  485 + <key>widget</key>
  486 + <value>counter_slider</value>
  487 + </param>
  488 + </block>
  489 + <block>
  490 + <key>variable_qtgui_check_box</key>
  491 + <param>
  492 + <key>comment</key>
  493 + <value></value>
  494 + </param>
  495 + <param>
  496 + <key>value</key>
  497 + <value>1</value>
  498 + </param>
  499 + <param>
  500 + <key>_enabled</key>
  501 + <value>True</value>
  502 + </param>
  503 + <param>
  504 + <key>false</key>
  505 + <value>0</value>
  506 + </param>
  507 + <param>
  508 + <key>_coordinate</key>
  509 + <value>(960, 12)</value>
  510 + </param>
  511 + <param>
  512 + <key>gui_hint</key>
  513 + <value>1, 4</value>
  514 + </param>
  515 + <param>
  516 + <key>_rotation</key>
  517 + <value>0</value>
  518 + </param>
  519 + <param>
  520 + <key>id</key>
  521 + <value>dds_pinc_sw</value>
  522 + </param>
  523 + <param>
  524 + <key>label</key>
  525 + <value>dds_pinc_sw</value>
  526 + </param>
  527 + <param>
  528 + <key>true</key>
  529 + <value>1</value>
  530 + </param>
  531 + <param>
  532 + <key>type</key>
  533 + <value>int</value>
  534 + </param>
  535 + </block>
  536 + <block>
  537 + <key>variable_qtgui_check_box</key>
  538 + <param>
  539 + <key>comment</key>
  540 + <value></value>
  541 + </param>
  542 + <param>
  543 + <key>value</key>
  544 + <value>1</value>
  545 + </param>
  546 + <param>
  547 + <key>_enabled</key>
  548 + <value>True</value>
  549 + </param>
  550 + <param>
  551 + <key>false</key>
  552 + <value>0</value>
  553 + </param>
  554 + <param>
  555 + <key>_coordinate</key>
  556 + <value>(952, 204)</value>
  557 + </param>
  558 + <param>
  559 + <key>gui_hint</key>
  560 + <value>2, 4</value>
  561 + </param>
  562 + <param>
  563 + <key>_rotation</key>
  564 + <value>0</value>
  565 + </param>
  566 + <param>
  567 + <key>id</key>
  568 + <value>dds_poff_sw</value>
  569 + </param>
  570 + <param>
  571 + <key>label</key>
  572 + <value>dds_poff_sw</value>
  573 + </param>
  574 + <param>
  575 + <key>true</key>
  576 + <value>1</value>
  577 + </param>
  578 + <param>
  579 + <key>type</key>
  580 + <value>int</value>
  581 + </param>
  582 + </block>
  583 + <block>
  584 + <key>variable_qtgui_range</key>
  585 + <param>
  586 + <key>comment</key>
  587 + <value></value>
  588 + </param>
  589 + <param>
  590 + <key>value</key>
  591 + <value>0</value>
  592 + </param>
  593 + <param>
  594 + <key>_enabled</key>
  595 + <value>True</value>
  596 + </param>
  597 + <param>
  598 + <key>_coordinate</key>
  599 + <value>(672, 908)</value>
  600 + </param>
  601 + <param>
  602 + <key>gui_hint</key>
  603 + <value>5, 3</value>
  604 + </param>
  605 + <param>
  606 + <key>_rotation</key>
  607 + <value>0</value>
  608 + </param>
  609 + <param>
  610 + <key>id</key>
  611 + <value>dds_range</value>
  612 + </param>
  613 + <param>
  614 + <key>label</key>
  615 + <value>dds_range</value>
  616 + </param>
  617 + <param>
  618 + <key>min_len</key>
  619 + <value>200</value>
  620 + </param>
  621 + <param>
  622 + <key>orient</key>
  623 + <value>Qt.Horizontal</value>
  624 + </param>
  625 + <param>
  626 + <key>start</key>
  627 + <value>-2**13</value>
  628 + </param>
  629 + <param>
  630 + <key>step</key>
  631 + <value>1</value>
  632 + </param>
  633 + <param>
  634 + <key>stop</key>
  635 + <value>2**13-1</value>
  636 + </param>
  637 + <param>
  638 + <key>rangeType</key>
  639 + <value>int</value>
  640 + </param>
  641 + <param>
  642 + <key>widget</key>
  643 + <value>counter_slider</value>
  644 + </param>
  645 + </block>
  646 + <block>
  647 + <key>variable_qtgui_range</key>
  648 + <param>
  649 + <key>comment</key>
  650 + <value></value>
  651 + </param>
  652 + <param>
  653 + <key>value</key>
  654 + <value>0</value>
  655 + </param>
  656 + <param>
  657 + <key>_enabled</key>
  658 + <value>True</value>
  659 + </param>
  660 + <param>
  661 + <key>_coordinate</key>
  662 + <value>(952, 476)</value>
  663 + </param>
  664 + <param>
  665 + <key>gui_hint</key>
  666 + <value>3, 4</value>
  667 + </param>
  668 + <param>
  669 + <key>_rotation</key>
  670 + <value>0</value>
  671 + </param>
  672 + <param>
  673 + <key>id</key>
  674 + <value>demod_nco</value>
  675 + </param>
  676 + <param>
  677 + <key>label</key>
  678 + <value>demod_nco</value>
  679 + </param>
  680 + <param>
  681 + <key>min_len</key>
  682 + <value>200</value>
  683 + </param>
  684 + <param>
  685 + <key>orient</key>
  686 + <value>Qt.Horizontal</value>
  687 + </param>
  688 + <param>
  689 + <key>start</key>
  690 + <value>0</value>
  691 + </param>
  692 + <param>
  693 + <key>step</key>
  694 + <value>1</value>
  695 + </param>
  696 + <param>
  697 + <key>stop</key>
  698 + <value>60000000</value>
  699 + </param>
  700 + <param>
  701 + <key>rangeType</key>
  702 + <value>int</value>
  703 + </param>
  704 + <param>
  705 + <key>widget</key>
  706 + <value>counter_slider</value>
  707 + </param>
  708 + </block>
  709 + <block>
  710 + <key>variable_qtgui_range</key>
  711 + <param>
  712 + <key>comment</key>
  713 + <value></value>
  714 + </param>
  715 + <param>
  716 + <key>value</key>
  717 + <value>0</value>
  718 + </param>
  719 + <param>
  720 + <key>_enabled</key>
  721 + <value>True</value>
  722 + </param>
  723 + <param>
  724 + <key>_coordinate</key>
  725 + <value>(192, 668)</value>
  726 + </param>
  727 + <param>
  728 + <key>gui_hint</key>
  729 + <value>4, 1</value>
  730 + </param>
  731 + <param>
  732 + <key>_rotation</key>
  733 + <value>0</value>
  734 + </param>
  735 + <param>
  736 + <key>id</key>
  737 + <value>pid_kd</value>
  738 + </param>
  739 + <param>
  740 + <key>label</key>
  741 + <value>pid_kd</value>
  742 + </param>
  743 + <param>
  744 + <key>min_len</key>
  745 + <value>200</value>
  746 + </param>
  747 + <param>
  748 + <key>orient</key>
  749 + <value>Qt.Horizontal</value>
  750 + </param>
  751 + <param>
  752 + <key>start</key>
  753 + <value>0</value>
  754 + </param>
  755 + <param>
  756 + <key>step</key>
  757 + <value>1</value>
  758 + </param>
  759 + <param>
  760 + <key>stop</key>
  761 + <value>2**13-1</value>
  762 + </param>
  763 + <param>
  764 + <key>rangeType</key>
  765 + <value>int</value>
  766 + </param>
  767 + <param>
  768 + <key>widget</key>
  769 + <value>counter_slider</value>
  770 + </param>
  771 + </block>
  772 + <block>
  773 + <key>variable_qtgui_range</key>
  774 + <param>
  775 + <key>comment</key>
  776 + <value></value>
  777 + </param>
  778 + <param>
  779 + <key>value</key>
  780 + <value>0</value>
  781 + </param>
  782 + <param>
  783 + <key>_enabled</key>
  784 + <value>True</value>
  785 + </param>
  786 + <param>
  787 + <key>_coordinate</key>
  788 + <value>(192, 460)</value>
  789 + </param>
  790 + <param>
  791 + <key>gui_hint</key>
  792 + <value>3, 1</value>
  793 + </param>
  794 + <param>
  795 + <key>_rotation</key>
  796 + <value>0</value>
  797 + </param>
  798 + <param>
  799 + <key>id</key>
  800 + <value>pid_ki</value>
  801 + </param>
  802 + <param>
  803 + <key>label</key>
  804 + <value>pid_ki</value>
  805 + </param>
  806 + <param>
  807 + <key>min_len</key>
  808 + <value>200</value>
  809 + </param>
  810 + <param>
  811 + <key>orient</key>
  812 + <value>Qt.Horizontal</value>
  813 + </param>
  814 + <param>
  815 + <key>start</key>
  816 + <value>0</value>
  817 + </param>
  818 + <param>
  819 + <key>step</key>
  820 + <value>1</value>
  821 + </param>
  822 + <param>
  823 + <key>stop</key>
  824 + <value>2**13-1</value>
  825 + </param>
  826 + <param>
  827 + <key>rangeType</key>
  828 + <value>int</value>
  829 + </param>
  830 + <param>
  831 + <key>widget</key>
  832 + <value>counter_slider</value>
  833 + </param>
  834 + </block>
  835 + <block>
  836 + <key>variable_qtgui_range</key>
  837 + <param>
  838 + <key>comment</key>
  839 + <value></value>
  840 + </param>
  841 + <param>
  842 + <key>value</key>
  843 + <value>0</value>
  844 + </param>
  845 + <param>
  846 + <key>_enabled</key>
  847 + <value>True</value>
  848 + </param>
  849 + <param>
  850 + <key>_coordinate</key>
  851 + <value>(200, 236)</value>
  852 + </param>
  853 + <param>
  854 + <key>gui_hint</key>
  855 + <value>2, 1</value>
  856 + </param>
  857 + <param>
  858 + <key>_rotation</key>
  859 + <value>0</value>
  860 + </param>
  861 + <param>
  862 + <key>id</key>
  863 + <value>pid_kp</value>
  864 + </param>
  865 + <param>
  866 + <key>label</key>
  867 + <value>pid_kp</value>
  868 + </param>
  869 + <param>
  870 + <key>min_len</key>
  871 + <value>200</value>
  872 + </param>
  873 + <param>
  874 + <key>orient</key>
  875 + <value>Qt.Horizontal</value>
  876 + </param>
  877 + <param>
  878 + <key>start</key>
  879 + <value>0</value>
  880 + </param>
  881 + <param>
  882 + <key>step</key>
  883 + <value>1</value>
  884 + </param>
  885 + <param>
  886 + <key>stop</key>
  887 + <value>2**13-1</value>
  888 + </param>
  889 + <param>
  890 + <key>rangeType</key>
  891 + <value>int</value>
  892 + </param>
  893 + <param>
  894 + <key>widget</key>
  895 + <value>counter_slider</value>
  896 + </param>
  897 + </block>
  898 + <block>
  899 + <key>variable_qtgui_push_button</key>
  900 + <param>
  901 + <key>comment</key>
  902 + <value></value>
  903 + </param>
  904 + <param>
  905 + <key>value</key>
  906 + <value>0</value>
  907 + </param>
  908 + <param>
  909 + <key>_enabled</key>
  910 + <value>True</value>
  911 + </param>
  912 + <param>
  913 + <key>_coordinate</key>
  914 + <value>(392, 684)</value>
  915 + </param>
  916 + <param>
  917 + <key>gui_hint</key>
  918 + <value>4, 2</value>
  919 + </param>
  920 + <param>
  921 + <key>_rotation</key>
  922 + <value>0</value>
  923 + </param>
  924 + <param>
  925 + <key>id</key>
  926 + <value>pid_rst_int</value>
  927 + </param>
  928 + <param>
  929 + <key>label</key>
  930 + <value>pid_rst_int</value>
  931 + </param>
  932 + <param>
  933 + <key>pressed</key>
  934 + <value>1</value>
  935 + </param>
  936 + <param>
  937 + <key>released</key>
  938 + <value>0</value>
  939 + </param>
  940 + <param>
  941 + <key>type</key>
  942 + <value>int</value>
  943 + </param>
  944 + </block>
  945 + <block>
  946 + <key>variable_qtgui_range</key>
  947 + <param>
  948 + <key>comment</key>
  949 + <value></value>
  950 + </param>
  951 + <param>
  952 + <key>value</key>
  953 + <value>0</value>
  954 + </param>
  955 + <param>
  956 + <key>_enabled</key>
  957 + <value>True</value>
  958 + </param>
  959 + <param>
  960 + <key>_coordinate</key>
  961 + <value>(400, 236)</value>
  962 + </param>
  963 + <param>
  964 + <key>gui_hint</key>
  965 + <value>2, 2</value>
  966 + </param>
  967 + <param>
  968 + <key>_rotation</key>
  969 + <value>0</value>
  970 + </param>
  971 + <param>
  972 + <key>id</key>
  973 + <value>pid_setpoint</value>
  974 + </param>
  975 + <param>
  976 + <key>label</key>
  977 + <value>pid_setpoint</value>
  978 + </param>
  979 + <param>
  980 + <key>min_len</key>
  981 + <value>200</value>
  982 + </param>
  983 + <param>
  984 + <key>orient</key>
  985 + <value>Qt.Horizontal</value>
  986 + </param>
  987 + <param>
  988 + <key>start</key>
  989 + <value>-2**13</value>
  990 + </param>
  991 + <param>
  992 + <key>step</key>
  993 + <value>1</value>
  994 + </param>
  995 + <param>
  996 + <key>stop</key>
  997 + <value>2**13-1</value>
  998 + </param>
  999 + <param>
  1000 + <key>rangeType</key>
  1001 + <value>int</value>
  1002 + </param>
  1003 + <param>
  1004 + <key>widget</key>
  1005 + <value>counter_slider</value>
  1006 + </param>
  1007 + </block>
  1008 + <block>
  1009 + <key>variable_qtgui_check_box</key>
  1010 + <param>
  1011 + <key>comment</key>
  1012 + <value></value>
  1013 + </param>
  1014 + <param>
  1015 + <key>value</key>
  1016 + <value>0</value>
  1017 + </param>
  1018 + <param>
  1019 + <key>_enabled</key>
  1020 + <value>True</value>
  1021 + </param>
  1022 + <param>
  1023 + <key>false</key>
  1024 + <value>0</value>
  1025 + </param>
  1026 + <param>
  1027 + <key>_coordinate</key>
  1028 + <value>(400, 468)</value>
  1029 + </param>
  1030 + <param>
  1031 + <key>gui_hint</key>
  1032 + <value>3, 2</value>
  1033 + </param>
  1034 + <param>
  1035 + <key>_rotation</key>
  1036 + <value>0</value>
  1037 + </param>
  1038 + <param>
  1039 + <key>id</key>
  1040 + <value>pid_sign</value>
  1041 + </param>
  1042 + <param>
  1043 + <key>label</key>
  1044 + <value>pid_sign</value>
  1045 + </param>
  1046 + <param>
  1047 + <key>true</key>
  1048 + <value>1</value>
  1049 + </param>
  1050 + <param>
  1051 + <key>type</key>
  1052 + <value>int</value>
  1053 + </param>
  1054 + </block>
  1055 + <block>
  1056 + <key>variable</key>
  1057 + <param>
  1058 + <key>comment</key>
  1059 + <value></value>
  1060 + </param>
  1061 + <param>
  1062 + <key>_enabled</key>
  1063 + <value>True</value>
  1064 + </param>
  1065 + <param>
  1066 + <key>_coordinate</key>
  1067 + <value>(8, 176)</value>
  1068 + </param>
  1069 + <param>
  1070 + <key>_rotation</key>
  1071 + <value>0</value>
  1072 + </param>
  1073 + <param>
  1074 + <key>id</key>
  1075 + <value>port</value>
  1076 + </param>
  1077 + <param>
  1078 + <key>value</key>
  1079 + <value>1001</value>
  1080 + </param>
  1081 + </block>
  1082 + <block>
  1083 + <key>add_const_set_offset</key>
  1084 + <param>
  1085 + <key>addr</key>
  1086 + <value>addr</value>
  1087 + </param>
  1088 + <param>
  1089 + <key>alias</key>
  1090 + <value></value>
  1091 + </param>
  1092 + <param>
  1093 + <key>comment</key>
  1094 + <value></value>
  1095 + </param>
  1096 + <param>
  1097 + <key>const</key>
  1098 + <value>adc1_offset</value>
  1099 + </param>
  1100 + <param>
  1101 + <key>device</key>
  1102 + <value>/dev/adc1_offset</value>
  1103 + </param>
  1104 + <param>
  1105 + <key>_enabled</key>
  1106 + <value>True</value>
  1107 + </param>
  1108 + <param>
  1109 + <key>_coordinate</key>
  1110 + <value>(200, 144)</value>
  1111 + </param>
  1112 + <param>
  1113 + <key>_rotation</key>
  1114 + <value>0</value>
  1115 + </param>
  1116 + <param>
  1117 + <key>id</key>
  1118 + <value>add_const_set_offset_0_0_0</value>
  1119 + </param>
  1120 + <param>
  1121 + <key>port</key>
  1122 + <value>port</value>
  1123 + </param>
  1124 + </block>
  1125 + <block>
  1126 + <key>add_const_set_offset</key>
  1127 + <param>
  1128 + <key>addr</key>
  1129 + <value>addr</value>
  1130 + </param>
  1131 + <param>
  1132 + <key>alias</key>
  1133 + <value></value>
  1134 + </param>
  1135 + <param>
  1136 + <key>comment</key>
  1137 + <value></value>
  1138 + </param>
  1139 + <param>
  1140 + <key>const</key>
  1141 + <value>dac2_offset</value>
  1142 + </param>
  1143 + <param>
  1144 + <key>device</key>
  1145 + <value>/dev/dac2_offset</value>
  1146 + </param>
  1147 + <param>
  1148 + <key>_enabled</key>
  1149 + <value>True</value>
  1150 + </param>
  1151 + <param>
  1152 + <key>_coordinate</key>
  1153 + <value>(384, 144)</value>
  1154 + </param>
  1155 + <param>
  1156 + <key>_rotation</key>
  1157 + <value>0</value>
  1158 + </param>
  1159 + <param>
  1160 + <key>id</key>
  1161 + <value>add_const_set_offset_0_0_0_0</value>
  1162 + </param>
  1163 + <param>
  1164 + <key>port</key>
  1165 + <value>port</value>
  1166 + </param>
  1167 + </block>
  1168 + <block>
  1169 + <key>add_const_set_offset</key>
  1170 + <param>
  1171 + <key>addr</key>
  1172 + <value>addr</value>
  1173 + </param>
  1174 + <param>
  1175 + <key>alias</key>
  1176 + <value></value>
  1177 + </param>
  1178 + <param>
  1179 + <key>comment</key>
  1180 + <value></value>
  1181 + </param>
  1182 + <param>
  1183 + <key>const</key>
  1184 + <value>dds_ampl</value>
  1185 + </param>
  1186 + <param>
  1187 + <key>device</key>
  1188 + <value>/dev/dds_ampl</value>
  1189 + </param>
  1190 + <param>
  1191 + <key>_enabled</key>
  1192 + <value>True</value>
  1193 + </param>
  1194 + <param>
  1195 + <key>_coordinate</key>
  1196 + <value>(688, 144)</value>
  1197 + </param>
  1198 + <param>
  1199 + <key>_rotation</key>
  1200 + <value>0</value>
  1201 + </param>
  1202 + <param>
  1203 + <key>id</key>
  1204 + <value>add_const_set_offset_0_0_0_0_0</value>
  1205 + </param>
  1206 + <param>
  1207 + <key>port</key>
  1208 + <value>port</value>
  1209 + </param>
  1210 + </block>
  1211 + <block>
  1212 + <key>add_const_set_offset</key>
  1213 + <param>
  1214 + <key>addr</key>
  1215 + <value>addr</value>
  1216 + </param>
  1217 + <param>
  1218 + <key>alias</key>
  1219 + <value></value>
  1220 + </param>
  1221 + <param>
  1222 + <key>comment</key>
  1223 + <value></value>
  1224 + </param>
  1225 + <param>
  1226 + <key>const</key>
  1227 + <value>dds_offset</value>
  1228 + </param>
  1229 + <param>
  1230 + <key>device</key>
  1231 + <value>/dev/dds_offset</value>
  1232 + </param>
  1233 + <param>
  1234 + <key>_enabled</key>
  1235 + <value>True</value>
  1236 + </param>
  1237 + <param>
  1238 + <key>_coordinate</key>
  1239 + <value>(688, 596)</value>
  1240 + </param>
  1241 + <param>
  1242 + <key>_rotation</key>
  1243 + <value>0</value>
  1244 + </param>
  1245 + <param>
  1246 + <key>id</key>
  1247 + <value>add_const_set_offset_0_0_0_0_1</value>
  1248 + </param>
  1249 + <param>
  1250 + <key>port</key>
  1251 + <value>port</value>
  1252 + </param>
  1253 + </block>
  1254 + <block>
  1255 + <key>add_const_set_offset</key>
  1256 + <param>
  1257 + <key>addr</key>
  1258 + <value>addr</value>
  1259 + </param>
  1260 + <param>
  1261 + <key>alias</key>
  1262 + <value></value>
  1263 + </param>
  1264 + <param>
  1265 + <key>comment</key>
  1266 + <value></value>
  1267 + </param>
  1268 + <param>
  1269 + <key>const</key>
  1270 + <value>int(dds_f0/(125e6/2**32))</value>
  1271 + </param>
  1272 + <param>
  1273 + <key>device</key>
  1274 + <value>/dev/dds_f0</value>
  1275 + </param>
  1276 + <param>
  1277 + <key>_enabled</key>
  1278 + <value>True</value>
  1279 + </param>
  1280 + <param>
  1281 + <key>_coordinate</key>
  1282 + <value>(680, 804)</value>
  1283 + </param>
  1284 + <param>
  1285 + <key>_rotation</key>
  1286 + <value>0</value>
  1287 + </param>
  1288 + <param>
  1289 + <key>id</key>
  1290 + <value>add_const_set_offset_0_0_0_0_1_0</value>
  1291 + </param>
  1292 + <param>
  1293 + <key>port</key>
  1294 + <value>port</value>
  1295 + </param>
  1296 + </block>
  1297 + <block>
  1298 + <key>add_const_set_offset</key>
  1299 + <param>
  1300 + <key>addr</key>
  1301 + <value>addr</value>
  1302 + </param>
  1303 + <param>
  1304 + <key>alias</key>
  1305 + <value></value>
  1306 + </param>
  1307 + <param>
  1308 + <key>comment</key>
  1309 + <value></value>
  1310 + </param>
  1311 + <param>
  1312 + <key>const</key>
  1313 + <value>dds_range</value>
  1314 + </param>
  1315 + <param>
  1316 + <key>device</key>
  1317 + <value>/dev/dds_range</value>
  1318 + </param>
  1319 + <param>
  1320 + <key>_enabled</key>
  1321 + <value>True</value>
  1322 + </param>
  1323 + <param>
  1324 + <key>_coordinate</key>
  1325 + <value>(664, 1036)</value>
  1326 + </param>
  1327 + <param>
  1328 + <key>_rotation</key>
  1329 + <value>0</value>
  1330 + </param>
  1331 + <param>
  1332 + <key>id</key>
  1333 + <value>add_const_set_offset_0_0_0_0_1_0_0</value>
  1334 + </param>
  1335 + <param>
  1336 + <key>port</key>
  1337 + <value>port</value>
  1338 + </param>
  1339 + </block>
  1340 + <block>
  1341 + <key>add_const_set_offset</key>
  1342 + <param>
  1343 + <key>addr</key>
  1344 + <value>addr</value>
  1345 + </param>
  1346 + <param>
  1347 + <key>alias</key>
  1348 + <value></value>
  1349 + </param>
  1350 + <param>
  1351 + <key>comment</key>
  1352 + <value></value>
  1353 + </param>
  1354 + <param>
  1355 + <key>const</key>
  1356 + <value>pid_setpoint</value>
  1357 + </param>
  1358 + <param>
  1359 + <key>device</key>
  1360 + <value>/dev/pid_setpoint</value>
  1361 + </param>
  1362 + <param>
  1363 + <key>_enabled</key>
  1364 + <value>True</value>
  1365 + </param>
  1366 + <param>
  1367 + <key>_coordinate</key>
  1368 + <value>(384, 372)</value>
  1369 + </param>
  1370 + <param>
  1371 + <key>_rotation</key>
  1372 + <value>0</value>
  1373 + </param>
  1374 + <param>
  1375 + <key>id</key>
  1376 + <value>add_const_set_offset_0_0_0_1</value>
  1377 + </param>
  1378 + <param>
  1379 + <key>port</key>
  1380 + <value>port</value>
  1381 + </param>
  1382 + </block>
  1383 + <block>
  1384 + <key>add_const_set_offset</key>
  1385 + <param>
  1386 + <key>addr</key>
  1387 + <value>addr</value>
  1388 + </param>
  1389 + <param>
  1390 + <key>alias</key>
  1391 + <value></value>
  1392 + </param>
  1393 + <param>
  1394 + <key>comment</key>
  1395 + <value></value>
  1396 + </param>
  1397 + <param>
  1398 + <key>const</key>
  1399 + <value>pid_kp</value>
  1400 + </param>
  1401 + <param>
  1402 + <key>device</key>
  1403 + <value>/dev/pid_kp</value>
  1404 + </param>
  1405 + <param>
  1406 + <key>_enabled</key>
  1407 + <value>True</value>
  1408 + </param>
  1409 + <param>
  1410 + <key>_coordinate</key>
  1411 + <value>(184, 372)</value>
  1412 + </param>
  1413 + <param>
  1414 + <key>_rotation</key>
  1415 + <value>0</value>
  1416 + </param>
  1417 + <param>
  1418 + <key>id</key>
  1419 + <value>add_const_set_offset_0_0_0_1_0</value>
  1420 + </param>
  1421 + <param>
  1422 + <key>port</key>
  1423 + <value>port</value>
  1424 + </param>
  1425 + </block>
  1426 + <block>
  1427 + <key>add_const_set_offset</key>
  1428 + <param>
  1429 + <key>addr</key>
  1430 + <value>addr</value>
  1431 + </param>
  1432 + <param>
  1433 + <key>alias</key>
  1434 + <value></value>
  1435 + </param>
  1436 + <param>
  1437 + <key>comment</key>
  1438 + <value></value>
  1439 + </param>
  1440 + <param>
  1441 + <key>const</key>
  1442 + <value>pid_ki</value>
  1443 + </param>
  1444 + <param>
  1445 + <key>device</key>
  1446 + <value>/dev/pid_ki</value>
  1447 + </param>
  1448 + <param>
  1449 + <key>_enabled</key>
  1450 + <value>True</value>
  1451 + </param>
  1452 + <param>
  1453 + <key>_coordinate</key>
  1454 + <value>(176, 596)</value>
  1455 + </param>
  1456 + <param>
  1457 + <key>_rotation</key>
  1458 + <value>0</value>
  1459 + </param>
  1460 + <param>
  1461 + <key>id</key>
  1462 + <value>add_const_set_offset_0_0_0_1_0_0</value>
  1463 + </param>
  1464 + <param>
  1465 + <key>port</key>
  1466 + <value>port</value>
  1467 + </param>
  1468 + </block>
  1469 + <block>
  1470 + <key>add_const_set_offset</key>
  1471 + <param>
  1472 + <key>addr</key>
  1473 + <value>addr</value>
  1474 + </param>
  1475 + <param>
  1476 + <key>alias</key>
  1477 + <value></value>
  1478 + </param>
  1479 + <param>
  1480 + <key>comment</key>
  1481 + <value></value>
  1482 + </param>
  1483 + <param>
  1484 + <key>const</key>
  1485 + <value>pid_kd</value>
  1486 + </param>
  1487 + <param>
  1488 + <key>device</key>
  1489 + <value>/dev/pid_kd</value>
  1490 + </param>
  1491 + <param>
  1492 + <key>_enabled</key>
  1493 + <value>True</value>
  1494 + </param>
  1495 + <param>
  1496 + <key>_coordinate</key>
  1497 + <value>(176, 804)</value>
  1498 + </param>
  1499 + <param>
  1500 + <key>_rotation</key>
  1501 + <value>0</value>
  1502 + </param>
  1503 + <param>
  1504 + <key>id</key>
  1505 + <value>add_const_set_offset_0_0_0_1_0_0_0</value>
  1506 + </param>
  1507 + <param>
  1508 + <key>port</key>
  1509 + <value>port</value>
  1510 + </param>
  1511 + </block>
  1512 + <block>
  1513 + <key>add_const_set_offset</key>
  1514 + <param>
  1515 + <key>addr</key>
  1516 + <value>addr</value>
  1517 + </param>
  1518 + <param>
  1519 + <key>alias</key>
  1520 + <value></value>
  1521 + </param>
  1522 + <param>
  1523 + <key>comment</key>
  1524 + <value></value>
  1525 + </param>
  1526 + <param>
  1527 + <key>const</key>
  1528 + <value>pid_sign</value>
  1529 + </param>
  1530 + <param>
  1531 + <key>device</key>
  1532 + <value>/dev/pid_sign</value>
  1533 + </param>
  1534 + <param>
  1535 + <key>_enabled</key>
  1536 + <value>True</value>
  1537 + </param>
  1538 + <param>
  1539 + <key>_coordinate</key>
  1540 + <value>(392, 596)</value>
  1541 + </param>
  1542 + <param>
  1543 + <key>_rotation</key>
  1544 + <value>0</value>
  1545 + </param>
  1546 + <param>
  1547 + <key>id</key>
  1548 + <value>add_const_set_offset_0_0_0_1_0_0_0_0</value>
  1549 + </param>
  1550 + <param>
  1551 + <key>port</key>
  1552 + <value>port</value>
  1553 + </param>
  1554 + </block>
  1555 + <block>
  1556 + <key>add_const_set_offset</key>
  1557 + <param>
  1558 + <key>addr</key>
  1559 + <value>addr</value>
  1560 + </param>
  1561 + <param>
  1562 + <key>alias</key>
  1563 + <value></value>
  1564 + </param>
  1565 + <param>
  1566 + <key>comment</key>
  1567 + <value></value>
  1568 + </param>
  1569 + <param>
  1570 + <key>const</key>
  1571 + <value>pid_rst_int</value>
  1572 + </param>
  1573 + <param>
  1574 + <key>device</key>
  1575 + <value>/dev/pid_rst_int</value>
  1576 + </param>
  1577 + <param>
  1578 + <key>_enabled</key>
  1579 + <value>True</value>
  1580 + </param>
  1581 + <param>
  1582 + <key>_coordinate</key>
  1583 + <value>(392, 804)</value>
  1584 + </param>
  1585 + <param>
  1586 + <key>_rotation</key>
  1587 + <value>0</value>
  1588 + </param>
  1589 + <param>
  1590 + <key>id</key>
  1591 + <value>add_const_set_offset_0_0_0_1_0_0_0_0_0</value>
  1592 + </param>
  1593 + <param>
  1594 + <key>port</key>
  1595 + <value>port</value>
  1596 + </param>
  1597 + </block>
  1598 + <block>
  1599 + <key>nco_counter_send_conf</key>
  1600 + <param>
  1601 + <key>acc_size</key>
  1602 + <value>32</value>
  1603 + </param>
  1604 + <param>
  1605 + <key>addr</key>
  1606 + <value>addr</value>
  1607 + </param>
  1608 + <param>
  1609 + <key>alias</key>
  1610 + <value></value>
  1611 + </param>
  1612 + <param>
  1613 + <key>comment</key>
  1614 + <value></value>
  1615 + </param>
  1616 + <param>
  1617 + <key>device</key>
  1618 + <value>/dev/dds_nco</value>
  1619 + </param>
  1620 + <param>
  1621 + <key>_enabled</key>
  1622 + <value>True</value>
  1623 + </param>
  1624 + <param>
  1625 + <key>freq_dds</key>
  1626 + <value>dds_nco</value>
  1627 + </param>
  1628 + <param>
  1629 + <key>freq_ref</key>
  1630 + <value>125000000</value>
  1631 + </param>
  1632 + <param>
  1633 + <key>_coordinate</key>
  1634 + <value>(672, 344)</value>
  1635 + </param>
  1636 + <param>
  1637 + <key>_rotation</key>
  1638 + <value>0</value>
  1639 + </param>
  1640 + <param>
  1641 + <key>id</key>
  1642 + <value>nco_counter_send_conf_0</value>
  1643 + </param>
  1644 + <param>
  1645 + <key>offset</key>
  1646 + <value>0</value>
  1647 + </param>
  1648 + <param>
  1649 + <key>pinc_sw</key>
  1650 + <value>dds_pinc_sw</value>
  1651 + </param>
  1652 + <param>
  1653 + <key>poff_sw</key>
  1654 + <value>dds_poff_sw</value>
  1655 + </param>
  1656 + <param>
  1657 + <key>port</key>
  1658 + <value>port</value>
  1659 + </param>
  1660 + </block>
  1661 + <block>
  1662 + <key>nco_counter_send_conf</key>
  1663 + <param>
  1664 + <key>acc_size</key>
  1665 + <value>32</value>
  1666 + </param>
  1667 + <param>
  1668 + <key>addr</key>
  1669 + <value>addr</value>
  1670 + </param>
  1671 + <param>
  1672 + <key>alias</key>
  1673 + <value></value>
  1674 + </param>
  1675 + <param>
  1676 + <key>comment</key>
  1677 + <value></value>
  1678 + </param>
  1679 + <param>
  1680 + <key>device</key>
  1681 + <value>/dev/demod_nco</value>
  1682 + </param>
  1683 + <param>
  1684 + <key>_enabled</key>
  1685 + <value>True</value>
  1686 + </param>
  1687 + <param>
  1688 + <key>freq_dds</key>
  1689 + <value>demod_nco</value>
  1690 + </param>
  1691 + <param>
  1692 + <key>freq_ref</key>
  1693 + <value>125000000</value>
  1694 + </param>
  1695 + <param>
  1696 + <key>_coordinate</key>
  1697 + <value>(928, 576)</value>
  1698 + </param>
  1699 + <param>
  1700 + <key>_rotation</key>
  1701 + <value>0</value>
  1702 + </param>
  1703 + <param>
  1704 + <key>id</key>
  1705 + <value>nco_counter_send_conf_0_0</value>
  1706 + </param>
  1707 + <param>
  1708 + <key>offset</key>
  1709 + <value>0</value>
  1710 + </param>
  1711 + <param>
  1712 + <key>pinc_sw</key>
  1713 + <value>1</value>
  1714 + </param>
  1715 + <param>
  1716 + <key>poff_sw</key>
  1717 + <value>1</value>
  1718 + </param>
  1719 + <param>
  1720 + <key>port</key>
  1721 + <value>port</value>
  1722 + </param>
  1723 + </block>
  1724 +</flow_graph>
redpitaya/client/iq_pid_vco.py
  1 +#!/usr/bin/env python2
  2 +# -*- coding: utf-8 -*-
  3 +##################################################
  4 +# GNU Radio Python Flow Graph
  5 +# Title: Iq Pid Vco
  6 +# Generated: Fri Apr 21 18:49:00 2017
  7 +##################################################
  8 +
  9 +if __name__ == '__main__':
  10 + import ctypes
  11 + import sys
  12 + if sys.platform.startswith('linux'):
  13 + try:
  14 + x11 = ctypes.cdll.LoadLibrary('libX11.so')
  15 + x11.XInitThreads()
  16 + except:
  17 + print "Warning: failed to XInitThreads()"
  18 +
  19 +from PyQt4 import Qt
  20 +from gnuradio import eng_notation
  21 +from gnuradio import gr
  22 +from gnuradio.eng_option import eng_option
  23 +from gnuradio.filter import firdes
  24 +from gnuradio.qtgui import Range, RangeWidget
  25 +from optparse import OptionParser
  26 +import redpitaya_gnuradio
  27 +import sys
  28 +
  29 +
  30 +class iq_pid_vco(gr.top_block, Qt.QWidget):
  31 +
  32 + def __init__(self):
  33 + gr.top_block.__init__(self, "Iq Pid Vco")
  34 + Qt.QWidget.__init__(self)
  35 + self.setWindowTitle("Iq Pid Vco")
  36 + try:
  37 + self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
  38 + except:
  39 + pass
  40 + self.top_scroll_layout = Qt.QVBoxLayout()
  41 + self.setLayout(self.top_scroll_layout)
  42 + self.top_scroll = Qt.QScrollArea()
  43 + self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
  44 + self.top_scroll_layout.addWidget(self.top_scroll)
  45 + self.top_scroll.setWidgetResizable(True)
  46 + self.top_widget = Qt.QWidget()
  47 + self.top_scroll.setWidget(self.top_widget)
  48 + self.top_layout = Qt.QVBoxLayout(self.top_widget)
  49 + self.top_grid_layout = Qt.QGridLayout()
  50 + self.top_layout.addLayout(self.top_grid_layout)
  51 +
  52 + self.settings = Qt.QSettings("GNU Radio", "iq_pid_vco")
  53 + self.restoreGeometry(self.settings.value("geometry").toByteArray())
  54 +
  55 + ##################################################
  56 + # Variables
  57 + ##################################################
  58 + self.port = port = 1001
  59 + self.pid_sign = pid_sign = 0
  60 + self.pid_setpoint = pid_setpoint = 0
  61 + self.pid_rst_int = pid_rst_int = 0
  62 + self.pid_kp = pid_kp = 0
  63 + self.pid_ki = pid_ki = 0
  64 + self.pid_kd = pid_kd = 0
  65 + self.demod_nco = demod_nco = 0
  66 + self.dds_range = dds_range = 0
  67 + self.dds_poff_sw = dds_poff_sw = 1
  68 + self.dds_pinc_sw = dds_pinc_sw = 1
  69 + self.dds_offset = dds_offset = 0
  70 + self.dds_nco = dds_nco = 0
  71 + self.dds_f0 = dds_f0 = 0
  72 + self.dds_ampl = dds_ampl = 0
  73 + self.dac2_offset = dac2_offset = 0
  74 + self.addr = addr = "192.168.0.201"
  75 + self.adc1_offset = adc1_offset = 0
  76 +
  77 + ##################################################
  78 + # Blocks
  79 + ##################################################
  80 + _pid_sign_check_box = Qt.QCheckBox('pid_sign')
  81 + self._pid_sign_choices = {True: 1, False: 0}
  82 + self._pid_sign_choices_inv = dict((v,k) for k,v in self._pid_sign_choices.iteritems())
  83 + self._pid_sign_callback = lambda i: Qt.QMetaObject.invokeMethod(_pid_sign_check_box, "setChecked", Qt.Q_ARG("bool", self._pid_sign_choices_inv[i]))
  84 + self._pid_sign_callback(self.pid_sign)
  85 + _pid_sign_check_box.stateChanged.connect(lambda i: self.set_pid_sign(self._pid_sign_choices[bool(i)]))
  86 + self.top_grid_layout.addWidget(_pid_sign_check_box, 3, 2)
  87 + self._pid_setpoint_range = Range(-2**13, 2**13-1, 1, 0, 200)
  88 + self._pid_setpoint_win = RangeWidget(self._pid_setpoint_range, self.set_pid_setpoint, 'pid_setpoint', "counter_slider", int)
  89 + self.top_grid_layout.addWidget(self._pid_setpoint_win, 2, 2)
  90 + _pid_rst_int_push_button = Qt.QPushButton('pid_rst_int')
  91 + self._pid_rst_int_choices = {'Pressed': 1, 'Released': 0}
  92 + _pid_rst_int_push_button.pressed.connect(lambda: self.set_pid_rst_int(self._pid_rst_int_choices['Pressed']))
  93 + _pid_rst_int_push_button.released.connect(lambda: self.set_pid_rst_int(self._pid_rst_int_choices['Released']))
  94 + self.top_grid_layout.addWidget(_pid_rst_int_push_button, 4, 2)
  95 + self._pid_kp_range = Range(0, 2**13-1, 1, 0, 200)
  96 + self._pid_kp_win = RangeWidget(self._pid_kp_range, self.set_pid_kp, 'pid_kp', "counter_slider", int)
  97 + self.top_grid_layout.addWidget(self._pid_kp_win, 2, 1)
  98 + self._pid_ki_range = Range(0, 2**13-1, 1, 0, 200)
  99 + self._pid_ki_win = RangeWidget(self._pid_ki_range, self.set_pid_ki, 'pid_ki', "counter_slider", int)
  100 + self.top_grid_layout.addWidget(self._pid_ki_win, 3, 1)
  101 + self._pid_kd_range = Range(0, 2**13-1, 1, 0, 200)
  102 + self._pid_kd_win = RangeWidget(self._pid_kd_range, self.set_pid_kd, 'pid_kd', "counter_slider", int)
  103 + self.top_grid_layout.addWidget(self._pid_kd_win, 4, 1)
  104 + self._demod_nco_range = Range(0, 60000000, 1, 0, 200)
  105 + self._demod_nco_win = RangeWidget(self._demod_nco_range, self.set_demod_nco, 'demod_nco', "counter_slider", int)
  106 + self.top_grid_layout.addWidget(self._demod_nco_win, 3, 4)
  107 + self._dds_range_range = Range(-2**13, 2**13-1, 1, 0, 200)
  108 + self._dds_range_win = RangeWidget(self._dds_range_range, self.set_dds_range, 'dds_range', "counter_slider", int)
  109 + self.top_grid_layout.addWidget(self._dds_range_win, 5, 3)
  110 + _dds_poff_sw_check_box = Qt.QCheckBox('dds_poff_sw')
  111 + self._dds_poff_sw_choices = {True: 1, False: 0}
  112 + self._dds_poff_sw_choices_inv = dict((v,k) for k,v in self._dds_poff_sw_choices.iteritems())
  113 + self._dds_poff_sw_callback = lambda i: Qt.QMetaObject.invokeMethod(_dds_poff_sw_check_box, "setChecked", Qt.Q_ARG("bool", self._dds_poff_sw_choices_inv[i]))
  114 + self._dds_poff_sw_callback(self.dds_poff_sw)
  115 + _dds_poff_sw_check_box.stateChanged.connect(lambda i: self.set_dds_poff_sw(self._dds_poff_sw_choices[bool(i)]))
  116 + self.top_grid_layout.addWidget(_dds_poff_sw_check_box, 2, 4)
  117 + _dds_pinc_sw_check_box = Qt.QCheckBox('dds_pinc_sw')
  118 + self._dds_pinc_sw_choices = {True: 1, False: 0}
  119 + self._dds_pinc_sw_choices_inv = dict((v,k) for k,v in self._dds_pinc_sw_choices.iteritems())
  120 + self._dds_pinc_sw_callback = lambda i: Qt.QMetaObject.invokeMethod(_dds_pinc_sw_check_box, "setChecked", Qt.Q_ARG("bool", self._dds_pinc_sw_choices_inv[i]))
  121 + self._dds_pinc_sw_callback(self.dds_pinc_sw)
  122 + _dds_pinc_sw_check_box.stateChanged.connect(lambda i: self.set_dds_pinc_sw(self._dds_pinc_sw_choices[bool(i)]))
  123 + self.top_grid_layout.addWidget(_dds_pinc_sw_check_box, 1, 4)
  124 + self._dds_offset_range = Range(-2**13, 2**13-1, 1, 0, 200)
  125 + self._dds_offset_win = RangeWidget(self._dds_offset_range, self.set_dds_offset, 'dds_offset', "counter_slider", int)
  126 + self.top_grid_layout.addWidget(self._dds_offset_win, 3, 3)
  127 + self._dds_nco_range = Range(0, 60000000, 1, 0, 200)
  128 + self._dds_nco_win = RangeWidget(self._dds_nco_range, self.set_dds_nco, 'dds_nco', "counter_slider", int)
  129 + self.top_grid_layout.addWidget(self._dds_nco_win, 2, 3)
  130 + self._dds_f0_range = Range(0, 60000000, 1, 0, 200)
  131 + self._dds_f0_win = RangeWidget(self._dds_f0_range, self.set_dds_f0, 'dds_f0', "counter_slider", int)
  132 + self.top_grid_layout.addWidget(self._dds_f0_win, 4, 3)
  133 + self._dds_ampl_range = Range(0, 2**13-1, 1, 0, 200)
  134 + self._dds_ampl_win = RangeWidget(self._dds_ampl_range, self.set_dds_ampl, 'dds_ampl', "counter_slider", int)
  135 + self.top_grid_layout.addWidget(self._dds_ampl_win, 1, 3)
  136 + self._dac2_offset_range = Range(-2**13, 2**13-1, 1, 0, 200)
  137 + self._dac2_offset_win = RangeWidget(self._dac2_offset_range, self.set_dac2_offset, 'dac2_offset', "counter_slider", int)
  138 + self.top_grid_layout.addWidget(self._dac2_offset_win, 1, 2)
  139 + self._adc1_offset_range = Range(-2**13, 2**13-1, 1, 0, 200)
  140 + self._adc1_offset_win = RangeWidget(self._adc1_offset_range, self.set_adc1_offset, 'adc1_offset', "counter_slider", int)
  141 + self.top_grid_layout.addWidget(self._adc1_offset_win, 1, 1)
  142 + self.nco_counter_send_conf_0_0 = redpitaya_gnuradio.nco_counter_send_conf(
  143 + addr=addr,
  144 + port=port,
  145 + device='/dev/demod_nco',
  146 + freq_ref=125000000,
  147 + freq_dds=demod_nco,
  148 + acc_size=32,
  149 + offset=0,
  150 + pinc_sw=1,
  151 + poff_sw=1,
  152 + )
  153 +
  154 + self.nco_counter_send_conf_0 = redpitaya_gnuradio.nco_counter_send_conf(
  155 + addr=addr,
  156 + port=port,
  157 + device='/dev/dds_nco',
  158 + freq_ref=125000000,
  159 + freq_dds=dds_nco,
  160 + acc_size=32,
  161 + offset=0,
  162 + pinc_sw=dds_pinc_sw,
  163 + poff_sw=dds_poff_sw,
  164 + )
  165 +
  166 + self.add_const_set_offset_0_0_0_1_0_0_0_0_0 = redpitaya_gnuradio.add_const_set_offset(
  167 + addr=addr,
  168 + port=port,
  169 + device='/dev/pid_rst_int',
  170 + const=pid_rst_int,
  171 + )
  172 +
  173 + self.add_const_set_offset_0_0_0_1_0_0_0_0 = redpitaya_gnuradio.add_const_set_offset(
  174 + addr=addr,
  175 + port=port,
  176 + device='/dev/pid_sign',
  177 + const=pid_sign,
  178 + )
  179 +
  180 + self.add_const_set_offset_0_0_0_1_0_0_0 = redpitaya_gnuradio.add_const_set_offset(
  181 + addr=addr,
  182 + port=port,
  183 + device='/dev/pid_kd',
  184 + const=pid_kd,
  185 + )
  186 +
  187 + self.add_const_set_offset_0_0_0_1_0_0 = redpitaya_gnuradio.add_const_set_offset(
  188 + addr=addr,
  189 + port=port,
  190 + device='/dev/pid_ki',
  191 + const=pid_ki,
  192 + )
  193 +
  194 + self.add_const_set_offset_0_0_0_1_0 = redpitaya_gnuradio.add_const_set_offset(
  195 + addr=addr,
  196 + port=port,
  197 + device='/dev/pid_kp',
  198 + const=pid_kp,
  199 + )
  200 +
  201 + self.add_const_set_offset_0_0_0_1 = redpitaya_gnuradio.add_const_set_offset(
  202 + addr=addr,
  203 + port=port,
  204 + device='/dev/pid_setpoint',
  205 + const=pid_setpoint,
  206 + )
  207 +
  208 + self.add_const_set_offset_0_0_0_0_1_0_0 = redpitaya_gnuradio.add_const_set_offset(
  209 + addr=addr,
  210 + port=port,
  211 + device='/dev/dds_range',
  212 + const=dds_range,
  213 + )
  214 +
  215 + self.add_const_set_offset_0_0_0_0_1_0 = redpitaya_gnuradio.add_const_set_offset(
  216 + addr=addr,
  217 + port=port,
  218 + device='/dev/dds_f0',
  219 + const=int(dds_f0/(125e6/2**32)),
  220 + )
  221 +
  222 + self.add_const_set_offset_0_0_0_0_1 = redpitaya_gnuradio.add_const_set_offset(
  223 + addr=addr,
  224 + port=port,
  225 + device='/dev/dds_offset',
  226 + const=dds_offset,
  227 + )
  228 +
  229 + self.add_const_set_offset_0_0_0_0_0 = redpitaya_gnuradio.add_const_set_offset(
  230 + addr=addr,
  231 + port=port,
  232 + device='/dev/dds_ampl',
  233 + const=dds_ampl,
  234 + )
  235 +
  236 + self.add_const_set_offset_0_0_0_0 = redpitaya_gnuradio.add_const_set_offset(
  237 + addr=addr,
  238 + port=port,
  239 + device='/dev/dac2_offset',
  240 + const=dac2_offset,
  241 + )
  242 +
  243 + self.add_const_set_offset_0_0_0 = redpitaya_gnuradio.add_const_set_offset(
  244 + addr=addr,
  245 + port=port,
  246 + device='/dev/adc1_offset',
  247 + const=adc1_offset,
  248 + )
  249 +
  250 +
  251 + def closeEvent(self, event):
  252 + self.settings = Qt.QSettings("GNU Radio", "iq_pid_vco")
  253 + self.settings.setValue("geometry", self.saveGeometry())
  254 + event.accept()
  255 +
  256 + def get_port(self):
  257 + return self.port
  258 +
  259 + def set_port(self, port):
  260 + self.port = port
  261 +
  262 + def get_pid_sign(self):
  263 + return self.pid_sign
  264 +
  265 + def set_pid_sign(self, pid_sign):
  266 + self.pid_sign = pid_sign
  267 + self._pid_sign_callback(self.pid_sign)
  268 + self.add_const_set_offset_0_0_0_1_0_0_0_0.set_const(device='/dev/pid_sign', const=self.pid_sign)
  269 +
  270 + def get_pid_setpoint(self):
  271 + return self.pid_setpoint
  272 +
  273 + def set_pid_setpoint(self, pid_setpoint):
  274 + self.pid_setpoint = pid_setpoint
  275 + self.add_const_set_offset_0_0_0_1.set_const(device='/dev/pid_setpoint', const=self.pid_setpoint)
  276 +
  277 + def get_pid_rst_int(self):
  278 + return self.pid_rst_int
  279 +
  280 + def set_pid_rst_int(self, pid_rst_int):
  281 + self.pid_rst_int = pid_rst_int
  282 + self.add_const_set_offset_0_0_0_1_0_0_0_0_0.set_const(device='/dev/pid_rst_int', const=self.pid_rst_int)
  283 +
  284 + def get_pid_kp(self):
  285 + return self.pid_kp
  286 +
  287 + def set_pid_kp(self, pid_kp):
  288 + self.pid_kp = pid_kp
  289 + self.add_const_set_offset_0_0_0_1_0.set_const(device='/dev/pid_kp', const=self.pid_kp)
  290 +
  291 + def get_pid_ki(self):
  292 + return self.pid_ki
  293 +
  294 + def set_pid_ki(self, pid_ki):
  295 + self.pid_ki = pid_ki
  296 + self.add_const_set_offset_0_0_0_1_0_0.set_const(device='/dev/pid_ki', const=self.pid_ki)
  297 +
  298 + def get_pid_kd(self):
  299 + return self.pid_kd
  300 +
  301 + def set_pid_kd(self, pid_kd):
  302 + self.pid_kd = pid_kd
  303 + self.add_const_set_offset_0_0_0_1_0_0_0.set_const(device='/dev/pid_kd', const=self.pid_kd)
  304 +
  305 + def get_demod_nco(self):
  306 + return self.demod_nco
  307 +
  308 + def set_demod_nco(self, demod_nco):
  309 + self.demod_nco = demod_nco
  310 + self.nco_counter_send_conf_0_0.set_nco(device='/dev/demod_nco', freq_ref=125000000, freq_dds=self.demod_nco, acc_size=32, offset=0, pinc_sw=1, poff_sw=1)
  311 +
  312 + def get_dds_range(self):
  313 + return self.dds_range
  314 +
  315 + def set_dds_range(self, dds_range):
  316 + self.dds_range = dds_range
  317 + self.add_const_set_offset_0_0_0_0_1_0_0.set_const(device='/dev/dds_range', const=self.dds_range)
  318 +
  319 + def get_dds_poff_sw(self):
  320 + return self.dds_poff_sw
  321 +
  322 + def set_dds_poff_sw(self, dds_poff_sw):
  323 + self.dds_poff_sw = dds_poff_sw
  324 + self._dds_poff_sw_callback(self.dds_poff_sw)
  325 + self.nco_counter_send_conf_0.set_nco(device='/dev/dds_nco', freq_ref=125000000, freq_dds=self.dds_nco, acc_size=32, offset=0, pinc_sw=self.dds_pinc_sw, poff_sw=self.dds_poff_sw)
  326 +
  327 + def get_dds_pinc_sw(self):
  328 + return self.dds_pinc_sw
  329 +
  330 + def set_dds_pinc_sw(self, dds_pinc_sw):
  331 + self.dds_pinc_sw = dds_pinc_sw
  332 + self._dds_pinc_sw_callback(self.dds_pinc_sw)
  333 + self.nco_counter_send_conf_0.set_nco(device='/dev/dds_nco', freq_ref=125000000, freq_dds=self.dds_nco, acc_size=32, offset=0, pinc_sw=self.dds_pinc_sw, poff_sw=self.dds_poff_sw)
  334 +
  335 + def get_dds_offset(self):
  336 + return self.dds_offset
  337 +
  338 + def set_dds_offset(self, dds_offset):
  339 + self.dds_offset = dds_offset
  340 + self.add_const_set_offset_0_0_0_0_1.set_const(device='/dev/dds_offset', const=self.dds_offset)
  341 +
  342 + def get_dds_nco(self):
  343 + return self.dds_nco
  344 +
  345 + def set_dds_nco(self, dds_nco):
  346 + self.dds_nco = dds_nco
  347 + self.nco_counter_send_conf_0.set_nco(device='/dev/dds_nco', freq_ref=125000000, freq_dds=self.dds_nco, acc_size=32, offset=0, pinc_sw=self.dds_pinc_sw, poff_sw=self.dds_poff_sw)
  348 +
  349 + def get_dds_f0(self):
  350 + return self.dds_f0
  351 +
  352 + def set_dds_f0(self, dds_f0):
  353 + self.dds_f0 = dds_f0
  354 + self.add_const_set_offset_0_0_0_0_1_0.set_const(device='/dev/dds_f0', const=int(self.dds_f0/(125e6/2**32)))
  355 +
  356 + def get_dds_ampl(self):
  357 + return self.dds_ampl
  358 +
  359 + def set_dds_ampl(self, dds_ampl):
  360 + self.dds_ampl = dds_ampl
  361 + self.add_const_set_offset_0_0_0_0_0.set_const(device='/dev/dds_ampl', const=self.dds_ampl)
  362 +
  363 + def get_dac2_offset(self):
  364 + return self.dac2_offset
  365 +
  366 + def set_dac2_offset(self, dac2_offset):
  367 + self.dac2_offset = dac2_offset
  368 + self.add_const_set_offset_0_0_0_0.set_const(device='/dev/dac2_offset', const=self.dac2_offset)
  369 +
  370 + def get_addr(self):
  371 + return self.addr
  372 +
  373 + def set_addr(self, addr):
  374 + self.addr = addr
  375 +
  376 + def get_adc1_offset(self):
  377 + return self.adc1_offset
  378 +
  379 + def set_adc1_offset(self, adc1_offset):
  380 + self.adc1_offset = adc1_offset
  381 + self.add_const_set_offset_0_0_0.set_const(device='/dev/adc1_offset', const=self.adc1_offset)
  382 +
  383 +
  384 +def main(top_block_cls=iq_pid_vco, options=None):
  385 +
  386 + from distutils.version import StrictVersion
  387 + if StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0"):
  388 + style = gr.prefs().get_string('qtgui', 'style', 'raster')
  389 + Qt.QApplication.setGraphicsSystem(style)
  390 + qapp = Qt.QApplication(sys.argv)
  391 +
  392 + tb = top_block_cls()
  393 + tb.start()
  394 + tb.show()
  395 +
  396 + def quitting():
  397 + tb.stop()
  398 + tb.wait()
  399 + qapp.connect(qapp, Qt.SIGNAL("aboutToQuit()"), quitting)
  400 + qapp.exec_()
  401 +
  402 +
  403 +if __name__ == '__main__':
  404 + main()