@@ -420,8 +420,8 @@ static void send_g5x_msg(int index) {
420420 set_g5x_msg.origin = to_ext_pose (canon.g5xOffset );
421421
422422 for (int s = 0 ; s < emcStatus->motion .traj .spindles ; s++){
423- if (emcStatus-> motion .spindle [s].css_maximum ) {
424- SET_SPINDLE_SPEED (s, emcStatus-> motion .spindle [s].speed );
423+ if (canon .spindle [s].css_maximum ) {
424+ SET_SPINDLE_SPEED (s, canon .spindle [s].speed );
425425 }
426426 }
427427 interp_list.append (set_g5x_msg);
@@ -437,8 +437,8 @@ static void send_g92_msg(void) {
437437 set_g92_msg.origin = to_ext_pose (canon.g92Offset );
438438
439439 for (int s = 0 ; s < emcStatus->motion .traj .spindles ; s++){
440- if (emcStatus-> motion .spindle [s].css_maximum ) {
441- SET_SPINDLE_SPEED (s, emcStatus-> motion .spindle [s].speed );
440+ if (canon .spindle [s].css_maximum ) {
441+ SET_SPINDLE_SPEED (s, canon .spindle [s].speed );
442442 }
443443 }
444444 interp_list.append (set_g92_msg);
@@ -493,15 +493,15 @@ void SET_TRAVERSE_RATE(double rate)
493493void SET_FEED_MODE (int spindle, int mode) {
494494 flush_segments ();
495495 canon.feed_mode = mode;
496- canon.spindle = spindle;
496+ canon.spindle_num = spindle;
497497 if (canon.feed_mode == 0 ) STOP_SPEED_FEED_SYNCH ();
498498}
499499
500500void SET_FEED_RATE (double rate)
501501{
502502
503503 if (canon.feed_mode ) {
504- START_SPEED_FEED_SYNCH (canon.spindle , rate, 1 );
504+ START_SPEED_FEED_SYNCH (canon.spindle_num , rate, 1 );
505505 canon.linearFeedRate = rate;
506506 } else {
507507 /* convert from /min to /sec */
@@ -873,7 +873,7 @@ static void flush_segments(void) {
873873
874874 linearMoveMsg.type = EMC_MOTION_TYPE_FEED;
875875 linearMoveMsg.indexrotary = -1 ;
876- if ((vel && acc) || canon.synched ) {
876+ if ((vel && acc) || canon.spindle [canon. spindle_num ]. synched ) {
877877 interp_list.set_line_number (line_no);
878878 interp_list.append (linearMoveMsg);
879879 }
@@ -999,7 +999,7 @@ void STRAIGHT_TRAVERSE(int line_number,
999999 }
10001000
10011001 if (old_feed_mode)
1002- START_SPEED_FEED_SYNCH (canon.spindle , canon.linearFeedRate , 1 );
1002+ START_SPEED_FEED_SYNCH (canon.spindle_num , canon.linearFeedRate , 1 );
10031003
10041004 canonUpdateEndPoint (x, y, z, a, b, c, u, v, w);
10051005}
@@ -1175,7 +1175,7 @@ void START_SPEED_FEED_SYNCH(int spindle, double feed_per_revolution, bool veloci
11751175 spindlesyncMsg.feed_per_revolution = TO_EXT_LEN (FROM_PROG_LEN (feed_per_revolution));
11761176 spindlesyncMsg.velocity_mode = velocity_mode;
11771177 interp_list.append (spindlesyncMsg);
1178- canon.synched = 1 ;
1178+ canon.spindle [spindle]. synched = 1 ;
11791179}
11801180
11811181void STOP_SPEED_FEED_SYNCH ()
@@ -1185,7 +1185,7 @@ void STOP_SPEED_FEED_SYNCH()
11851185 spindlesyncMsg.feed_per_revolution = 0.0 ;
11861186 spindlesyncMsg.velocity_mode = false ;
11871187 interp_list.append (spindlesyncMsg);
1188- canon.synched = 0 ;
1188+ canon.spindle [canon. spindle_num ]. synched = 0 ;
11891189}
11901190
11911191/* Machining Functions */
@@ -1782,27 +1782,27 @@ void SPINDLE_RETRACT_TRAVERSE()
17821782}
17831783
17841784void SET_SPINDLE_MODE (int spindle, double css_max) {
1785- emcStatus-> motion .spindle [spindle].css_maximum = fabs (css_max);
1785+ canon .spindle [spindle].css_maximum = fabs (css_max);
17861786}
17871787
17881788void START_SPINDLE_CLOCKWISE (int s, int wait_for_atspeed)
17891789{
17901790 EMC_SPINDLE_ON emc_spindle_on_msg;
17911791
17921792 flush_segments ();
1793- emcStatus-> motion .spindle [s].direction = 1 ;
1793+ canon .spindle [s].dir = 1 ;
17941794 emc_spindle_on_msg.spindle = s;
1795- if (emcStatus-> motion .spindle [s].css_maximum ) {
1795+ if (canon .spindle [s].css_maximum ) {
17961796 if (canon.lengthUnits == CANON_UNITS_INCHES){
1797- emcStatus-> motion .spindle [s].css_factor = 12 / (2 * M_PI) * emcStatus-> motion .spindle [s].speed * TO_EXT_LEN (25.4 );
1797+ canon .spindle [s].css_factor = 12 / (2 * M_PI) * canon .spindle [s].speed * TO_EXT_LEN (25.4 );
17981798 } else {
1799- emcStatus-> motion .spindle [s].css_factor = 1000 / (2 * M_PI) * emcStatus-> motion .spindle [s].speed * TO_EXT_LEN (1 );
1799+ canon .spindle [s].css_factor = 1000 / (2 * M_PI) * canon .spindle [s].speed * TO_EXT_LEN (1 );
18001800 }
1801- emc_spindle_on_msg.speed = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].css_maximum ;
1802- emc_spindle_on_msg.factor = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].css_factor ;
1801+ emc_spindle_on_msg.speed = canon .spindle [s].dir * canon .spindle [s].css_maximum ;
1802+ emc_spindle_on_msg.factor = canon .spindle [s].dir * canon .spindle [s].css_factor ;
18031803 emc_spindle_on_msg.xoffset = TO_EXT_LEN (canon.g5xOffset .x + canon.g92Offset .x + canon.toolOffset .tran .x );
18041804 } else {
1805- emc_spindle_on_msg.speed = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].speed ;
1805+ emc_spindle_on_msg.speed = canon .spindle [s].dir * canon .spindle [s].speed ;
18061806 // canon.css_numerator = 0; FIXME: Do we need this?
18071807 }
18081808 emc_spindle_on_msg.wait_for_spindle_at_speed = wait_for_atspeed;
@@ -1814,19 +1814,19 @@ void START_SPINDLE_COUNTERCLOCKWISE(int s, int wait_for_atspeed)
18141814 EMC_SPINDLE_ON emc_spindle_on_msg;
18151815
18161816 flush_segments ();
1817- emcStatus-> motion .spindle [s].direction = -1 ;
1817+ canon .spindle [s].dir = -1 ;
18181818 emc_spindle_on_msg.spindle = s;
1819- if (emcStatus-> motion .spindle [s].css_maximum ) {
1819+ if (canon .spindle [s].css_maximum ) {
18201820 if (canon.lengthUnits == CANON_UNITS_INCHES){
1821- emcStatus-> motion .spindle [s].css_factor = 12 / (2 * M_PI) * emcStatus-> motion .spindle [s].speed * TO_EXT_LEN (25.4 );
1821+ canon .spindle [s].css_factor = 12 / (2 * M_PI) * canon .spindle [s].speed * TO_EXT_LEN (25.4 );
18221822 } else {
1823- emcStatus-> motion .spindle [s].css_factor = 1000 / (2 * M_PI) * emcStatus-> motion .spindle [s].speed * TO_EXT_LEN (1 );
1823+ canon .spindle [s].css_factor = 1000 / (2 * M_PI) * canon .spindle [s].speed * TO_EXT_LEN (1 );
18241824 }
1825- emc_spindle_on_msg.speed = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].css_maximum ;
1826- emc_spindle_on_msg.factor = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].css_factor ;
1825+ emc_spindle_on_msg.speed = canon .spindle [s].dir * canon .spindle [s].css_maximum ;
1826+ emc_spindle_on_msg.factor = canon .spindle [s].dir * canon .spindle [s].css_factor ;
18271827 emc_spindle_on_msg.xoffset = TO_EXT_LEN (canon.g5xOffset .x + canon.g92Offset .x + canon.toolOffset .tran .x );
18281828 } else {
1829- emc_spindle_on_msg.speed = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].speed ;
1829+ emc_spindle_on_msg.speed = canon .spindle [s].dir * canon .spindle [s].speed ;
18301830 // canon.css_numerator = 0; FIXME: Do we need this?
18311831 }
18321832 emc_spindle_on_msg.wait_for_spindle_at_speed = wait_for_atspeed;
@@ -1836,24 +1836,27 @@ void START_SPINDLE_COUNTERCLOCKWISE(int s, int wait_for_atspeed)
18361836void SET_SPINDLE_SPEED (int s, double r)
18371837{
18381838 // speed is in RPMs everywhere
1839- emcStatus->motion .spindle [s].speed = fabs (r); // interp will never send negative anyway ...
1839+ for (int i = 0 ; i < 3 ; i++) {printf (" Before: spindle %i speed %f\n " , i, canon.spindle [i].speed ) ;}
1840+ canon.spindle [s].speed = fabs (r); // interp will never send negative anyway ...
1841+ for (int i = 0 ; i < 3 ; i++) {printf (" After: spindle %i speed %f\n " , i, canon.spindle [i].speed ) ;}
18401842
18411843 EMC_SPINDLE_SPEED emc_spindle_speed_msg;
18421844
18431845 flush_segments ();
18441846
18451847 emc_spindle_speed_msg.spindle = s;
1846- if (emcStatus->motion .spindle [s].css_maximum ) {
1848+ if (canon.spindle [s].css_maximum ) {
1849+ printf (" CSS MAximum is true\n " );
18471850 if (canon.lengthUnits == CANON_UNITS_INCHES){
1848- emcStatus-> motion .spindle [s].css_factor = 12 / (2 * M_PI) * emcStatus-> motion .spindle [s].speed * TO_EXT_LEN (25.4 );
1851+ canon .spindle [s].css_factor = 12 / (2 * M_PI) * canon .spindle [s].speed * TO_EXT_LEN (25.4 );
18491852 } else {
1850- emcStatus-> motion .spindle [s].css_factor = 1000 / (2 * M_PI) * emcStatus-> motion .spindle [s].speed * TO_EXT_LEN (1 );
1853+ canon .spindle [s].css_factor = 1000 / (2 * M_PI) * canon .spindle [s].speed * TO_EXT_LEN (1 );
18511854 }
1852- emc_spindle_speed_msg.speed = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].css_maximum ;
1853- emc_spindle_speed_msg.factor = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].css_factor ;
1855+ emc_spindle_speed_msg.speed = canon .spindle [s].dir * canon .spindle [s].css_maximum ;
1856+ emc_spindle_speed_msg.factor = canon .spindle [s].dir * canon .spindle [s].css_factor ;
18541857 emc_spindle_speed_msg.xoffset = TO_EXT_LEN (canon.g5xOffset .x + canon.g92Offset .x + canon.toolOffset .tran .x );
18551858 } else {
1856- emc_spindle_speed_msg.speed = emcStatus-> motion .spindle [s].direction * emcStatus-> motion .spindle [s].speed ;
1859+ emc_spindle_speed_msg.speed = canon .spindle [s].dir * canon .spindle [s].speed ;
18571860 // canon.css_numerator = 0; FIXME: Do we need this?
18581861 }
18591862 interp_list.append (emc_spindle_speed_msg);
@@ -1866,8 +1869,8 @@ void STOP_SPINDLE_TURNING(int s)
18661869 flush_segments ();
18671870 emc_spindle_off_msg.spindle = s;
18681871 interp_list.append (emc_spindle_off_msg);
1869- // Added by atp 6/1/18 not sure this is right. There is a problem that the _sesond_ S word starts the spindle without M3/M4
1870- emcStatus-> motion .spindle [s].direction = 0 ;
1872+ // Added by atp 6/1/18 not sure this is right. There is a problem that the _second_ S word starts the spindle without M3/M4
1873+ canon .spindle [s].dir = 0 ;
18711874}
18721875
18731876void SPINDLE_RETRACT ()
@@ -1962,9 +1965,9 @@ void USE_TOOL_LENGTH_OFFSET(EmcPose offset)
19621965 set_offset_msg.offset .w = TO_EXT_LEN (canon.toolOffset .w );
19631966
19641967 for (int s = 0 ; s < emcStatus->motion .traj .spindles ; s++){
1965- if (emcStatus-> motion .spindle [s].css_maximum ) {
1966- SET_SPINDLE_SPEED (s, emcStatus-> motion .spindle [s].speed );
1967- }
1968+ if (canon .spindle [s].css_maximum ) {
1969+ SET_SPINDLE_SPEED (s, canon .spindle [s].speed );
1970+ }
19681971 }
19691972 interp_list.append (set_offset_msg);
19701973}
@@ -2042,7 +2045,7 @@ void CHANGE_TOOL(int slot)
20422045 interp_list.append (linearMoveMsg);
20432046
20442047 if (old_feed_mode)
2045- START_SPEED_FEED_SYNCH (canon.spindle , canon.linearFeedRate , 1 );
2048+ START_SPEED_FEED_SYNCH (canon.spindle_num , canon.linearFeedRate , 1 );
20462049
20472050 canonUpdateEndPoint (x, y, z, a, b, c, u, v, w);
20482051 }
@@ -2462,7 +2465,6 @@ void INIT_CANON()
24622465 canon.xy_rotation = 0.0 ;
24632466 canon.rotary_unlock_for_traverse = -1 ;
24642467 canon.feed_mode = 0 ;
2465- canon.synched = 0 ;
24662468 canon.g5xOffset .x = 0.0 ;
24672469 canon.g5xOffset .y = 0.0 ;
24682470 canon.g5xOffset .z = 0.0 ;
@@ -2485,8 +2487,10 @@ void INIT_CANON()
24852487 canonUpdateEndPoint (0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 );
24862488 SET_MOTION_CONTROL_MODE (CANON_CONTINUOUS, 0 );
24872489 SET_NAIVECAM_TOLERANCE (0 );
2488- canon.spindleSpeed = 0.0 ;
2489- // canon.preppedTool = 0;
2490+ for (int s = 0 ; s < EMCMOT_MAX_SPINDLES; s++) {
2491+ canon.spindle [s].speed = 0.0 ;
2492+ canon.spindle [s].synched = 0 ;
2493+ }
24902494 canon.optional_program_stop = ON; // set enabled by default (previous EMC behaviour)
24912495 canon.block_delete = ON; // set enabled by default (previous EMC behaviour)
24922496 canon.cartesian_move = 0 ;
@@ -2708,7 +2712,7 @@ int GET_EXTERNAL_FLOOD()
27082712double GET_EXTERNAL_SPEED (int spindle)
27092713{
27102714 // speed is in RPMs everywhere
2711- return emcStatus-> motion .spindle [spindle].speed ;
2715+ return canon .spindle [spindle].speed ;
27122716}
27132717
27142718CANON_DIRECTION GET_EXTERNAL_SPINDLE (int spindle)
@@ -3207,7 +3211,7 @@ int UNLOCK_ROTARY(int line_number, int joint_num) {
32073211 interp_list.append (m);
32083212 // no need to update endpoint
32093213 if (old_feed_mode)
3210- START_SPEED_FEED_SYNCH (canon.spindle , canon.linearFeedRate , 1 );
3214+ START_SPEED_FEED_SYNCH (canon.spindle_num , canon.linearFeedRate , 1 );
32113215
32123216 // now, the next move is the real indexing move, so be ready
32133217 canon.rotary_unlock_for_traverse = joint_num;
0 commit comments