Skip to content

Commit 35214b1

Browse files
Fix indexing and calculated indexes only when buffer changes
1 parent bce3070 commit 35214b1

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

pmacApp/pmc/trajectory_scan_ppmac.pmc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,8 @@ Version->*d
183183
global PVT_Time
184184
global UserCmd
185185

186-
global CalculatedBase // Calculated temporary variable for Current base address
186+
global CalculatedBaseInt // Calculated temporary variable for Current base address
187+
global CalculatedBaseDouble // Calculated temporary variable for Current base address
187188

188189
// *****************************************************************************************
189190
// Set the version number
@@ -222,6 +223,12 @@ CurrentBufferAdr = BufferAdr_A // Set CurrentBuffer values to buffer A
222223
CurrentBufferFill = BufferFill_A
223224
CurrentBuffer = 0
224225

226+
// Convert absolute address to the index of integer data in the user shared memory buffer (USHM)
227+
CalculatedBaseInt = CurrentBufferAdr/ _SIZEOF_INTEGER_;
228+
// Convert absolute address to the index of double data in the user shared memory buffer (USHM)
229+
CalculatedBaseDouble = CurrentBufferAdr/ _SIZEOF_DOUBLE_;
230+
231+
225232
PrevBufferFill = BufferLength // Set PrevBufferFill to pass outer while loop condition
226233

227234
GoSub101 // Check which axes are required
@@ -262,6 +269,9 @@ While(AbortTrigger == 0 && Error == 0 && CurrentBufferFill > 0 && PrevBufferFill
262269
CurrentBufferFill = BufferFill_A
263270
BufferFill_B = 0
264271
}
272+
CalculatedBaseInt = CurrentBufferAdr/ _SIZEOF_INTEGER_;
273+
CalculatedBaseDouble = CurrentBufferAdr/ _SIZEOF_DOUBLE_;
274+
265275
// Move to final point of buffer if next buffer has points
266276
If(AbortTrigger == 0 && CurrentBufferFill > 0) // Do move with previous buffer N-1 and N and current buffer 1
267277
{
@@ -382,14 +392,12 @@ Return
382392
// *************************************************************************************************
383393

384394
N103:
385-
// Convert absolute address to the index of integer data in the user shared memory buffer (USHM)
386-
CalculatedBase = CurrentBufferAdr/ _SIZEOF_INTEGER_;
387395
// Integer type buffers
388-
Time_Idx = CalculatedBase + CurrentIndex
396+
Time_Idx = CalculatedBaseInt + CurrentIndex
389397
User_Idx = Time_Idx + BuffLen
390398
// Double type buffers
391399
// Convert index of integer data to double data in USHM
392-
A_Idx = (User_Idx + BuffLen) * _SIZEOF_INTEGER_ / _SIZEOF_DOUBLE_
400+
A_Idx = CalculatedBaseDouble + BuffLen + CurrentIndex
393401
B_Idx = A_Idx + BuffLen
394402
C_Idx = B_Idx + BuffLen
395403
U_Idx = C_Idx + BuffLen

0 commit comments

Comments
 (0)