浏览代码

Updates for G33-LCD interface

LVD-AC 8 年前
父节点
当前提交
4bc79ec877

+ 50
- 42
Marlin/Marlin_main.cpp 查看文件

5168
       SERIAL_PROTOCOL_F(f, 2);
5168
       SERIAL_PROTOCOL_F(f, 2);
5169
     }
5169
     }
5170
 
5170
 
5171
+    inline void print_G33_settings(const bool end_stops, const bool tower_angles){ // TODO echo these to LCD ???
5172
+      SERIAL_PROTOCOLPAIR(".Height:", DELTA_HEIGHT + home_offset[Z_AXIS]);
5173
+      if (end_stops) {
5174
+        print_signed_float(PSTR("  Ex"), endstop_adj[A_AXIS]);
5175
+        print_signed_float(PSTR("Ey"), endstop_adj[B_AXIS]);
5176
+        print_signed_float(PSTR("Ez"), endstop_adj[C_AXIS]);
5177
+        SERIAL_PROTOCOLPAIR("    Radius:", delta_radius);
5178
+      }
5179
+      SERIAL_EOL();
5180
+      if (tower_angles) {
5181
+        SERIAL_PROTOCOLPGM(".Tower angle :  ");
5182
+        print_signed_float(PSTR("Tx"), delta_tower_angle_trim[A_AXIS]);
5183
+        print_signed_float(PSTR("Ty"), delta_tower_angle_trim[B_AXIS]);
5184
+        SERIAL_PROTOCOLLNPGM("  Tz:+0.00");
5185
+      }
5186
+    }
5187
+
5171
     inline void gcode_G33() {
5188
     inline void gcode_G33() {
5172
 
5189
 
5173
       const int8_t probe_points = parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
5190
       const int8_t probe_points = parser.intval('P', DELTA_CALIBRATION_DEFAULT_POINTS);
5174
       if (!WITHIN(probe_points, 1, 7)) {
5191
       if (!WITHIN(probe_points, 1, 7)) {
5175
-        SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (1 to 7).");
5192
+        SERIAL_PROTOCOLLNPGM("?(P)oints is implausible (1-7).");
5176
         return;
5193
         return;
5177
       }
5194
       }
5178
 
5195
 
5256
 
5273
 
5257
       // print settings
5274
       // print settings
5258
 
5275
 
5259
-      SERIAL_PROTOCOLPGM("Checking... AC");
5276
+      const char *checkingac = PSTR("Checking... AC"); // TODO: Make translatable string
5277
+      serialprintPGM(checkingac);
5260
       if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)");
5278
       if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)");
5261
       SERIAL_EOL();
5279
       SERIAL_EOL();
5262
-      LCD_MESSAGEPGM("Checking... AC"); // TODO: Make translatable string
5280
+      lcd_setstatusPGM(checkingac);
5263
 
5281
 
5264
-      SERIAL_PROTOCOLPAIR(".Height:", DELTA_HEIGHT + home_offset[Z_AXIS]);
5265
-      if (!_1p_calibration) {
5266
-        print_signed_float(PSTR("  Ex"), endstop_adj[A_AXIS]);
5267
-        print_signed_float(PSTR("Ey"), endstop_adj[B_AXIS]);
5268
-        print_signed_float(PSTR("Ez"), endstop_adj[C_AXIS]);
5269
-        SERIAL_PROTOCOLPAIR("    Radius:", delta_radius);
5270
-      }
5271
-      SERIAL_EOL();
5272
-      if (_7p_calibration && towers_set) {
5273
-        SERIAL_PROTOCOLPGM(".Tower angle :  ");
5274
-        print_signed_float(PSTR("Tx"), delta_tower_angle_trim[A_AXIS]);
5275
-        print_signed_float(PSTR("Ty"), delta_tower_angle_trim[B_AXIS]);
5276
-        SERIAL_PROTOCOLPGM("  Tz:+0.00");
5277
-        SERIAL_EOL();
5278
-      }
5282
+      print_G33_settings(!_1p_calibration, _7p_calibration && towers_set);
5279
 
5283
 
5280
       #if DISABLED(PROBE_MANUALLY)
5284
       #if DISABLED(PROBE_MANUALLY)
5281
         home_offset[Z_AXIS] -= probe_pt(dx, dy, stow_after_each, 1, false); // 1st probe to set height
5285
         home_offset[Z_AXIS] -= probe_pt(dx, dy, stow_after_each, 1, false); // 1st probe to set height
5345
             N++;
5349
             N++;
5346
           }
5350
           }
5347
         zero_std_dev_old = zero_std_dev;
5351
         zero_std_dev_old = zero_std_dev;
5348
-        NOMORE(zero_std_dev_min, zero_std_dev);
5349
         zero_std_dev = round(sqrt(S2 / N) * 1000.0) / 1000.0 + 0.00001;
5352
         zero_std_dev = round(sqrt(S2 / N) * 1000.0) / 1000.0 + 0.00001;
5350
 
5353
 
5351
         // Solve matrices
5354
         // Solve matrices
5436
 
5439
 
5437
           recalc_delta_settings(delta_radius, delta_diagonal_rod);
5440
           recalc_delta_settings(delta_radius, delta_diagonal_rod);
5438
         }
5441
         }
5442
+        NOMORE(zero_std_dev_min, zero_std_dev);
5439
 
5443
 
5440
-         // print report
5444
+        // print report
5441
 
5445
 
5442
         if (verbose_level != 1) {
5446
         if (verbose_level != 1) {
5443
           SERIAL_PROTOCOLPGM(".    ");
5447
           SERIAL_PROTOCOLPGM(".    ");
5470
             #endif
5474
             #endif
5471
               {
5475
               {
5472
                 SERIAL_PROTOCOLPGM("std dev:");
5476
                 SERIAL_PROTOCOLPGM("std dev:");
5473
-                SERIAL_PROTOCOL_F(zero_std_dev, 3);
5477
+                SERIAL_PROTOCOL_F(zero_std_dev_min, 3);
5474
               }
5478
               }
5475
             SERIAL_EOL();
5479
             SERIAL_EOL();
5476
-            LCD_MESSAGEPGM("Calibration OK"); // TODO: Make translatable string
5480
+            char mess[21];
5481
+            sprintf_P(mess, PSTR("Calibration sd:"));
5482
+            if (zero_std_dev_min < 1)
5483
+              sprintf_P(&mess[15], PSTR("0.%03i"), (int)round(zero_std_dev_min * 1000.0));
5484
+            else
5485
+              sprintf_P(&mess[15], PSTR("%03i.x"), (int)round(zero_std_dev_min));
5486
+            lcd_setstatus(mess);
5487
+            print_G33_settings(!_1p_calibration, _7p_calibration && towers_set);
5488
+            serialprintPGM(save_message);
5489
+            SERIAL_EOL();
5477
           }
5490
           }
5478
           else {                                                     // !end iterations
5491
           else {                                                     // !end iterations
5479
-            char mess[15] = "No convergence";
5492
+            char mess[15];
5480
             if (iterations < 31)
5493
             if (iterations < 31)
5481
               sprintf_P(mess, PSTR("Iteration : %02i"), (int)iterations);
5494
               sprintf_P(mess, PSTR("Iteration : %02i"), (int)iterations);
5495
+            else
5496
+              sprintf_P(mess, PSTR("No convergence"));
5482
             SERIAL_PROTOCOL(mess);
5497
             SERIAL_PROTOCOL(mess);
5483
             SERIAL_PROTOCOL_SP(36);
5498
             SERIAL_PROTOCOL_SP(36);
5484
             SERIAL_PROTOCOLPGM("std dev:");
5499
             SERIAL_PROTOCOLPGM("std dev:");
5485
             SERIAL_PROTOCOL_F(zero_std_dev, 3);
5500
             SERIAL_PROTOCOL_F(zero_std_dev, 3);
5486
             SERIAL_EOL();
5501
             SERIAL_EOL();
5487
             lcd_setstatus(mess);
5502
             lcd_setstatus(mess);
5503
+            print_G33_settings(!_1p_calibration, _7p_calibration && towers_set);
5488
           }
5504
           }
5489
-          SERIAL_PROTOCOLPAIR(".Height:", DELTA_HEIGHT + home_offset[Z_AXIS]);
5490
-          if (!_1p_calibration) {
5491
-            print_signed_float(PSTR("  Ex"), endstop_adj[A_AXIS]);
5492
-            print_signed_float(PSTR("Ey"), endstop_adj[B_AXIS]);
5493
-            print_signed_float(PSTR("Ez"), endstop_adj[C_AXIS]);
5494
-            SERIAL_PROTOCOLPAIR("    Radius:", delta_radius);
5495
-          }
5496
-          SERIAL_EOL();
5497
-          if (_7p_calibration && towers_set) {
5498
-            SERIAL_PROTOCOLPGM(".Tower angle :  ");
5499
-            print_signed_float(PSTR("Tx"), delta_tower_angle_trim[A_AXIS]);
5500
-            print_signed_float(PSTR("Ty"), delta_tower_angle_trim[B_AXIS]);
5501
-            SERIAL_PROTOCOLPGM("  Tz:+0.00");
5502
-            SERIAL_EOL();
5503
-          }
5504
-          if ((zero_std_dev >= test_precision || zero_std_dev <= calibration_precision) && iterations > force_iterations)
5505
-            serialprintPGM(save_message);
5506
-            SERIAL_EOL();
5507
         }
5505
         }
5508
         else {                                                       // dry run
5506
         else {                                                       // dry run
5509
-          SERIAL_PROTOCOLPGM("End DRY-RUN");
5507
+          const char *enddryrun = PSTR("End DRY-RUN");
5508
+          serialprintPGM(enddryrun);
5510
           SERIAL_PROTOCOL_SP(39);
5509
           SERIAL_PROTOCOL_SP(39);
5511
           SERIAL_PROTOCOLPGM("std dev:");
5510
           SERIAL_PROTOCOLPGM("std dev:");
5512
           SERIAL_PROTOCOL_F(zero_std_dev, 3);
5511
           SERIAL_PROTOCOL_F(zero_std_dev, 3);
5513
           SERIAL_EOL();
5512
           SERIAL_EOL();
5513
+
5514
+          char mess[21];
5515
+          sprintf_P(mess, enddryrun);
5516
+          sprintf_P(&mess[11], PSTR(" sd:"));
5517
+          if (zero_std_dev < 1)
5518
+            sprintf_P(&mess[15], PSTR("0.%03i"), (int)round(zero_std_dev * 1000.0));
5519
+          else
5520
+            sprintf_P(&mess[15], PSTR("%03i.x"), (int)round(zero_std_dev));
5521
+          lcd_setstatus(mess);
5514
         }
5522
         }
5515
 
5523
 
5516
         endstops.enable(true);
5524
         endstops.enable(true);

+ 2
- 0
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h 查看文件

482
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
482
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
483
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
483
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
484
     #define DELTA_CALIBRATION_RADIUS 73.5 // mm
484
     #define DELTA_CALIBRATION_RADIUS 73.5 // mm
485
+    // Set the steprate for papertest probing
486
+    #define PROBE_MANUALLY_STEP 0.025
485
   #endif
487
   #endif
486
 
488
 
487
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
489
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).

+ 2
- 0
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h 查看文件

482
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
482
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
483
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
483
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
484
     #define DELTA_CALIBRATION_RADIUS 73.5 // mm
484
     #define DELTA_CALIBRATION_RADIUS 73.5 // mm
485
+    // Set the steprate for papertest probing
486
+    #define PROBE_MANUALLY_STEP 0.025
485
   #endif
487
   #endif
486
 
488
 
487
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
489
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).

+ 2
- 0
Marlin/example_configurations/delta/generic/Configuration.h 查看文件

472
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
472
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
473
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
473
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
474
     #define DELTA_CALIBRATION_RADIUS 121.5 // mm
474
     #define DELTA_CALIBRATION_RADIUS 121.5 // mm
475
+    // Set the steprate for papertest probing
476
+    #define PROBE_MANUALLY_STEP 0.025
475
   #endif
477
   #endif
476
 
478
 
477
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
479
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).

+ 2
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration.h 查看文件

472
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
472
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
473
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
473
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
474
     #define DELTA_CALIBRATION_RADIUS 78.0 // mm
474
     #define DELTA_CALIBRATION_RADIUS 78.0 // mm
475
+    // Set the steprate for papertest probing
476
+    #define PROBE_MANUALLY_STEP 0.025
475
   #endif
477
   #endif
476
 
478
 
477
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
479
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).

+ 2
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration.h 查看文件

458
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
458
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
459
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
459
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
460
     #define DELTA_CALIBRATION_RADIUS 110.0 // mm
460
     #define DELTA_CALIBRATION_RADIUS 110.0 // mm
461
+    // Set the steprate for papertest probing
462
+    #define PROBE_MANUALLY_STEP 0.025
461
   #endif
463
   #endif
462
 
464
 
463
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
465
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).

+ 2
- 0
Marlin/example_configurations/delta/kossel_xl/Configuration.h 查看文件

476
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
476
   #if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
477
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
477
     // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
478
     #define DELTA_CALIBRATION_RADIUS 121.5 // mm
478
     #define DELTA_CALIBRATION_RADIUS 121.5 // mm
479
+    // Set the steprate for papertest probing
480
+    #define PROBE_MANUALLY_STEP 0.025
479
   #endif
481
   #endif
480
 
482
 
481
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
483
   // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).

+ 3
- 0
Marlin/language_en.h 查看文件

713
 #ifndef MSG_DELTA_CALIBRATE_CENTER
713
 #ifndef MSG_DELTA_CALIBRATE_CENTER
714
   #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Calibrate Center")
714
   #define MSG_DELTA_CALIBRATE_CENTER          _UxGT("Calibrate Center")
715
 #endif
715
 #endif
716
+#ifndef MSG_DELTA_SETTINGS
717
+  #define MSG_DELTA_SETTINGS                  _UxGT("Show Delta Settings")
718
+#endif
716
 #ifndef MSG_DELTA_AUTO_CALIBRATE
719
 #ifndef MSG_DELTA_AUTO_CALIBRATE
717
   #define MSG_DELTA_AUTO_CALIBRATE            _UxGT("Auto Calibration")
720
   #define MSG_DELTA_AUTO_CALIBRATE            _UxGT("Auto Calibration")
718
 #endif
721
 #endif

+ 26
- 2
Marlin/ultralcd.cpp 查看文件

2500
       line_to_z(z_dest);
2500
       line_to_z(z_dest);
2501
 
2501
 
2502
       lcd_synchronize();
2502
       lcd_synchronize();
2503
-      move_menu_scale = 0.1;
2503
+      move_menu_scale = PROBE_MANUALLY_STEP;
2504
       lcd_goto_screen(lcd_move_z);
2504
       lcd_goto_screen(lcd_move_z);
2505
     }
2505
     }
2506
 
2506
 
2507
     float lcd_probe_pt(const float &lx, const float &ly) {
2507
     float lcd_probe_pt(const float &lx, const float &ly) {
2508
       _man_probe_pt(lx, ly);
2508
       _man_probe_pt(lx, ly);
2509
       KEEPALIVE_STATE(PAUSED_FOR_USER);
2509
       KEEPALIVE_STATE(PAUSED_FOR_USER);
2510
+      defer_return_to_status = true;
2510
       wait_for_user = true;
2511
       wait_for_user = true;
2511
       while (wait_for_user) idle();
2512
       while (wait_for_user) idle();
2512
       KEEPALIVE_STATE(IN_HANDLER);
2513
       KEEPALIVE_STATE(IN_HANDLER);
2514
+      defer_return_to_status = false;
2515
+      lcd_goto_previous_menu();
2513
       return current_position[Z_AXIS];
2516
       return current_position[Z_AXIS];
2514
     }
2517
     }
2515
 
2518
 
2518
     void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }
2521
     void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }
2519
     void _goto_center()  { _man_probe_pt(0,0); }
2522
     void _goto_center()  { _man_probe_pt(0,0); }
2520
 
2523
 
2524
+    void lcd_delta_G33_settings() {
2525
+      START_MENU();
2526
+      MENU_BACK(MSG_DELTA_CALIBRATE);
2527
+      float delta_height = DELTA_HEIGHT + home_offset[Z_AXIS], Tz = 0.00;
2528
+      MENU_ITEM_EDIT(float52, "Height", &delta_height, delta_height, delta_height);
2529
+      MENU_ITEM_EDIT(float43, "Ex", &endstop_adj[A_AXIS], -5.0, 5.0);
2530
+      MENU_ITEM_EDIT(float43, "Ey", &endstop_adj[B_AXIS], -5.0, 5.0);
2531
+      MENU_ITEM_EDIT(float43, "Ez", &endstop_adj[C_AXIS], -5.0, 5.0);
2532
+      MENU_ITEM_EDIT(float52, "Radius", &delta_radius, DELTA_RADIUS - 5.0, DELTA_RADIUS + 5.0);
2533
+      MENU_ITEM_EDIT(float43, "Tx", &delta_tower_angle_trim[A_AXIS], -5.0, 5.0);
2534
+      MENU_ITEM_EDIT(float43, "Ty", &delta_tower_angle_trim[B_AXIS], -5.0, 5.0);
2535
+      MENU_ITEM_EDIT(float43, "Tz", &Tz, -5.0, 5.0);
2536
+      END_MENU();
2537
+    }
2538
+
2521
     void lcd_delta_calibrate_menu() {
2539
     void lcd_delta_calibrate_menu() {
2522
       START_MENU();
2540
       START_MENU();
2523
       MENU_BACK(MSG_MAIN);
2541
       MENU_BACK(MSG_MAIN);
2524
       #if ENABLED(DELTA_AUTO_CALIBRATION)
2542
       #if ENABLED(DELTA_AUTO_CALIBRATION)
2543
+        MENU_ITEM(submenu, MSG_DELTA_SETTINGS, lcd_delta_G33_settings);
2525
         MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
2544
         MENU_ITEM(gcode, MSG_DELTA_AUTO_CALIBRATE, PSTR("G33"));
2526
         MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 P1"));
2545
         MENU_ITEM(gcode, MSG_DELTA_HEIGHT_CALIBRATE, PSTR("G33 P1"));
2546
+        #if ENABLED(EEPROM_SETTINGS)
2547
+          MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
2548
+          MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
2549
+        #endif
2527
       #endif
2550
       #endif
2528
       MENU_ITEM(submenu, MSG_AUTO_HOME, _lcd_delta_calibrate_home);
2551
       MENU_ITEM(submenu, MSG_AUTO_HOME, _lcd_delta_calibrate_home);
2529
       if (axis_homed[Z_AXIS]) {
2552
       if (axis_homed[Z_AXIS]) {
2612
       encoderPosition = 0;
2635
       encoderPosition = 0;
2613
       lcdDrawUpdate = LCDVIEW_REDRAW_NOW;
2636
       lcdDrawUpdate = LCDVIEW_REDRAW_NOW;
2614
     }
2637
     }
2615
-    if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr41sign(current_position[axis]));
2638
+    if (lcdDrawUpdate)
2639
+      lcd_implementation_drawedit(name, move_menu_scale >= 0.1 ? ftostr41sign(current_position[axis]) : ftostr43sign(current_position[axis]));
2616
   }
2640
   }
2617
   void lcd_move_x() { _lcd_move_xyz(PSTR(MSG_MOVE_X), X_AXIS); }
2641
   void lcd_move_x() { _lcd_move_xyz(PSTR(MSG_MOVE_X), X_AXIS); }
2618
   void lcd_move_y() { _lcd_move_xyz(PSTR(MSG_MOVE_Y), Y_AXIS); }
2642
   void lcd_move_y() { _lcd_move_xyz(PSTR(MSG_MOVE_Y), Y_AXIS); }

+ 1
- 1
Marlin/utility.h 查看文件

47
   char* ftostr12ns(const float &x);
47
   char* ftostr12ns(const float &x);
48
 
48
 
49
   // Convert signed float to fixed-length string with 023.45 / -23.45 format
49
   // Convert signed float to fixed-length string with 023.45 / -23.45 format
50
-  char *ftostr32(const float &x);
50
+  char* ftostr32(const float &x);
51
 
51
 
52
   // Convert float to fixed-length string with +123.4 / -123.4 format
52
   // Convert float to fixed-length string with +123.4 / -123.4 format
53
   char* ftostr41sign(const float &x);
53
   char* ftostr41sign(const float &x);

正在加载...
取消
保存