 }
 bool motionStep()
 {
-    if (_sys.plannedLength < 1)
+    if (plannedLength < 1)
     {
         return false;
     }
+    firePower(_sys.points[0].power);
     long distX = _sys.points[0].delta[0];
     long distY = _sys.points[0].delta[1];
     if (distX <= 0 && distY <= 0)

    double fx, fy;
    for (int i = 0; i < step; i++)
    {
        float t = i / step;
        float u = 1 - t;
        fx = x0 * u * u + x1 * 2 * u * t + x2 * t * t;
        fy = y0 * u * u + y1 * 2 * u * t + y2 * t * t;
        lineTo(fx, fy);
    }
    lineTo(x2, y2);
}

void arc(long sx, long sy, long cx, long cy, long ex, long ey, bool ccw)

#include <Arduino.h>
#include <MeStepper.h>
#define SBI(n, b) (n |= _BV(b))
#define CBI(n, b) (n &= ~_BV(b))

#define POINTS_COUNT 6
#define PULSES_PER_MM 100
#define CURVE_SECTION 0.5
#define NUM_STEPS 20
#define NUM_AXIS 2
// #define DEBUG true
enum MOTION_STATE
