user: Please show me the C implementation that matches the assembly code listed below:

```asm
<link_pid>:
  endbr64
  push   %r15
  lea    D1027(%rip),%rdi
  lea    D363(%rip),%r15
  push   %r14
  lea    D2162(%rip),%r14
  push   %r13
  lea    D468(%rip),%r13
  push   %r12
  lea    D976(%rip),%r12
  push   %rbp
  lea    D2716(%rip),%rbp
  push   %rbx
  lea    D78(%rip),%rbx
  sub    $0x8,%rsp
  movsd  D1631(%rip),%xmm0
  call   <set_hal_pin@plt>
  movsd  D1806(%rip),%xmm0
  lea    D2536(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D1806(%rip),%rax
  lea    D1038(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  movsd  D1968(%rip),%xmm0
  lea    D1519(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D1968(%rip),%rax
  lea    D2476(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  movsd  D2351(%rip),%xmm0
  lea    D379(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1581(%rip),%xmm0
  lea    D2570(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D331(%rip),%xmm0
  lea    D2603(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2164(%rip),%xmm0
  lea    D1743(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D572(%rip),%xmm0
  lea    D767(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1161(%rip),%xmm0
  lea    D328(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1504(%rip),%xmm0
  lea    D486(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D1904(%rip),%xmm0
  lea    D56(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2044(%rip),%xmm0
  lea    D251(%rip),%rdi
  call   <set_hal_pin@plt>
  movsd  D2457(%rip),%xmm0
  lea    D441(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2457(%rip),%rax
  lea    D609(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  lea    D2768(%rip),%rsi
  lea    D1147(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r13,%rsi
  lea    D2130(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2210(%rip),%r9
  lea    D1017(%rip),%rsi
  mov    %r9,%rdi
  call   <link_hal_pins@plt>
  mov    %r14,%rdi
  lea    D1055(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D2552(%rip),%rsi
  lea    D1870(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D1875(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbx,%rsi
  lea    D1824(%rip),%rdi
  call   <link_hal_pins@plt>
  movsd  D426(%rip),%xmm0
  lea    D2472(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    %r13,%rdi
  lea    D745(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbx,%rdi
  lea    D1626(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D241(%rip),%rsi
  lea    D2198(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D947(%rip),%r11
  lea    D233(%rip),%rsi
  mov    %r11,%rdi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D1052(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D206(%rip),%rsi
  lea    D2502(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D879(%rip),%r10
  lea    D341(%rip),%rsi
  mov    %r10,%rdi
  call   <link_hal_pins@plt>
  lea    D2207(%rip),%rsi
  lea    D1406(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r12,%rsi
  lea    D1(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D706(%rip),%rsi
  lea    D2458(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1041(%rip),%rsi
  lea    D706(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r12,%rdi
  lea    D603(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D245(%rip),%rsi
  lea    D1039(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D447(%rip),%rsi
  lea    D307(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D539(%rip),%rsi
  lea    D2513(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D588(%rip),%rsi
  lea    D2828(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1663(%rip),%rsi
  lea    D2285(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2120(%rip),%rsi
  lea    D83(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1197(%rip),%rsi
  lea    D593(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D842(%rip),%rsi
  lea    D608(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1792(%rip),%rsi
  lea    D708(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1344(%rip),%rsi
  lea    D2598(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1585(%rip),%rsi
  lea    D2144(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2712(%rip),%rsi
  lea    D2420(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D841(%rip),%rsi
  lea    D50(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2543(%rip),%rsi
  lea    D1649(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1271(%rip),%rsi
  lea    D1260(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D916(%rip),%rsi
  lea    D2284(%rip),%rdi
  call   <link_hal_pins@plt>
  pxor   %xmm0,%xmm0
  lea    D663(%rip),%rdi
  call   <set_hal_pin@plt>
  lea    D913(%rip),%rsi
  lea    D2336(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2121(%rip),%rsi
  lea    D925(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2447(%rip),%rsi
  lea    D564(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D810(%rip),%rsi
  lea    D2506(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r15,%rdi
  lea    D2275(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D60(%rip),%rsi
  lea    D1782(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1821(%rip),%rsi
  lea    D2046(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1037(%rip),%rsi
  lea    D1293(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D998(%rip),%rsi
  lea    D2128(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2369(%rip),%rsi
  lea    D1002(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2312(%rip),%rsi
  lea    D220(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r13,%rdi
  lea    D804(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D947(%rip),%r11
  lea    D566(%rip),%rsi
  mov    %r11,%rdi
  call   <link_hal_pins@plt>
  lea    D2085(%rip),%rsi
  lea    D1300(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1317(%rip),%rsi
  lea    D1393(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D828(%rip),%rsi
  lea    D989(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2131(%rip),%rsi
  lea    D2155(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2625(%rip),%rsi
  lea    D649(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D2554(%rip),%rsi
  lea    D872(%rip),%rbp
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D2240(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D1000(%rip),%rsi
  lea    D1635(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1159(%rip),%rsi
  lea    D1714(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2387(%rip),%rsi
  lea    D861(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D562(%rip),%rsi
  lea    D25(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1200(%rip),%rsi
  lea    D575(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2347(%rip),%rsi
  lea    D1023(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D879(%rip),%r10
  lea    D229(%rip),%rsi
  mov    %r10,%rdi
  call   <link_hal_pins@plt>
  lea    D1069(%rip),%rsi
  lea    D1126(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2624(%rip),%rsi
  lea    D755(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D443(%rip),%rsi
  lea    D288(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D112(%rip),%rsi
  lea    D1179(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2333(%rip),%rsi
  lea    D1688(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2210(%rip),%r9
  lea    D2238(%rip),%rsi
  mov    %r9,%rdi
  call   <link_hal_pins@plt>
  mov    %r14,%rdi
  lea    D2223(%rip),%rsi
  lea    D16(%rip),%r14
  call   <link_hal_pins@plt>
  lea    D795(%rip),%rsi
  lea    D1209(%rip),%rdi
  call   <link_hal_pins@plt>
  movsd  D2782(%rip),%xmm0
  lea    D2669(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D2782(%rip),%rax
  lea    D2103(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D2782(%rip),%rax
  lea    D1494(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D1801(%rip),%rax
  lea    D1166(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D1801(%rip),%rax
  lea    D1720(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D1801(%rip),%rax
  lea    D2753(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D1801(%rip),%rax
  mov    %rbp,%rdi
  lea    D2798(%rip),%rbp
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  lea    D809(%rip),%rsi
  lea    D2674(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r14,%rdi
  lea    D2829(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D2519(%rip),%r10
  lea    D1662(%rip),%rsi
  mov    %r10,%rdi
  call   <link_hal_pins@plt>
  lea    D2105(%rip),%rsi
  lea    D2611(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2306(%rip),%rsi
  lea    D511(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r15,%rdi
  lea    D334(%rip),%rsi
  lea    D2255(%rip),%r15
  call   <link_hal_pins@plt>
  lea    D92(%rip),%rcx
  lea    D1012(%rip),%rsi
  mov    %rcx,%rdi
  call   <link_hal_pins@plt>
  mov    %r15,%rdi
  lea    D2303(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %r15,%rdi
  lea    D1869(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D2622(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D617(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D1129(%rip),%rsi
  lea    D881(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D437(%rip),%rsi
  lea    D2653(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2074(%rip),%rsi
  lea    D2127(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D960(%rip),%rsi
  lea    D383(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1334(%rip),%r11
  lea    D1563(%rip),%rsi
  mov    %r11,%rdi
  call   <link_hal_pins@plt>
  lea    D1500(%rip),%r8
  lea    D1082(%rip),%rsi
  mov    %r8,%rdi
  call   <link_hal_pins@plt>
  mov    %r12,%rdi
  lea    D2532(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %r15,%rdi
  lea    D1712(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D2017(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D2614(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D2519(%rip),%r10
  lea    D477(%rip),%rsi
  mov    %r10,%rdi
  call   <link_hal_pins@plt>
  lea    D829(%rip),%rsi
  lea    D168(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2381(%rip),%r9
  lea    D2571(%rip),%rsi
  mov    %r9,%rdi
  call   <link_hal_pins@plt>
  lea    D1816(%rip),%rsi
  lea    D2364(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1486(%rip),%rdx
  lea    D199(%rip),%rsi
  mov    %rdx,%rdi
  call   <link_hal_pins@plt>
  mov    %r14,%rdi
  lea    D1690(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D2381(%rip),%r9
  lea    D2015(%rip),%rsi
  mov    %r9,%rdi
  call   <link_hal_pins@plt>
  mov    %r15,%rdi
  lea    D847(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D228(%rip),%rsi
  call   <link_hal_pins@plt>
  mov    %rbp,%rdi
  lea    D2715(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D2519(%rip),%r10
  lea    D1673(%rip),%rsi
  mov    %r10,%rdi
  call   <link_hal_pins@plt>
  mov    %r14,%rdi
  lea    D2615(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D92(%rip),%rcx
  lea    D384(%rip),%rsi
  mov    %rcx,%rdi
  call   <link_hal_pins@plt>
  lea    D1486(%rip),%rdx
  lea    D499(%rip),%rsi
  mov    %rdx,%rdi
  call   <link_hal_pins@plt>
  lea    D2381(%rip),%r9
  lea    D2325(%rip),%rsi
  mov    %r9,%rdi
  call   <link_hal_pins@plt>
  lea    D679(%rip),%rsi
  lea    D418(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1026(%rip),%rsi
  lea    D876(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D483(%rip),%rsi
  lea    D1368(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1334(%rip),%r11
  lea    D68(%rip),%rsi
  mov    %r11,%rdi
  call   <link_hal_pins@plt>
  lea    D1500(%rip),%r8
  lea    D1879(%rip),%rsi
  mov    %r8,%rdi
  call   <link_hal_pins@plt>
  mov    %r14,%rdi
  lea    D808(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D1332(%rip),%rsi
  lea    D1093(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2411(%rip),%rsi
  lea    D2451(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1906(%rip),%rsi
  lea    D2796(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1627(%rip),%rsi
  lea    D2726(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D1018(%rip),%rsi
  lea    D1238(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %r13,%rdi
  lea    D299(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D820(%rip),%rsi
  lea    D706(%rip),%rdi
  call   <link_hal_pins@plt>
  mov    %rbx,%rdi
  lea    D1493(%rip),%rsi
  call   <link_hal_pins@plt>
  lea    D2095(%rip),%rsi
  mov    %r12,%rdi
  call   <link_hal_pins@plt>
  movsd  D1899(%rip),%xmm0
  lea    D188(%rip),%rdi
  call   <set_hal_pin@plt>
  mov    D1899(%rip),%rax
  lea    D194(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D1801(%rip),%rax
  lea    D96(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  mov    D1801(%rip),%rax
  lea    D1628(%rip),%rdi
  movq   %rax,%xmm0
  call   <set_hal_pin@plt>
  lea    D2396(%rip),%rsi
  lea    D2445(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D2019(%rip),%rsi
  lea    D1530(%rip),%rdi
  call   <link_hal_pins@plt>
  lea    D419(%rip),%rsi
  lea    D2629(%rip),%rdi
  call   <link_hal_pins@plt>
  add    $0x8,%rsp
  lea    D1440(%rip),%rsi
  lea    D2497(%rip),%rdi
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1070 <link_hal_pins@plt>
```

tool_calls: name: unpack_data
arguments: label: D1027
type_guessed: string
name: unpack_data
arguments: label: D363
type_guessed: string
name: unpack_data
arguments: label: D2162
type_guessed: string
name: unpack_data
arguments: label: D468
type_guessed: string
name: unpack_data
arguments: label: D976
type_guessed: string
name: unpack_data
arguments: label: D2716
type_guessed: string
name: unpack_data
arguments: label: D78
type_guessed: string
name: unpack_data
arguments: label: D1631
type_guessed: f64
name: unpack_data
arguments: label: D1806
type_guessed: f64
name: unpack_data
arguments: label: D2536
type_guessed: string
name: unpack_data
arguments: label: D1038
type_guessed: string
name: unpack_data
arguments: label: D1968
type_guessed: f64
name: unpack_data
arguments: label: D1519
type_guessed: string
name: unpack_data
arguments: label: D2476
type_guessed: string
name: unpack_data
arguments: label: D2351
type_guessed: f64
name: unpack_data
arguments: label: D379
type_guessed: string
name: unpack_data
arguments: label: D1581
type_guessed: f64
name: unpack_data
arguments: label: D2570
type_guessed: string
name: unpack_data
arguments: label: D331
type_guessed: f64
name: unpack_data
arguments: label: D2603
type_guessed: string
name: unpack_data
arguments: label: D2164
type_guessed: f64
name: unpack_data
arguments: label: D1743
type_guessed: string
name: unpack_data
arguments: label: D572
type_guessed: f64
name: unpack_data
arguments: label: D767
type_guessed: string
name: unpack_data
arguments: label: D1161
type_guessed: f64
name: unpack_data
arguments: label: D328
type_guessed: string
name: unpack_data
arguments: label: D1504
type_guessed: f64
name: unpack_data
arguments: label: D486
type_guessed: string
name: unpack_data
arguments: label: D1904
type_guessed: f64
name: unpack_data
arguments: label: D56
type_guessed: string
name: unpack_data
arguments: label: D2044
type_guessed: f64
name: unpack_data
arguments: label: D251
type_guessed: string
name: unpack_data
arguments: label: D2457
type_guessed: f64
name: unpack_data
arguments: label: D441
type_guessed: string
name: unpack_data
arguments: label: D609
type_guessed: string
name: unpack_data
arguments: label: D2768
type_guessed: string
name: unpack_data
arguments: label: D1147
type_guessed: string
name: unpack_data
arguments: label: D2130
type_guessed: string
name: unpack_data
arguments: label: D2210
type_guessed: string
name: unpack_data
arguments: label: D1017
type_guessed: string
name: unpack_data
arguments: label: D1055
type_guessed: string
name: unpack_data
arguments: label: D2552
type_guessed: string
name: unpack_data
arguments: label: D1870
type_guessed: string
name: unpack_data
arguments: label: D1875
type_guessed: string
name: unpack_data
arguments: label: D1824
type_guessed: string
name: unpack_data
arguments: label: D426
type_guessed: f64
name: unpack_data
arguments: label: D2472
type_guessed: string
name: unpack_data
arguments: label: D745
type_guessed: string
name: unpack_data
arguments: label: D1626
type_guessed: string
name: unpack_data
arguments: label: D241
type_guessed: string
name: unpack_data
arguments: label: D2198
type_guessed: string
name: unpack_data
arguments: label: D947
type_guessed: string
name: unpack_data
arguments: label: D233
type_guessed: string
name: unpack_data
arguments: label: D1052
type_guessed: string
name: unpack_data
arguments: label: D206
type_guessed: string
name: unpack_data
arguments: label: D2502
type_guessed: string
name: unpack_data
arguments: label: D879
type_guessed: string
name: unpack_data
arguments: label: D341
type_guessed: string
name: unpack_data
arguments: label: D2207
type_guessed: string
name: unpack_data
arguments: label: D1406
type_guessed: string
name: unpack_data
arguments: label: D1
type_guessed: string
name: unpack_data
arguments: label: D706
type_guessed: string
name: unpack_data
arguments: label: D2458
type_guessed: string
name: unpack_data
arguments: label: D1041
type_guessed: string
name: unpack_data
arguments: label: D603
type_guessed: string
name: unpack_data
arguments: label: D245
type_guessed: string
name: unpack_data
arguments: label: D1039
type_guessed: string
name: unpack_data
arguments: label: D447
type_guessed: string
name: unpack_data
arguments: label: D307
type_guessed: string
name: unpack_data
arguments: label: D539
type_guessed: string
name: unpack_data
arguments: label: D2513
type_guessed: string
name: unpack_data
arguments: label: D588
type_guessed: string
name: unpack_data
arguments: label: D2828
type_guessed: string
name: unpack_data
arguments: label: D1663
type_guessed: string
name: unpack_data
arguments: label: D2285
type_guessed: string
name: unpack_data
arguments: label: D2120
type_guessed: string
name: unpack_data
arguments: label: D83
type_guessed: string
name: unpack_data
arguments: label: D1197
type_guessed: string
name: unpack_data
arguments: label: D593
type_guessed: string
name: unpack_data
arguments: label: D842
type_guessed: string
name: unpack_data
arguments: label: D608
type_guessed: string
name: unpack_data
arguments: label: D1792
type_guessed: string
name: unpack_data
arguments: label: D708
type_guessed: string
name: unpack_data
arguments: label: D1344
type_guessed: string
name: unpack_data
arguments: label: D2598
type_guessed: string
name: unpack_data
arguments: label: D1585
type_guessed: string
name: unpack_data
arguments: label: D2144
type_guessed: string
name: unpack_data
arguments: label: D2712
type_guessed: string
name: unpack_data
arguments: label: D2420
type_guessed: string
name: unpack_data
arguments: label: D841
type_guessed: string
name: unpack_data
arguments: label: D50
type_guessed: string
name: unpack_data
arguments: label: D2543
type_guessed: string
name: unpack_data
arguments: label: D1649
type_guessed: string
name: unpack_data
arguments: label: D1271
type_guessed: string
name: unpack_data
arguments: label: D1260
type_guessed: string
name: unpack_data
arguments: label: D916
type_guessed: string
name: unpack_data
arguments: label: D2284
type_guessed: string
name: unpack_data
arguments: label: D663
type_guessed: string
name: unpack_data
arguments: label: D913
type_guessed: string
name: unpack_data
arguments: label: D2336
type_guessed: string
name: unpack_data
arguments: label: D2121
type_guessed: string
name: unpack_data
arguments: label: D925
type_guessed: string
name: unpack_data
arguments: label: D2447
type_guessed: string
name: unpack_data
arguments: label: D564
type_guessed: string
name: unpack_data
arguments: label: D810
type_guessed: string
name: unpack_data
arguments: label: D2506
type_guessed: string
name: unpack_data
arguments: label: D2275
type_guessed: string
name: unpack_data
arguments: label: D60
type_guessed: string
name: unpack_data
arguments: label: D1782
type_guessed: string
name: unpack_data
arguments: label: D1821
type_guessed: string
name: unpack_data
arguments: label: D2046
type_guessed: string
name: unpack_data
arguments: label: D1037
type_guessed: string
name: unpack_data
arguments: label: D1293
type_guessed: string
name: unpack_data
arguments: label: D998
type_guessed: string
name: unpack_data
arguments: label: D2128
type_guessed: string
name: unpack_data
arguments: label: D2369
type_guessed: string
name: unpack_data
arguments: label: D1002
type_guessed: string
name: unpack_data
arguments: label: D2312
type_guessed: string
name: unpack_data
arguments: label: D220
type_guessed: string
name: unpack_data
arguments: label: D804
type_guessed: string
name: unpack_data
arguments: label: D566
type_guessed: string
name: unpack_data
arguments: label: D2085
type_guessed: string
name: unpack_data
arguments: label: D1300
type_guessed: string
name: unpack_data
arguments: label: D1317
type_guessed: string
name: unpack_data
arguments: label: D1393
type_guessed: string
name: unpack_data
arguments: label: D828
type_guessed: string
name: unpack_data
arguments: label: D989
type_guessed: string
name: unpack_data
arguments: label: D2131
type_guessed: string
name: unpack_data
arguments: label: D2155
type_guessed: string
name: unpack_data
arguments: label: D2625
type_guessed: string
name: unpack_data
arguments: label: D649
type_guessed: string
name: unpack_data
arguments: label: D2554
type_guessed: string
name: unpack_data
arguments: label: D872
type_guessed: string
name: unpack_data
arguments: label: D2240
type_guessed: string
name: unpack_data
arguments: label: D1000
type_guessed: string
name: unpack_data
arguments: label: D1635
type_guessed: string
name: unpack_data
arguments: label: D1159
type_guessed: string
name: unpack_data
arguments: label: D1714
type_guessed: string
name: unpack_data
arguments: label: D2387
type_guessed: string
name: unpack_data
arguments: label: D861
type_guessed: string
name: unpack_data
arguments: label: D562
type_guessed: string
name: unpack_data
arguments: label: D25
type_guessed: string
name: unpack_data
arguments: label: D1200
type_guessed: string
name: unpack_data
arguments: label: D575
type_guessed: string
name: unpack_data
arguments: label: D2347
type_guessed: string
name: unpack_data
arguments: label: D1023
type_guessed: string
name: unpack_data
arguments: label: D229
type_guessed: string
name: unpack_data
arguments: label: D1069
type_guessed: string
name: unpack_data
arguments: label: D1126
type_guessed: string
name: unpack_data
arguments: label: D2624
type_guessed: string
name: unpack_data
arguments: label: D755
type_guessed: string
name: unpack_data
arguments: label: D443
type_guessed: string
name: unpack_data
arguments: label: D288
type_guessed: string
name: unpack_data
arguments: label: D112
type_guessed: string
name: unpack_data
arguments: label: D1179
type_guessed: string
name: unpack_data
arguments: label: D2333
type_guessed: string
name: unpack_data
arguments: label: D1688
type_guessed: string
name: unpack_data
arguments: label: D2238
type_guessed: string
name: unpack_data
arguments: label: D2223
type_guessed: string
name: unpack_data
arguments: label: D16
type_guessed: string
name: unpack_data
arguments: label: D795
type_guessed: string
name: unpack_data
arguments: label: D1209
type_guessed: string
name: unpack_data
arguments: label: D2782
type_guessed: f64
name: unpack_data
arguments: label: D2669
type_guessed: string
name: unpack_data
arguments: label: D2103
type_guessed: string
name: unpack_data
arguments: label: D1494
type_guessed: string
name: unpack_data
arguments: label: D1801
type_guessed: f64
name: unpack_data
arguments: label: D1166
type_guessed: string
name: unpack_data
arguments: label: D1720
type_guessed: string
name: unpack_data
arguments: label: D2753
type_guessed: string
name: unpack_data
arguments: label: D2798
type_guessed: string
name: unpack_data
arguments: label: D809
type_guessed: string
name: unpack_data
arguments: label: D2674
type_guessed: string
name: unpack_data
arguments: label: D2829
type_guessed: string
name: unpack_data
arguments: label: D2519
type_guessed: string
name: unpack_data
arguments: label: D1662
type_guessed: string
name: unpack_data
arguments: label: D2105
type_guessed: string
name: unpack_data
arguments: label: D2611
type_guessed: string
name: unpack_data
arguments: label: D2306
type_guessed: string
name: unpack_data
arguments: label: D511
type_guessed: string
name: unpack_data
arguments: label: D334
type_guessed: string
name: unpack_data
arguments: label: D2255
type_guessed: string
name: unpack_data
arguments: label: D92
type_guessed: string
name: unpack_data
arguments: label: D1012
type_guessed: string
name: unpack_data
arguments: label: D2303
type_guessed: string
name: unpack_data
arguments: label: D1869
type_guessed: string
name: unpack_data
arguments: label: D2622
type_guessed: string
name: unpack_data
arguments: label: D617
type_guessed: string
name: unpack_data
arguments: label: D1129
type_guessed: string
name: unpack_data
arguments: label: D881
type_guessed: string
name: unpack_data
arguments: label: D437
type_guessed: string
name: unpack_data
arguments: label: D2653
type_guessed: string
name: unpack_data
arguments: label: D2074
type_guessed: string
name: unpack_data
arguments: label: D2127
type_guessed: string
name: unpack_data
arguments: label: D960
type_guessed: string
name: unpack_data
arguments: label: D383
type_guessed: string
name: unpack_data
arguments: label: D1334
type_guessed: string
name: unpack_data
arguments: label: D1563
type_guessed: string
name: unpack_data
arguments: label: D1500
type_guessed: string
name: unpack_data
arguments: label: D1082
type_guessed: string
name: unpack_data
arguments: label: D2532
type_guessed: string
name: unpack_data
arguments: label: D1712
type_guessed: string
name: unpack_data
arguments: label: D2017
type_guessed: string
name: unpack_data
arguments: label: D2614
type_guessed: string
name: unpack_data
arguments: label: D477
type_guessed: string
name: unpack_data
arguments: label: D829
type_guessed: string
name: unpack_data
arguments: label: D168
type_guessed: string
name: unpack_data
arguments: label: D2381
type_guessed: string
name: unpack_data
arguments: label: D2571
type_guessed: string
name: unpack_data
arguments: label: D1816
type_guessed: string
name: unpack_data
arguments: label: D2364
type_guessed: string
name: unpack_data
arguments: label: D1486
type_guessed: string
name: unpack_data
arguments: label: D199
type_guessed: string
name: unpack_data
arguments: label: D1690
type_guessed: string
name: unpack_data
arguments: label: D2015
type_guessed: string
name: unpack_data
arguments: label: D847
type_guessed: string
name: unpack_data
arguments: label: D228
type_guessed: string
name: unpack_data
arguments: label: D2715
type_guessed: string
name: unpack_data
arguments: label: D1673
type_guessed: string
name: unpack_data
arguments: label: D2615
type_guessed: string
name: unpack_data
arguments: label: D384
type_guessed: string
name: unpack_data
arguments: label: D499
type_guessed: string
name: unpack_data
arguments: label: D2325
type_guessed: string
name: unpack_data
arguments: label: D679
type_guessed: string
name: unpack_data
arguments: label: D418
type_guessed: string
name: unpack_data
arguments: label: D1026
type_guessed: string
name: unpack_data
arguments: label: D876
type_guessed: string
name: unpack_data
arguments: label: D483
type_guessed: string
name: unpack_data
arguments: label: D1368
type_guessed: string
name: unpack_data
arguments: label: D68
type_guessed: string
name: unpack_data
arguments: label: D1879
type_guessed: string
name: unpack_data
arguments: label: D808
type_guessed: string
name: unpack_data
arguments: label: D1332
type_guessed: string
name: unpack_data
arguments: label: D1093
type_guessed: string
name: unpack_data
arguments: label: D2411
type_guessed: string
name: unpack_data
arguments: label: D2451
type_guessed: string
name: unpack_data
arguments: label: D1906
type_guessed: string
name: unpack_data
arguments: label: D2796
type_guessed: string
name: unpack_data
arguments: label: D1627
type_guessed: string
name: unpack_data
arguments: label: D2726
type_guessed: string
name: unpack_data
arguments: label: D1018
type_guessed: string
name: unpack_data
arguments: label: D1238
type_guessed: string
name: unpack_data
arguments: label: D299
type_guessed: string
name: unpack_data
arguments: label: D820
type_guessed: string
name: unpack_data
arguments: label: D1493
type_guessed: string
name: unpack_data
arguments: label: D2095
type_guessed: string
name: unpack_data
arguments: label: D1899
type_guessed: f64
name: unpack_data
arguments: label: D188
type_guessed: string
name: unpack_data
arguments: label: D194
type_guessed: string
name: unpack_data
arguments: label: D96
type_guessed: string
name: unpack_data
arguments: label: D1628
type_guessed: string
name: unpack_data
arguments: label: D2396
type_guessed: string
name: unpack_data
arguments: label: D2445
type_guessed: string
name: unpack_data
arguments: label: D2019
type_guessed: string
name: unpack_data
arguments: label: D1530
type_guessed: string
name: unpack_data
arguments: label: D419
type_guessed: string
name: unpack_data
arguments: label: D2629
type_guessed: string
name: unpack_data
arguments: label: D1440
type_guessed: string
name: unpack_data
arguments: label: D2497
type_guessed: string

tool: D1027: fault0.rt_prio

tool: D363: hv0.dc_volt

tool: D2162: conf0.max_acc

tool: D468: net0.cmd

tool: D976: net0.fb_d

tool: D2716: fault0.enable_pid

tool: D78: net0.cmd_d

tool: D1631: 3

tool: D1806: 4

tool: D2536: rev0.rt_prio

tool: D1038: rev1.rt_prio

tool: D1968: 5

tool: D1519: vel0.rt_prio

tool: D2476: vel1.rt_prio

tool: D2351: 6

tool: D379: stp0.rt_prio

tool: D1581: 7

tool: D2570: cauto0.rt_prio

tool: D331: 8

tool: D2603: pid0.rt_prio

tool: D2164: 9

tool: D1743: t2c0.rt_prio

tool: D572: 10

tool: D767: curpid0.rt_prio

tool: D1161: 11

tool: D328: pmsm0.rt_prio

tool: D1504: 12

tool: D486: pmsm_limits0.rt_prio

tool: D1904: 13

tool: D56: idq0.rt_prio

tool: D2044: 14

tool: D251: hv0.rt_prio

tool: D2457: 15

tool: D441: sim0.rt_prio

tool: D609: term0.rt_prio

tool: D2768: rev0.rev

tool: D1147: conf0.cmd_rev

tool: D2130: vel0.pos_out

tool: D2210: conf0.max_vel

tool: D1017: stp0.max_vel

tool: D1055: stp0.max_acc

tool: D2552: vel0.pos_in

tool: D1870: rev0.out

tool: D1875: vel0.en

tool: D1824: vel0.vel

tool: D426: 500

tool: D2472: vel0.w

tool: D745: pid0.pos_ext_cmd

tool: D1626: pid0.vel_ext_cmd

tool: D241: rev1.rev

tool: D2198: conf0.fb_rev

tool: D947: rev1.out

tool: D233: vel1.pos_in

tool: D1052: vel1.en

tool: D206: cauto0.fb_in

tool: D2502: vel1.pos_out

tool: D879: conf0.j

tool: D341: vel1.j

tool: D2207: vel1.torque

tool: D1406: pmsm0.torque

tool: D1: vel1.vel

tool: D706: net0.fb

tool: D2458: cauto0.fb_out

tool: D1041: pid0.pos_fb

tool: D603: pid0.vel_fb

tool: D245: fault0.max_dc_cur

tool: D1039: conf0.max_dc_cur

tool: D447: fault0.max_ac_cur

tool: D307: conf0.max_ac_cur

tool: D539: fault0.max_dc_volt

tool: D2513: conf0.max_dc_volt

tool: D588: fault0.max_hv_temp

tool: D2828: conf0.max_hv_temp

tool: D1663: fault0.max_core_temp

tool: D2285: conf0.max_core_temp

tool: D2120: fault0.max_motor_temp

tool: D83: conf0.max_motor_temp

tool: D1197: fault0.max_pos_error

tool: D593: conf0.max_pos_error

tool: D842: fault0.high_dc_volt

tool: D608: conf0.high_dc_volt

tool: D1792: fault0.high_hv_temp

tool: D708: conf0.high_hv_temp

tool: D1344: fault0.high_motor_temp

tool: D2598: conf0.high_motor_temp

tool: D1585: fault0.low_dc_volt

tool: D2144: conf0.low_dc_volt

tool: D2712: fault0.fan_hv_temp

tool: D2420: conf0.fan_hv_temp

tool: D841: fault0.fan_core_temp

tool: D50: conf0.fan_core_temp

tool: D2543: fault0.fan_motor_temp

tool: D1649: conf0.fan_motor_temp

tool: D1271: fault0.phase_on_start

tool: D1260: conf0.autophase

tool: D916: fault0.max_sat

tool: D2284: conf0.max_sat

tool: D663: fault0.reset

tool: D913: cauto0.start

tool: D2336: fault0.phase_start

tool: D2121: fault0.phase_ready

tool: D925: cauto0.ready

tool: D2447: fault0.pos_error

tool: D564: pid0.pos_error

tool: D810: fault0.sat

tool: D2506: pid0.saturated

tool: D2275: fault0.dc_volt

tool: D60: fault0.hv_temp

tool: D1782: hv0.hv_temp

tool: D1821: fault0.core_temp0

tool: D2046: net0.core_temp0

tool: D1037: fault0.core_temp1

tool: D1293: net0.core_temp1

tool: D998: fault0.motor_temp

tool: D2128: net0.motor_temp

tool: D2369: fault0.dc_cur

tool: D1002: hv0.dc_cur

tool: D2312: fault0.fb_error

tool: D220: net0.fb_error

tool: D804: fault0.cmd

tool: D566: fault0.fb

tool: D2085: cauto0.start_offset

tool: D1300: fault0.start_offset

tool: D1317: curpid0.max_cur

tool: D1393: fault0.cur

tool: D828: io0.brake

tool: D989: fault0.brake

tool: D2131: io0.fan

tool: D2155: fault0.hv_fan

tool: D2625: hv0.enable

tool: D649: fault0.enable_out

tool: D2554: pid0.enable

tool: D872: net0.enable

tool: D2240: fault0.enable

tool: D1000: io0.green

tool: D1635: fault0.led_green

tool: D1159: io0.red

tool: D1714: fault0.led_red

tool: D2387: term0.fault

tool: D861: fault0.state

tool: D562: cauto0.mag_offset

tool: D25: conf0.fb_offset

tool: D1200: cauto0.cur

tool: D575: conf0.phase_cur

tool: D2347: cauto0.time

tool: D1023: conf0.phase_time

tool: D229: pid0.j

tool: D1069: pid0.p

tool: D1126: conf0.p

tool: D2624: pid0.pos_p

tool: D755: conf0.pos_p

tool: D443: pid0.vel_p

tool: D288: conf0.vel_p

tool: D112: pid0.acc_p

tool: D1179: conf0.acc_p

tool: D2333: pid0.acc_pi

tool: D1688: conf0.acc_pi

tool: D2238: pid0.max_usr_vel

tool: D2223: pid0.max_usr_acc

tool: D16: conf0.polecount

tool: D795: pid0.max_usr_torque

tool: D1209: conf0.max_force

tool: D2782: 4000

tool: D2669: pid0.pos_lp

tool: D2103: pid0.vel_lp

tool: D1494: pid0.acc_lp

tool: D1801: 1

tool: D1166: pid0.torque_ff

tool: D1720: pid0.vel_ff

tool: D2753: pid0.acc_ff

tool: D2798: conf0.l

tool: D809: t2c0.torque

tool: D2674: pid0.torque_cor_cmd

tool: D2829: t2c0.polecount

tool: D2519: conf0.psi

tool: D1662: t2c0.psi

tool: D2105: curpid0.id_cmd

tool: D2611: cauto0.i_d

tool: D2306: curpid0.iq_cmd

tool: D511: t2c0.cur

tool: D334: curpid0.dc_volt

tool: D2255: conf0.r

tool: D92: hv0.ac_volt

tool: D1012: curpid0.ac_volt

tool: D2303: curpid0.rd

tool: D1869: curpid0.rq

tool: D2622: curpid0.ld

tool: D617: curpid0.lq

tool: D1129: curpid0.ff

tool: D881: conf0.cur_ff

tool: D437: curpid0.kp

tool: D2653: conf0.cur_p

tool: D2074: curpid0.ki

tool: D2127: conf0.cur_i

tool: D960: curpid0.kind

tool: D383: conf0.cur_ind

tool: D1334: curpid0.ud

tool: D1563: pmsm0.ud

tool: D1500: curpid0.uq

tool: D1082: pmsm0.uq

tool: D2532: pmsm0.vel

tool: D1712: pmsm0.r

tool: D2017: pmsm0.ld

tool: D2614: pmsm0.lq

tool: D477: pmsm0.psi

tool: D829: curpid0.id_fb

tool: D168: pmsm0.id

tool: D2381: pmsm0.iq

tool: D2571: curpid0.iq_fb

tool: D1816: curpid0.indd_fb

tool: D2364: pmsm0.indd

tool: D1486: pmsm0.indq

tool: D199: curpid0.indq_fb

tool: D1690: pmsm0.polecount

tool: D2015: hv0.iq

tool: D847: pmsm_limits0.r

tool: D228: pmsm_limits0.ld

tool: D2715: pmsm_limits0.lq

tool: D1673: pmsm_limits0.psi

tool: D2615: pmsm_limits0.polecount

tool: D384: pmsm_limits0.ac_volt

tool: D499: pmsm_limits0.indq

tool: D2325: pmsm_limits0.iq

tool: D679: pid0.max_torque

tool: D418: pmsm_limits0.next_max_torque

tool: D1026: pid0.min_torque

tool: D876: pmsm_limits0.next_min_torque

tool: D483: pid0.max_vel

tool: D1368: pmsm_limits0.abs_max_vel

tool: D68: idq0.d

tool: D1879: idq0.q

tool: D808: idq0.polecount

tool: D1332: hv0.a

tool: D1093: idq0.a

tool: D2411: hv0.b

tool: D2451: idq0.b

tool: D1906: hv0.rev

tool: D2796: conf0.out_rev

tool: D1627: idq0.pos

tool: D2726: cauto0.pos

tool: D1018: sim0.res

tool: D1238: conf0.cmd_res

tool: D299: term0.wave0

tool: D820: term0.wave1

tool: D1493: term0.wave2

tool: D2095: term0.wave3

tool: D1899: 20

tool: D188: term0.gain0

tool: D194: term0.gain1

tool: D96: term0.gain2

tool: D1628: term0.gain3

tool: D2396: adc0.sin_gain

tool: D2445: conf0.sin_gain

tool: D2019: adc0.cos_gain

tool: D1530: conf0.cos_gain

tool: D419: adc0.sin_offset

tool: D2629: conf0.sin_offset

tool: D1440: adc0.cos_offset

tool: D2497: conf0.cos_offset

assistant: ```c
void link_pid() {
  set_hal_pin("fault0.rt_prio", 3.0);
  set_hal_pin("rev0.rt_prio", 4.0);
  set_hal_pin("rev1.rt_prio", 4.0);
  set_hal_pin("vel0.rt_prio", 5.0);
  set_hal_pin("vel1.rt_prio", 5.0);
  set_hal_pin("stp0.rt_prio", 6.0);
  set_hal_pin("cauto0.rt_prio", 7.0);
  set_hal_pin("pid0.rt_prio", 8.0);
  set_hal_pin("t2c0.rt_prio", 9.0);
  set_hal_pin("curpid0.rt_prio", 10.0);
  set_hal_pin("pmsm0.rt_prio", 11.0);
  set_hal_pin("pmsm_limits0.rt_prio", 12.0);
  set_hal_pin("idq0.rt_prio", 13.0);
  set_hal_pin("hv0.rt_prio", 14.0);
  set_hal_pin("sim0.rt_prio", 15.0);
  set_hal_pin("term0.rt_prio", 15.0);
  link_hal_pins("conf0.cmd_rev", "rev0.rev");
  link_hal_pins("vel0.pos_out", "net0.cmd");
  link_hal_pins("conf0.max_vel", "stp0.max_vel");
  link_hal_pins("conf0.max_acc", "stp0.max_acc");
  link_hal_pins("rev0.out", "vel0.pos_in");
  link_hal_pins("fault0.enable_pid", "vel0.en");
  link_hal_pins("vel0.vel", "net0.cmd_d");
  set_hal_pin("vel0.w", 500.0);
  link_hal_pins("net0.cmd", "pid0.pos_ext_cmd");
  link_hal_pins("net0.cmd_d", "pid0.vel_ext_cmd");
  link_hal_pins("conf0.fb_rev", "rev1.rev");
  link_hal_pins("rev1.out", "vel1.pos_in");
  link_hal_pins("fault0.enable_pid", "vel1.en");
  link_hal_pins("vel1.pos_out", "cauto0.fb_in");
  link_hal_pins("conf0.j", "vel1.j");
  link_hal_pins("pmsm0.torque", "vel1.torque");
  link_hal_pins("vel1.vel", "net0.fb_d");
  link_hal_pins("cauto0.fb_out", "net0.fb");
  link_hal_pins("net0.fb", "pid0.pos_fb");
  link_hal_pins("net0.fb_d", "pid0.vel_fb");
  link_hal_pins("conf0.max_dc_cur", "fault0.max_dc_cur");
  link_hal_pins("conf0.max_ac_cur", "fault0.max_ac_cur");
  link_hal_pins("conf0.max_dc_volt", "fault0.max_dc_volt");
  link_hal_pins("conf0.max_hv_temp", "fault0.max_hv_temp");
  link_hal_pins("conf0.max_core_temp", "fault0.max_core_temp");
  link_hal_pins("conf0.max_motor_temp", "fault0.max_motor_temp");
  link_hal_pins("conf0.max_pos_error", "fault0.max_pos_error");
  link_hal_pins("conf0.high_dc_volt", "fault0.high_dc_volt");
  link_hal_pins("conf0.high_hv_temp", "fault0.high_hv_temp");
  link_hal_pins("conf0.high_motor_temp", "fault0.high_motor_temp");
  link_hal_pins("conf0.low_dc_volt", "fault0.low_dc_volt");
  link_hal_pins("conf0.fan_hv_temp", "fault0.fan_hv_temp");
  link_hal_pins("conf0.fan_core_temp", "fault0.fan_core_temp");
  link_hal_pins("conf0.fan_motor_temp", "fault0.fan_motor_temp");
  link_hal_pins("conf0.autophase", "fault0.phase_on_start");
  link_hal_pins("conf0.max_sat", "fault0.max_sat");
  set_hal_pin("fault0.reset", 0.0);
  link_hal_pins("fault0.phase_start", "cauto0.start");
  link_hal_pins("cauto0.ready", "fault0.phase_ready");
  link_hal_pins("pid0.pos_error", "fault0.pos_error");
  link_hal_pins("pid0.saturated", "fault0.sat");
  link_hal_pins("hv0.dc_volt", "fault0.dc_volt");
  link_hal_pins("hv0.hv_temp", "fault0.hv_temp");
  link_hal_pins("net0.core_temp0", "fault0.core_temp0");
  link_hal_pins("net0.core_temp1", "fault0.core_temp1");
  link_hal_pins("net0.motor_temp", "fault0.motor_temp");
  link_hal_pins("hv0.dc_cur", "fault0.dc_cur");
  link_hal_pins("net0.fb_error", "fault0.fb_error");
  link_hal_pins("net0.cmd", "fault0.cmd");
  link_hal_pins("rev1.out", "fault0.fb");
  link_hal_pins("fault0.start_offset", "cauto0.start_offset");
  link_hal_pins("fault0.cur", "curpid0.max_cur");
  link_hal_pins("fault0.brake", "io0.brake");
  link_hal_pins("fault0.hv_fan", "io0.fan");
  link_hal_pins("fault0.enable_out", "hv0.enable");
  link_hal_pins("fault0.enable_pid", "pid0.enable");
  link_hal_pins("net0.enable", "fault0.enable");
  link_hal_pins("fault0.led_green", "io0.green");
  link_hal_pins("fault0.led_red", "io0.red");
  link_hal_pins("fault0.state", "term0.fault");
  link_hal_pins("conf0.fb_offset", "cauto0.mag_offset");
  link_hal_pins("conf0.phase_cur", "cauto0.cur");
  link_hal_pins("conf0.phase_time", "cauto0.time");
  link_hal_pins("conf0.j", "pid0.j");
  link_hal_pins("conf0.p", "pid0.p");
  link_hal_pins("conf0.pos_p", "pid0.pos_p");
  link_hal_pins("conf0.vel_p", "pid0.vel_p");
  link_hal_pins("conf0.acc_p", "pid0.acc_p");
  link_hal_pins("conf0.acc_pi", "pid0.acc_pi");
  link_hal_pins("conf0.max_vel", "pid0.max_usr_vel");
  link_hal_pins("conf0.max_acc", "pid0.max_usr_acc");
  link_hal_pins("conf0.max_force", "pid0.max_usr_torque");
  set_hal_pin("pid0.pos_lp", 4000.0);
  set_hal_pin("pid0.vel_lp", 4000.0);
  set_hal_pin("pid0.acc_lp", 4000.0);
  set_hal_pin("pid0.torque_ff", 1.0);
  set_hal_pin("pid0.vel_ff", 1.0);
  set_hal_pin("pid0.acc_ff", 1.0);
  set_hal_pin("net0.enable", 1.0);
  link_hal_pins("pid0.torque_cor_cmd", "t2c0.torque");
  link_hal_pins("conf0.polecount", "t2c0.polecount");
  link_hal_pins("conf0.psi", "t2c0.psi");
  link_hal_pins("cauto0.i_d", "curpid0.id_cmd");
  link_hal_pins("t2c0.cur", "curpid0.iq_cmd");
  link_hal_pins("hv0.dc_volt", "curpid0.dc_volt");
  link_hal_pins("hv0.ac_volt", "curpid0.ac_volt");
  link_hal_pins("conf0.r", "curpid0.rd");
  link_hal_pins("conf0.r", "curpid0.rq");
  link_hal_pins("conf0.l", "curpid0.ld");
  link_hal_pins("conf0.l", "curpid0.lq");
  link_hal_pins("conf0.cur_ff", "curpid0.ff");
  link_hal_pins("conf0.cur_p", "curpid0.kp");
  link_hal_pins("conf0.cur_i", "curpid0.ki");
  link_hal_pins("conf0.cur_ind", "curpid0.kind");
  link_hal_pins("curpid0.ud", "pmsm0.ud");
  link_hal_pins("curpid0.uq", "pmsm0.uq");
  link_hal_pins("net0.fb_d", "pmsm0.vel");
  link_hal_pins("conf0.r", "pmsm0.r");
  link_hal_pins("conf0.l", "pmsm0.ld");
  link_hal_pins("conf0.l", "pmsm0.lq");
  link_hal_pins("conf0.psi", "pmsm0.psi");
  link_hal_pins("pmsm0.id", "curpid0.id_fb");
  link_hal_pins("pmsm0.iq", "curpid0.iq_fb");
  link_hal_pins("pmsm0.indd", "curpid0.indd_fb");
  link_hal_pins("pmsm0.indq", "curpid0.indq_fb");
  link_hal_pins("conf0.polecount", "pmsm0.polecount");
  link_hal_pins("pmsm0.iq", "hv0.iq");
  link_hal_pins("conf0.r", "pmsm_limits0.r");
  link_hal_pins("conf0.l", "pmsm_limits0.ld");
  link_hal_pins("conf0.l", "pmsm_limits0.lq");
  link_hal_pins("conf0.psi", "pmsm_limits0.psi");
  link_hal_pins("conf0.polecount", "pmsm_limits0.polecount");
  link_hal_pins("hv0.ac_volt", "pmsm_limits0.ac_volt");
  link_hal_pins("pmsm0.indq", "pmsm_limits0.indq");
  link_hal_pins("pmsm0.iq", "pmsm_limits0.iq");
  link_hal_pins("pmsm_limits0.next_max_torque", "pid0.max_torque");
  link_hal_pins("pmsm_limits0.next_min_torque", "pid0.min_torque");
  link_hal_pins("pmsm_limits0.abs_max_vel", "pid0.max_vel");
  link_hal_pins("curpid0.ud", "idq0.d");
  link_hal_pins("curpid0.uq", "idq0.q");
  link_hal_pins("conf0.polecount", "idq0.polecount");
  link_hal_pins("idq0.a", "hv0.a");
  link_hal_pins("idq0.b", "hv0.b");
  link_hal_pins("conf0.out_rev", "hv0.rev");
  link_hal_pins("cauto0.pos", "idq0.pos");
  link_hal_pins("conf0.cmd_res", "sim0.res");
  link_hal_pins("net0.cmd", "term0.wave0");
  link_hal_pins("net0.fb", "term0.wave1");
  link_hal_pins("net0.cmd_d", "term0.wave2");
  link_hal_pins("net0.fb_d", "term0.wave3");
  set_hal_pin("term0.gain0", 20.0);
  set_hal_pin("term0.gain1", 20.0);
  set_hal_pin("term0.gain2", 1.0);
  set_hal_pin("term0.gain3", 1.0);
  link_hal_pins("conf0.sin_gain", "adc0.sin_gain");
  link_hal_pins("conf0.cos_gain", "adc0.cos_gain");
  link_hal_pins("conf0.sin_offset", "adc0.sin_offset");
  link_hal_pins("conf0.cos_offset", "adc0.cos_offset");
}
```