A const &inverse() { if (step < 2) { V_type W = fortran_view(a); _step1(W); _step2(W); } return a; }
/* the manual robot and the auto robot separate */ void sonic_pw1(void) { SONICx_ENABLE(0x03); SPEED_STOP; msg("sonic pole part ,go?"); _step1(); SPEED_STOP; msg("go on adjust ?"); /* adjust to handover position */ pole_sonic(0x03); SONICx_DISABLE(0x03); }
void sys_sonic(void) { rt_uint32_t key_value; while(1) { LCD_Clear(); LCD_SetXY(0,0); LCD_WriteString("====pole_test===="); LCD_SetXY(0, 1); LCD_WriteString("1.step1"); LCD_SetXY(0, 2); LCD_WriteString("2.xypid"); LCD_SetXY(0, 3); LCD_WriteString("3.pw1"); LCD_SetXY(0, 4); LCD_WriteString("4.dis"); LCD_SetXY(10, 1); LCD_WriteString("5.sd save"); LCD_SetXY(10, 2); LCD_WriteString("6."); LCD_SetXY(10, 3); LCD_WriteString("7."); LCD_SetXY(10, 4); LCD_WriteString("8."); if(rt_mb_recv(&Mb_Key, &key_value, RT_WAITING_NO) == RT_EOK) { switch(key_value) { case key1: _step1(); break; case key2: pw1_pid(); break; case key3: sonic_pw1(); break; case key4: Input_DoubleValue(&std_fdis, "f dis"); Input_DoubleValue(&std_sdis, "s dis"); case key5: { int _sonicx = 0 ; Input_IntValue(&_sonicx, "_sonicx"); sonic_SDsave(_sonicx, "sonic_data", 500); } break; case keyback: return; } } Delay_ms(10); } }
ViewType const & inverse() { if (step<2) { V_type W = fortran_view(V); _step1(W); _step2(W);} return V;}
VT det() { V_type W = fortran_view(V); _step1(W); _compute_det(W); return _det;}
value_type det() { V_type W = fortran_view(a); _step1(W); _compute_det(W); return _det; }