Csafe_pm_get_forceplotdata
Hi, all. Me again!<br /><br />My current problem is with CSAFE_PM_GET_FORCEPLOTDATA in order to recover the points to plot on the force curve.<br /><br />I never seem to get more than the first part of the curve, points of data, even though I'm calling the method repeatedly. According to another thread on the topic, CSAFE_PM_GET_FORCEPLOTDATA will return up to 32 points each time, and it should be possible to accumulate the whole set (up to 144 points) by repeated calls.<br /><br />However, my first call returns 32 points, and subsequent calls return 0, so I'm not getting the whole code. Here's the code I'm using at the moment, followed by example output:<br /><br /><!--c1--><table width='95%' cellspacing='1' cellpadding='3' border='0' align='center'><tr><td><b><div class='genmed'>CODE</div></b></td></tr><tr><td class='code'><div><!--ec1--><br />string splotdata = "";<br />if (bEndOfDrive)<br />{<br /> splotdata = "End of drive. " + CurrentSPM.ToString() + "SPM. Recovering plot data...\n";<br /><br /> // we've completed the drive, so let's recover the force curve.<br /> uint nPointsInPlot = 0x0;<br /> uint nPointsReturned = 0xFF;<br /><br /> int [] ForcePlotPoints = new int[256]; <br /><br /> cmd_data_size = 0;<br /> cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_SETUSERCFG1_CMD;<br /> cmd_data[cmd_data_size++] = 0x03;<br /> cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_PM_GET_FORCEPLOTDATA;<br /> cmd_data[cmd_data_size++] = 0x01;<br /> cmd_data[cmd_data_size++] = 0x20;<br /><br /> // read data points until there are none left to read. <br /> while (0 < nPointsReturned) <br /> {<br /> ecode = tkcmdsetCSAFE_command(0, cmd_data_size, cmd_data, ref rsp_data_size, rsp_data);<br /><br /> if (0 == ecode)<br /> {<br /> nPointsReturned = rsp_data[4];<br /> splotdata += " Recovered " + nPointsReturned.ToString() + " points\n";<br /><br /> for( uint i = 0; i < nPointsReturned; i+=2) <br /> {<br /> splotdata += " ForcePlotPoints[" + nPointsInPlot.ToString() + "] = " + (rsp_data[5+i]).ToString("x") + " + " + (rsp_data[6+i] << 8).ToString("x") + "\n";<br /> ForcePlotPoints[nPointsInPlot++] = (int)(rsp_data[5+i] + (rsp_data[6+i] << 8));<br /> }<br /> }<br /> }<br /> Console.WriteLine(splotdata);<br />}<!--c2--></div></td></tr></table><br /><br />Output:<br /><br /><!--c1--><table width='95%' cellspacing='1' cellpadding='3' border='0' align='center'><tr><td><b><div class='genmed'>CODE</div></b></td></tr><tr><td class='code'><div><!--ec1--><br />End of drive. 30SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 8 + 0<br /> ForcePlotPoints[1] = 16 + 0<br /> ForcePlotPoints[2] = 16 + 0<br /> ForcePlotPoints[3] = 32 + 0<br /> ForcePlotPoints[4] = 3a + 0<br /> ForcePlotPoints[5] = 41 + 0<br /> ForcePlotPoints[6] = 41 + 0<br /> ForcePlotPoints[7] = 43 + 0<br /> ForcePlotPoints[8] = 47 + 0<br /> ForcePlotPoints[9] = 4c + 0<br /> ForcePlotPoints[10] = 4b + 0<br /> ForcePlotPoints[11] = 4b + 0<br /> ForcePlotPoints[12] = 4e + 0<br /> ForcePlotPoints[13] = 4e + 0<br /> ForcePlotPoints[14] = 51 + 0<br /> ForcePlotPoints[15] = 55 + 0<br /> Recovered 0 points<br /><br />End of drive. 25SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 19 + 0<br /> ForcePlotPoints[1] = 19 + 0<br /> ForcePlotPoints[2] = 20 + 0<br /> ForcePlotPoints[3] = 27 + 0<br /> ForcePlotPoints[4] = 2f + 0<br /> ForcePlotPoints[5] = 32 + 0<br /> ForcePlotPoints[6] = 32 + 0<br /> ForcePlotPoints[7] = 38 + 0<br /> ForcePlotPoints[8] = 3e + 0<br /> ForcePlotPoints[9] = 42 + 0<br /> ForcePlotPoints[10] = 44 + 0<br /> ForcePlotPoints[11] = 45 + 0<br /> ForcePlotPoints[12] = 45 + 0<br /> ForcePlotPoints[13] = 47 + 0<br /> ForcePlotPoints[14] = 49 + 0<br /> ForcePlotPoints[15] = 4b + 0<br /> Recovered 0 points<br /><br />End of drive. 22SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 19 + 0<br /> ForcePlotPoints[1] = 19 + 0<br /> ForcePlotPoints[2] = 25 + 0<br /> ForcePlotPoints[3] = 29 + 0<br /> ForcePlotPoints[4] = 2f + 0<br /> ForcePlotPoints[5] = 31 + 0<br /> ForcePlotPoints[6] = 31 + 0<br /> ForcePlotPoints[7] = 34 + 0<br /> ForcePlotPoints[8] = 35 + 0<br /> ForcePlotPoints[9] = 38 + 0<br /> ForcePlotPoints[10] = 3a + 0<br /> ForcePlotPoints[11] = 3a + 0<br /> ForcePlotPoints[12] = 3c + 0<br /> ForcePlotPoints[13] = 3c + 0<br /> ForcePlotPoints[14] = 3e + 0<br /> ForcePlotPoints[15] = 3e + 0<br /> Recovered 0 points<br /><br />End of drive. 21SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 1a + 0<br /> ForcePlotPoints[1] = 1a + 0<br /> ForcePlotPoints[2] = 29 + 0<br /> ForcePlotPoints[3] = 32 + 0<br /> ForcePlotPoints[4] = 39 + 0<br /> ForcePlotPoints[5] = 39 + 0<br /> ForcePlotPoints[6] = 3d + 0<br /> ForcePlotPoints[7] = 40 + 0<br /> ForcePlotPoints[8] = 43 + 0<br /> ForcePlotPoints[9] = 43 + 0<br /> ForcePlotPoints[10] = 44 + 0<br /> ForcePlotPoints[11] = 46 + 0<br /> ForcePlotPoints[12] = 48 + 0<br /> ForcePlotPoints[13] = 48 + 0<br /> ForcePlotPoints[14] = 48 + 0<br /> ForcePlotPoints[15] = 49 + 0<br /> Recovered 0 points<br /><br />End of drive. 23SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 21 + 0<br /> ForcePlotPoints[1] = 21 + 0<br /> ForcePlotPoints[2] = 36 + 0<br /> ForcePlotPoints[3] = 45 + 0<br /> ForcePlotPoints[4] = 4d + 0<br /> ForcePlotPoints[5] = 4d + 0<br /> ForcePlotPoints[6] = 4f + 0<br /> ForcePlotPoints[7] = 50 + 0<br /> ForcePlotPoints[8] = 54 + 0<br /> ForcePlotPoints[9] = 54 + 0<br /> ForcePlotPoints[10] = 5d + 0<br /> ForcePlotPoints[11] = 67 + 0<br /> ForcePlotPoints[12] = 72 + 0<br /> ForcePlotPoints[13] = 7c + 0<br /> ForcePlotPoints[14] = 7c + 0<br /> ForcePlotPoints[15] = 84 + 0<br /> Recovered 0 points<br /><br />End of drive. 26SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 18 + 0<br /> ForcePlotPoints[1] = 36 + 0<br /> ForcePlotPoints[2] = 36 + 0<br /> ForcePlotPoints[3] = 77 + 0<br /> ForcePlotPoints[4] = 8b + 0<br /> ForcePlotPoints[5] = 99 + 0<br /> ForcePlotPoints[6] = 99 + 0<br /> ForcePlotPoints[7] = 9f + 0<br /> ForcePlotPoints[8] = a0 + 0<br /> ForcePlotPoints[9] = a4 + 0<br /> ForcePlotPoints[10] = aa + 0<br /> ForcePlotPoints[11] = ac + 0<br /> ForcePlotPoints[12] = b2 + 0<br /> ForcePlotPoints[13] = b9 + 0<br /> ForcePlotPoints[14] = b8 + 0<br /> ForcePlotPoints[15] = bb + 0<br /> Recovered 0 points<br /><br />End of drive. 28SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 31 + 0<br /> ForcePlotPoints[1] = 31 + 0<br /> ForcePlotPoints[2] = 52 + 0<br /> ForcePlotPoints[3] = 6b + 0<br /> ForcePlotPoints[4] = 72 + 0<br /> ForcePlotPoints[5] = 79 + 0<br /> ForcePlotPoints[6] = 83 + 0<br /> ForcePlotPoints[7] = 8b + 0<br /> ForcePlotPoints[8] = 9d + 0<br /> ForcePlotPoints[9] = a5 + 0<br /> ForcePlotPoints[10] = a6 + 0<br /> ForcePlotPoints[11] = aa + 0<br /> ForcePlotPoints[12] = b3 + 0<br /> ForcePlotPoints[13] = b4 + 0<br /> ForcePlotPoints[14] = b7 + 0<br /> ForcePlotPoints[15] = ba + 0<br /> Recovered 0 points<br /><br />End of drive. 28SPM. Recovering plot data...<br /> Recovered 32 points<br /> ForcePlotPoints[0] = 26 + 0<br /> ForcePlotPoints[1] = 3a + 0<br /> ForcePlotPoints[2] = 4b + 0<br /> ForcePlotPoints[3] = 58 + 0<br /> ForcePlotPoints[4] = 5d + 0<br /> ForcePlotPoints[5] = 61 + 0<br /> ForcePlotPoints[6] = 6a + 0<br /> ForcePlotPoints[7] = 79 + 0<br /> ForcePlotPoints[8] = 84 + 0<br /> ForcePlotPoints[9] = 91 + 0<br /> ForcePlotPoints[10] = 9c + 0<br /> ForcePlotPoints[11] = a6 + 0<br /> ForcePlotPoints[12] = af + 0<br /> ForcePlotPoints[13] = b6 + 0<br /> ForcePlotPoints[14] = b9 + 0<br /> ForcePlotPoints[15] = bc + 0<br /> Recovered 0 points<br /><!--c2--></div></td></tr></table><br /><br />As you can see, there are different stroke rates, so there should be different numbers of points, I'm sure. Thanks once again for any help.
Daren,<br /><br />There was a bug fix to the force plot data command back in Beta Rev 88 Build 9. So any Beta release Build 10 or newer should be working properly. I verified proper operation on Build 15 this morning (this is the Beta release available on the C2 website now).<br /><br />Cheers and thanks again.<br /><br />Mark
<!--QuoteBegin-mlyons+Sep 9 2005, 01:42 PM--><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><div class='genmed'><b>QUOTE(mlyons @ Sep 9 2005, 01:42 PM)</b></div></td></tr><tr><td class='quote'><!--QuoteEBegin-->Daren,<br /><br />There was a bug fix to the force plot data command back in Beta Rev 88 Build 9. So any Beta release Build 10 or newer should be working properly. I verified proper operation on Build 15 this morning (this is the Beta release available on the C2 website now).<br /><br />Cheers and thanks again.<br /><br />Mark <br /> </td></tr></table><br /><br />I'm using Revision 88 Build 15, just checked by restarting the PM3. Does my code logic appear correct, above?
<!--QuoteBegin-Daren C+Sep 9 2005, 08:09 AM--><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><div class='genmed'><b>QUOTE(Daren C @ Sep 9 2005, 08:09 AM)</b></div></td></tr><tr><td class='quote'><!--QuoteEBegin--> cmd_data_size = 0;<br /> cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_SETUSERCFG1_CMD;<br /> cmd_data[cmd_data_size++] = 0x03;<br /> cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_PM_GET_FORCEPLOTDATA;<br /> cmd_data[cmd_data_size++] = 0x01;<br /> cmd_data[cmd_data_size++] = 0x20; <br /> </td></tr></table><br /><br />What's the 0x01 for? I haven't used the FORCEPLOTDATA command myself, but I found the description in rev010 of the documentation. It seems that byte 0 of the command is the response length (e.g. 0x20). I don't see that the PM3 is expecting a length prefix on the command, which would make the length prefix of the USERCFG1_CMD 0x02.<br /><br /><br />Mike
Daren,<br /><br />I looked at your code sample...it's a little difficult to say whether it's right or wrong. Let me suggest the following...instead of only collecting force plot data at the end of the drive, try collecting continuously to see if more data is available. Also, don't terminate your collection based on receiving 0 data bytes back from the PM3, but terminate at the beginning of the drive.<br /><br />The data is collected from the beginning to the end of the drive. It is available for reading via the force plot command immediately (e.g., during the drive) and is not reset until the catch at the beginning of the next drive.<br /><br />I've used the SDK APIDemo application to repeatedly sample the the force plot data and store it to file. Everything appears to work as I expect.<br /><br />Mark
<!--QuoteBegin-haboustak+Sep 9 2005, 02:56 PM--><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><div class='genmed'><b>QUOTE(haboustak @ Sep 9 2005, 02:56 PM)</b></div></td></tr><tr><td class='quote'><!--QuoteEBegin--><!--QuoteBegin-Daren C+Sep 9 2005, 08:09 AM--><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><div class='genmed'><b>QUOTE(Daren C @ Sep 9 2005, 08:09 AM)</b></div></td></tr><tr><td class='quote'><!--QuoteEBegin--> cmd_data_size = 0;<br /> cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_SETUSERCFG1_CMD;<br /> cmd_data[cmd_data_size++] = 0x03;<br /> cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_PM_GET_FORCEPLOTDATA;<br /> cmd_data[cmd_data_size++] = 0x01;<br /> cmd_data[cmd_data_size++] = 0x20; <br /> </td></tr></table><br /><br />What's the 0x01 for? I haven't used the FORCEPLOTDATA command myself, but I found the description in rev010 of the documentation. It seems that byte 0 of the command is the response length (e.g. 0x20). I don't see that the PM3 is expecting a length prefix on the command, which would make the length prefix of the USERCFG1_CMD 0x02.<br /><br /><br />Mike <br /> </td></tr></table><br /><br />The 0x01 is the number of data bytes following for the command. This is the same format I use for setting the splits up, for example (CSAFE_PM_SET_SPLITDURATION):<br /><br /><!--c1--><table width='95%' cellspacing='1' cellpadding='3' border='0' align='center'><tr><td><b><div class='genmed'>CODE</div></b></td></tr><tr><td class='code'><div><!--ec1--><br />cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_SETUSERCFG1_CMD;<br />cmd_data[cmd_data_size++] = 0x07; // 7 bytes of data to follow<br />cmd_data[cmd_data_size++] = (uint)CSAFE.CSAFE_PM_SET_SPLITDURATION;<br />cmd_data[cmd_data_size++] = 0x05; // 5 bytes of data to follow<br />cmd_data[cmd_data_size++] = 0x80; // 0 = time, 128 (0x80) = distance <br />cmd_data[cmd_data_size++] = 0xF4; // distance byte 0<br />cmd_data[cmd_data_size++] = 0x01; // distance byte 1<br />cmd_data[cmd_data_size++] = 0x00; // distance byte 2<br />cmd_data[cmd_data_size++] = 0x00; // distance byte 3<br /><!--c2--></div></td></tr></table><br /><br />Certainly, if I change the length of CSAFE_SETUSERCFG1_CMD's data to 0x02 and remove the 0x01 my PM3 displays an error.
<!--QuoteBegin-mlyons+Sep 9 2005, 03:12 PM--><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><div class='genmed'><b>QUOTE(mlyons @ Sep 9 2005, 03:12 PM)</b></div></td></tr><tr><td class='quote'><!--QuoteEBegin-->Daren,<br /><br />I looked at your code sample...it's a little difficult to say whether it's right or wrong. Let me suggest the following...instead of only collecting force plot data at the end of the drive, try collecting continuously to see if more data is available. Also, don't terminate your collection based on receiving 0 data bytes back from the PM3, but terminate at the beginning of the drive.<br /><br />The data is collected from the beginning to the end of the drive. It is available for reading via the force plot command immediately (e.g., during the drive) and is not reset until the catch at the beginning of the next drive.<br /><br />I've used the SDK APIDemo application to repeatedly sample the the force plot data and store it to file. Everything appears to work as I expect.<br /><br />Mark <br /> </td></tr></table><br /><br />OK, thanks Mark, I shall persevere.
OK, I think I've got it reading the data now, but I still have a question.<br /><br />Sometimes the 'Byte 0: Bytes read' field is an odd number. Shouldn't this always be even (since there are two bytes in each datum)? And if not, shouldn't a subsequent call start with the missing byte from the previous call?<br /><br />i.e. if I'm told there are 7 bytes recovered, and they're 0xb9 0x00 0xb9 0x00 0xbb 0x00 0xbb, then shouldn't the next set of data start with the missing 0x00 that would have made a pair on the previous call, or is this just silently dropped?<br /><br />If it's dropped, does this matter? What's the range of values that will be returned? Can it go over 256? If so, the second value could be significant (i.e. if a 0x01 got discarded). <br /><br />Or is the "spare" value in the first set always guaranteed to be 0x00 and therefore safe to ignore, as seems to be the case by empirical observation?
Daren,<br /><br />The force plot data is defined as 16-bit values because it is necessary...so the MS byte is important. I'm double checking now, but it looks like there may be another bug in the processing of this command that isn't handling the byte count properly and may not be stepping through the array of data properly. Stepping through the array properly looks like it may only be an issue whenever data is requested, but less than the amount requested is available.<br /><br />I'll update this reply when I'm sure about the bug. If it is a bug, it will be fixed in next week's Beta release.<br /><br />Mark
Thanks, Mark. If it's of any use, this is the sort of data I'm often getting:<br /><br /><!--c1--><table width='95%' cellspacing='1' cellpadding='3' border='0' align='center'><tr><td><b><div class='genmed'>CODE</div></b></td></tr><tr><td class='code'><div><!--ec1--><br /> Recovered 7 points<br /> Data: 9 0 9 0 13 0 0 <br /> ForcePlotPoints[0] = 9 + 0<br /> ForcePlotPoints[1] = 9 + 0<br /> ForcePlotPoints[2] = 13 + 0<br /> Recovered 7 points<br /> Data: 24 0 24 0 28 0 0 <br /> ForcePlotPoints[3] = 24 + 0<br /> ForcePlotPoints[4] = 24 + 0<br /> ForcePlotPoints[5] = 28 + 0<br /> Recovered 6 points<br /> Data: 2f 0 2f 0 32 0 <br /> ForcePlotPoints[6] = 2f + 0<br /> ForcePlotPoints[7] = 2f + 0<br /> ForcePlotPoints[8] = 32 + 0<br /> Recovered 8 points<br /> Data: 38 0 3c 0 3c 0 41 0 <br /> ForcePlotPoints[9] = 38 + 0<br /> ForcePlotPoints[10] = 3c + 0<br /> ForcePlotPoints[11] = 3c + 0<br /> ForcePlotPoints[12] = 41 + 0<br /> Recovered 7 points<br /> Data: 4c 0 4c 0 4f 0 0 <br /> ForcePlotPoints[13] = 4c + 0<br /> ForcePlotPoints[14] = 4c + 0<br /> ForcePlotPoints[15] = 4f + 0<br /> Recovered 7 points<br /> Data: 5c 0 5f 0 62 0 0 <br /> ForcePlotPoints[16] = 5c + 0<br /> ForcePlotPoints[17] = 5f + 0<br /> ForcePlotPoints[18] = 62 + 0<br /> Recovered 7 points<br /> Data: 69 0 6a 0 6a 0 0 <br /> ForcePlotPoints[19] = 69 + 0<br /> ForcePlotPoints[20] = 6a + 0<br /> ForcePlotPoints[21] = 6a + 0<br /> Recovered 7 points<br /> Data: 6a 0 6a 0 68 0 0 <br /> ForcePlotPoints[22] = 6a + 0<br /> ForcePlotPoints[23] = 6a + 0<br /> ForcePlotPoints[24] = 68 + 0<br /> Recovered 7 points<br /> Data: 56 0 51 0 51 0 0 <br /> ForcePlotPoints[25] = 56 + 0<br /> ForcePlotPoints[26] = 51 + 0<br /> ForcePlotPoints[27] = 51 + 0<br /> Recovered 4 points<br /> Data: 1e 0 14 0 <br /> ForcePlotPoints[28] = 1e + 0<br /> ForcePlotPoints[29] = 14 + 0<br /><!--c2--></div></td></tr></table><br /><br />These readings are taken during the drive/dwell part of the stroke, and there's at least a 50ms thread sleep between each request.
-
- Posts: 0
- Joined: March 18th, 2006, 10:32 pm
Hi there,<br /><br />Is the FORCEPLOTDATA command working in the latest BETA Release? I seem to be getting reasonable data but my pairs of data points appear to be coming in the order LSB first i.e<br /><br />Data Point Pair 1: rsp_data[ 5]= 31 (LSB) & rsp_data[ 6]= 0 (MSB)<br />Data Point Pair 2: rsp_data[ 7]= 31 (LSB) & rsp_data[ 8]= 0 (MSB)<br />Data Point Pair 3: rsp_data[ 9]= 67 (LSB) & rsp_data[ 10]= 0 (MSB) ..etc.<br /><br />In the 6/6/2005 Manual (Revision 0.10) it lists the output as being returned MSB first. Does this mean that my response data is incorrect?<br />I am sending the following command data to the PM3 Monitor using <br />tkcmdsetCSAFE_command(unit_address, cmd_data_size, cmd_data, &rsp_size, rsp_data);<br /><br />command_data="1a, 03, 6b, 01, 20";<br /><br />Thankyou for any help/guidance you can offer.<br /><br />The response data is output as follows:<br /><br />read data size= 37<br />rsp_data_read_size= 37<br />rsp_data_read[ 0]= 26 rsp_data[ 0]= 26<br />rsp_data_read[ 1]= 35 rsp_data[ 1]= 35<br />rsp_data_read[ 2]= 107 rsp_data[ 2]= 107<br />rsp_data_read[ 3]= 33 rsp_data[ 3]= 33<br />rsp_data_read[ 4]= 14 rsp_data[ 4]= 14<br />rsp_data_read[ 5]= 31 rsp_data[ 5]= 31<br />rsp_data_read[ 6]= 0 rsp_data[ 6]= 0<br />rsp_data_read[ 7]= 31 rsp_data[ 7]= 31<br />rsp_data_read[ 8]= 0 rsp_data[ 8]= 0<br />rsp_data_read[ 9]= 67 rsp_data[ 9]= 67<br />rsp_data_read[ 10]= 0 rsp_data[ 10]= 0<br />rsp_data_read[ 11]= 96 rsp_data[ 11]= 96<br />rsp_data_read[ 12]= 0 rsp_data[ 12]= 0<br />rsp_data_read[ 13]= 121 rsp_data[ 13]= 121<br />rsp_data_read[ 14]= 0 rsp_data[ 14]= 0<br />rsp_data_read[ 15]= 126 rsp_data[ 15]= 126<br />rsp_data_read[ 16]= 0 rsp_data[ 16]= 0<br />rsp_data_read[ 17]= 120 rsp_data[ 17]= 120<br />rsp_data_read[ 18]= 0 rsp_data[ 18]= 0<br />********************VALID POINTS READ**********************<br />rsp_data_read[ 19]= 0 rsp_data[ 19]= 0<br />rsp_data_read[ 20]= 0 rsp_data[ 20]= 0<br />rsp_data_read[ 21]= 0 rsp_data[ 21]= 0<br />rsp_data_read[ 22]= 6 rsp_data[ 22]= 6<br />rsp_data_read[ 23]= 176 rsp_data[ 23]= 176<br />rsp_data_read[ 24]= 84 rsp_data[ 24]= 84<br />rsp_data_read[ 25]= 0 rsp_data[ 25]= 0<br />rsp_data_read[ 26]= 1 rsp_data[ 26]= 1<br />rsp_data_read[ 27]= 3 rsp_data[ 27]= 3<br />rsp_data_read[ 28]= 180 rsp_data[ 28]= 180<br />rsp_data_read[ 29]= 0 rsp_data[ 29]= 0<br />rsp_data_read[ 30]= 209 rsp_data[ 30]= 209<br />rsp_data_read[ 31]= 88 rsp_data[ 31]= 88<br />rsp_data_read[ 32]= 88 rsp_data[ 32]= 88<br />rsp_data_read[ 33]= 0 rsp_data[ 33]= 0<br />rsp_data_read[ 34]= 0 rsp_data[ 34]= 0<br />rsp_data_read[ 35]= 0 rsp_data[ 35]= 0<br />rsp_data_read[ 36]= 0 rsp_data[ 36]= 0<br /><br />rsp_data[4]= 14 rsp_data[5]= 31 rsp_data[6]= 0 data_points_count= 0 Counter= 4 Rsp_Size = 37 Data_points= 14<br />i= 5 i+1= 6Point 0: MSB= 31 + LSB= 0. Total= 7936<br />i= 7 i+1= 8Point 1: MSB= 31 + LSB= 0. Total= 7936<br />i= 9 i+1= 10Point 2: MSB= 67 + LSB= 0. Total= 17152<br />i= 11 i+1= 12Point 3: MSB= 96 + LSB= 0. Total= 24576<br />i= 13 i+1= 14Point 4: MSB= 121 + LSB= 0. Total= 30976<br />i= 15 i+1= 16Point 5: MSB= 126 + LSB= 0. Total= 32256<br />i= 17 i+1= 18Point 6: MSB= 120 + LSB= 0. Total= 30720<br />********************VALID POINTS READ**********************<br />i= 19 i+1= 20Point 7: MSB= 0 + LSB= 0. Total= 0<br />i= 21 i+1= 22Point 8: MSB= 0 + LSB= 6. Total= 6<br />i= 23 i+1= 24Point 9: MSB= 176 + LSB= 84. Total= 45140<br />i= 25 i+1= 26Point 10: MSB= 0 + LSB= 1. Total= 1<br />i= 27 i+1= 28Point 11: MSB= 3 + LSB= 180. Total= 948<br />i= 29 i+1= 30Point 12: MSB= 0 + LSB= 209. Total= 209<br />i= 31 i+1= 32Point 13: MSB= 88 + LSB= 88. Total= 22616<br /><br /><br />
Chris,<br /><br />Your are correct in that the data is coming LS Byte first ("little endian"). The document is incorrect. All the public CSAFE communcation must be in "little endian" format to comply with the specification. We will get the document updated and issue a new revision.<br /><br />Thanks,<br /><br />Mark
-
- Posts: 0
- Joined: March 18th, 2006, 10:32 pm
When using the concatanated Stroke state with Csafe_pm_get_forceplotdata. Is it possible that data points from the beginning of the next stroke are recorded in the current stroke before the stroke_state 0f 2=Driving is recognized. <br /><br />I seem to sometimes get more positive values after a series of zeroes which seem to be from the next stroke. The example output below seems to suggest that this is happening.<br /><br />Is this a possibilty? Can I solve it by checking for changes in stroke state separately from calls to Csafe_pm_get_forceplotdata?<br /><br />Thanks again for your help.<br /><br /><br />NEW STROKE! drive_current if == 0 old stroke count = 1 dpc=0, drive current<br />*************STROKE READ START OF STROKE DATA********************<br />No. of data points= 74<br />POINT 0: LSB= 0 MSB= 0 Total= 0<br />POINT 1: LSB= 0 MSB= 0 Total= 0<br />POINT 2: LSB= 61 MSB= 0 Total= 61<br />POINT 3: LSB= 61 MSB= 0 Total= 61<br />POINT 4: LSB= 61 MSB= 0 Total= 61<br />POINT 5: LSB= 59 MSB= 0 Total= 59<br />POINT 6: LSB= 59 MSB= 0 Total= 59<br />POINT 7: LSB= 59 MSB= 0 Total= 59<br />POINT 8: LSB= 51 MSB= 0 Total= 51<br />POINT 9: LSB= 51 MSB= 0 Total= 51<br />POINT 10: LSB= 51 MSB= 0 Total= 51<br />POINT 11: LSB= 46 MSB= 0 Total= 46<br />POINT 12: LSB= 46 MSB= 0 Total= 46<br />POINT 13: LSB= 46 MSB= 0 Total= 46<br />POINT 14: LSB= 41 MSB= 0 Total= 41<br />POINT 15: LSB= 41 MSB= 0 Total= 41<br />POINT 16: LSB= 41 MSB= 0 Total= 41<br />POINT 17: LSB= 32 MSB= 0 Total= 32<br />POINT 18: LSB= 32 MSB= 0 Total= 32<br />POINT 19: LSB= 20 MSB= 0 Total= 20<br />POINT 20: LSB= 20 MSB= 0 Total= 20<br />POINT 21: LSB= 20 MSB= 0 Total= 20<br />POINT 22: LSB= 6 MSB= 0 Total= 6<br />POINT 23: LSB= 6 MSB= 0 Total= 6<br />POINT 24: LSB= 6 MSB= 0 Total= 6<br />POINT 25: LSB= 0 MSB= 0 Total= 0<br />POINT 26: LSB= 0 MSB= 0 Total= 0<br />POINT 27: LSB= 0 MSB= 0 Total= 0<br />POINT 28: LSB= 0 MSB= 0 Total= 0<br />POINT 29: LSB= 0 MSB= 0 Total= 0<br />POINT 30: LSB= 0 MSB= 0 Total= 0<br />POINT 31: LSB= 0 MSB= 0 Total= 0<br />POINT 32: LSB= 0 MSB= 0 Total= 0<br />POINT 33: LSB= 0 MSB= 0 Total= 0<br />POINT 34: LSB= 16 MSB= 0 Total= 16<br />POINT 35: LSB= 16 MSB= 0 Total= 16<br />POINT 36: LSB= 16 MSB= 0 Total= 16<br /><br />*************STROKE READ END OF STROKE DATA********************<br /><br />NEW STROKE! drive_current if == 0 old stroke count = 2 dpc=0, drive current<br />*************STROKE READ START OF STROKE DATA********************<br />No. of data points= 86<br />POINT 0: LSB= 44 MSB= 0 Total= 44<br />POINT 1: LSB= 44 MSB= 0 Total= 44<br />POINT 2: LSB= 72 MSB= 0 Total= 72<br />POINT 3: LSB= 72 MSB= 0 Total= 72<br />POINT 4: LSB= 84 MSB= 0 Total= 84<br />POINT 5: LSB= 84 MSB= 0 Total= 84<br />POINT 6: LSB= 84 MSB= 0 Total= 84<br />POINT 7: LSB= 83 MSB= 0 Total= 83<br />POINT 8: LSB= 83 MSB= 0 Total= 83<br />POINT 9: LSB= 84 MSB= 0 Total= 84<br />POINT 10: LSB= 84 MSB= 0 Total= 84<br />POINT 11: LSB= 87 MSB= 0 Total= 87<br />POINT 12: LSB= 87 MSB= 0 Total= 87<br />POINT 13: LSB= 85 MSB= 0 Total= 85<br />POINT 14: LSB= 85 MSB= 0 Total= 85<br />POINT 15: LSB= 85 MSB= 0 Total= 85<br />POINT 16: LSB= 80 MSB= 0 Total= 80<br />POINT 17: LSB= 80 MSB= 0 Total= 80<br />POINT 18: LSB= 80 MSB= 0 Total= 80<br />POINT 19: LSB= 80 MSB= 0 Total= 80<br />POINT 20: LSB= 72 MSB= 0 Total= 72<br />POINT 21: LSB= 72 MSB= 0 Total= 72<br />POINT 22: LSB= 70 MSB= 0 Total= 70<br />POINT 23: LSB= 70 MSB= 0 Total= 70<br />POINT 24: LSB= 65 MSB= 0 Total= 65<br />POINT 25: LSB= 65 MSB= 0 Total= 65<br />POINT 26: LSB= 62 MSB= 0 Total= 62<br />POINT 27: LSB= 48 MSB= 0 Total= 48<br />POINT 28: LSB= 48 MSB= 0 Total= 48<br />POINT 29: LSB= 43 MSB= 0 Total= 43<br />POINT 30: LSB= 43 MSB= 0 Total= 43<br />POINT 31: LSB= 23 MSB= 0 Total= 23<br />POINT 32: LSB= 23 MSB= 0 Total= 23<br />POINT 33: LSB= 10 MSB= 0 Total= 10<br />POINT 34: LSB= 10 MSB= 0 Total= 10<br />POINT 35: LSB= 0 MSB= 0 Total= 0<br />POINT 36: LSB= 0 MSB= 0 Total= 0<br />POINT 37: LSB= 0 MSB= 0 Total= 0<br />POINT 38: LSB= 0 MSB= 0 Total= 0<br />POINT 39: LSB= 0 MSB= 0 Total= 0<br />POINT 40: LSB= 0 MSB= 0 Total= 0<br />POINT 41: LSB= 7 MSB= 0 Total= 7<br />POINT 42: LSB= 7 MSB= 0 Total= 7<br /><br />*************STROKE READ END OF STROKE DATA********************<br /><br />NEW STROKE! drive_current if == 0 old stroke count = 3 dpc=0, drive current<br />*************STROKE READ START OF STROKE DATA********************<br />No. of data points= 98<br />POINT 0: LSB= 28 MSB= 0 Total= 28<br />POINT 1: LSB= 28 MSB= 0 Total= 28<br />POINT 2: LSB= 49 MSB= 0 Total= 49<br />POINT 3: LSB= 49 MSB= 0 Total= 49<br />POINT 4: LSB= 64 MSB= 0 Total= 64<br />POINT 5: LSB= 64 MSB= 0 Total= 64<br />POINT 6: LSB= 61 MSB= 0 Total= 61<br />POINT 7: LSB= 69 MSB= 0 Total= 69<br />POINT 8: LSB= 69 MSB= 0 Total= 69<br />POINT 9: LSB= 70 MSB= 0 Total= 70<br />POINT 10: LSB= 70 MSB= 0 Total= 70<br />POINT 11: LSB= 72 MSB= 0 Total= 72<br />POINT 12: LSB= 72 MSB= 0 Total= 72<br />POINT 13: LSB= 75 MSB= 0 Total= 75<br />POINT 14: LSB= 75 MSB= 0 Total= 75<br />POINT 15: LSB= 73 MSB= 0 Total= 73<br />POINT 16: LSB= 72 MSB= 0 Total= 72<br />POINT 17: LSB= 72 MSB= 0 Total= 72<br />POINT 18: LSB= 71 MSB= 0 Total= 71<br />POINT 19: LSB= 71 MSB= 0 Total= 71<br />POINT 20: LSB= 68 MSB= 0 Total= 68<br />POINT 21: LSB= 67 MSB= 0 Total= 67<br />POINT 22: LSB= 67 MSB= 0 Total= 67<br />POINT 23: LSB= 65 MSB= 0 Total= 65<br />POINT 24: LSB= 65 MSB= 0 Total= 65<br />POINT 25: LSB= 62 MSB= 0 Total= 62<br />POINT 26: LSB= 61 MSB= 0 Total= 61<br />POINT 27: LSB= 61 MSB= 0 Total= 61<br />POINT 28: LSB= 63 MSB= 0 Total= 63<br />POINT 29: LSB= 61 MSB= 0 Total= 61<br />POINT 30: LSB= 61 MSB= 0 Total= 61<br />POINT 31: LSB= 56 MSB= 0 Total= 56<br />POINT 32: LSB= 56 MSB= 0 Total= 56<br />POINT 33: LSB= 56 MSB= 0 Total= 56<br />POINT 34: LSB= 59 MSB= 0 Total= 59<br />POINT 35: LSB= 59 MSB= 0 Total= 59<br />POINT 36: LSB= 56 MSB= 0 Total= 56<br />POINT 37: LSB= 49 MSB= 0 Total= 49<br />POINT 38: LSB= 49 MSB= 0 Total= 49<br />POINT 39: LSB= 40 MSB= 0 Total= 40<br />POINT 40: LSB= 30 MSB= 0 Total= 30<br />POINT 41: LSB= 30 MSB= 0 Total= 30<br />POINT 42: LSB= 18 MSB= 0 Total= 18<br />POINT 43: LSB= 8 MSB= 0 Total= 8<br />POINT 44: LSB= 8 MSB= 0 Total= 8<br />POINT 45: LSB= 0 MSB= 0 Total= 0<br />POINT 46: LSB= 0 MSB= 0 Total= 0<br />POINT 47: LSB= 0 MSB= 0 Total= 0<br />POINT 48: LSB= 14 MSB= 0 Total= 14<br /><br />*************STROKE READ END OF STROKE DATA********************
-
- Posts: 0
- Joined: March 18th, 2006, 10:32 pm
I've Tried counting the end of the stroke as stroke_state=4 recovery and reading from that point through to the next recovery. It seems to produce more sensible results. Is this what you would advise?<br /><br />NEW STROKE! drive_current if == 0 old stroke count = 1 dpc=0, drive current<br />*************STROKE READ START OF STROKE DATA********************<br />No. of data points= 136<br />POINT 0: LSB= 0 MSB= 0 Total= 0<br />POINT 1: LSB= 0 MSB= 0 Total= 0<br />POINT 2: LSB= 17 MSB= 0 Total= 17<br />POINT 3: LSB= 17 MSB= 0 Total= 17<br />POINT 4: LSB= 45 MSB= 0 Total= 45<br />POINT 5: LSB= 45 MSB= 0 Total= 45<br />POINT 6: LSB= 72 MSB= 0 Total= 72<br />POINT 7: LSB= 72 MSB= 0 Total= 72<br />POINT 8: LSB= 82 MSB= 0 Total= 82<br />POINT 9: LSB= 82 MSB= 0 Total= 82<br />POINT 10: LSB= 80 MSB= 0 Total= 80<br />POINT 11: LSB= 81 MSB= 0 Total= 81<br />POINT 12: LSB= 81 MSB= 0 Total= 81<br />POINT 13: LSB= 89 MSB= 0 Total= 89<br />POINT 14: LSB= 89 MSB= 0 Total= 89<br />POINT 15: LSB= 95 MSB= 0 Total= 95<br />POINT 16: LSB= 95 MSB= 0 Total= 95<br />POINT 17: LSB= 94 MSB= 0 Total= 94<br />POINT 18: LSB= 94 MSB= 0 Total= 94<br />POINT 19: LSB= 100 MSB= 0 Total= 100<br />POINT 20: LSB= 98 MSB= 0 Total= 98<br />POINT 21: LSB= 98 MSB= 0 Total= 98<br />POINT 22: LSB= 98 MSB= 0 Total= 98<br />POINT 23: LSB= 98 MSB= 0 Total= 98<br />POINT 24: LSB= 103 MSB= 0 Total= 103<br />POINT 25: LSB= 100 MSB= 0 Total= 100<br />POINT 26: LSB= 100 MSB= 0 Total= 100<br />POINT 27: LSB= 107 MSB= 0 Total= 107<br />POINT 28: LSB= 109 MSB= 0 Total= 109<br />POINT 29: LSB= 109 MSB= 0 Total= 109<br />POINT 30: LSB= 112 MSB= 0 Total= 112<br />POINT 31: LSB= 107 MSB= 0 Total= 107<br />POINT 32: LSB= 107 MSB= 0 Total= 107<br />POINT 33: LSB= 117 MSB= 0 Total= 117<br />POINT 34: LSB= 118 MSB= 0 Total= 118<br />POINT 35: LSB= 118 MSB= 0 Total= 118<br />POINT 36: LSB= 120 MSB= 0 Total= 120<br />POINT 37: LSB= 121 MSB= 0 Total= 121<br />POINT 38: LSB= 126 MSB= 0 Total= 126<br />POINT 39: LSB= 126 MSB= 0 Total= 126<br />POINT 40: LSB= 124 MSB= 0 Total= 124<br />POINT 41: LSB= 135 MSB= 0 Total= 135<br />POINT 42: LSB= 124 MSB= 0 Total= 124<br />POINT 43: LSB= 124 MSB= 0 Total= 124<br />POINT 44: LSB= 125 MSB= 0 Total= 125<br />POINT 45: LSB= 118 MSB= 0 Total= 118<br />POINT 46: LSB= 120 MSB= 0 Total= 120<br />POINT 47: LSB= 113 MSB= 0 Total= 113<br />POINT 48: LSB= 113 MSB= 0 Total= 113<br />POINT 49: LSB= 112 MSB= 0 Total= 112<br />POINT 50: LSB= 105 MSB= 0 Total= 105<br />POINT 51: LSB= 101 MSB= 0 Total= 101<br />POINT 52: LSB= 98 MSB= 0 Total= 98<br />POINT 53: LSB= 98 MSB= 0 Total= 98<br />POINT 54: LSB= 89 MSB= 0 Total= 89<br />POINT 55: LSB= 82 MSB= 0 Total= 82<br />POINT 56: LSB= 79 MSB= 0 Total= 79<br />POINT 57: LSB= 73 MSB= 0 Total= 73<br />POINT 58: LSB= 70 MSB= 0 Total= 70<br />POINT 59: LSB= 70 MSB= 0 Total= 70<br />POINT 60: LSB= 66 MSB= 0 Total= 66<br />POINT 61: LSB= 53 MSB= 0 Total= 53<br />POINT 62: LSB= 43 MSB= 0 Total= 43<br />POINT 63: LSB= 27 MSB= 0 Total= 27<br />POINT 64: LSB= 24 MSB= 0 Total= 24<br />POINT 65: LSB= 6 MSB= 0 Total= 6<br />POINT 66: LSB= 6 MSB= 0 Total= 6<br />POINT 67: LSB= 0 MSB= 0 Total= 0<br /><br />*************STROKE READ END OF STROKE DATA********************<br /><br />NEW STROKE! drive_current if == 0 old stroke count = 2 dpc=0, drive current<br />*************STROKE READ START OF STROKE DATA********************<br />No. of data points= 114<br />POINT 0: LSB= 0 MSB= 0 Total= 0<br />POINT 1: LSB= 16 MSB= 0 Total= 16<br />POINT 2: LSB= 16 MSB= 0 Total= 16<br />POINT 3: LSB= 30 MSB= 0 Total= 30<br />POINT 4: LSB= 56 MSB= 0 Total= 56<br />POINT 5: LSB= 71 MSB= 0 Total= 71<br />POINT 6: LSB= 71 MSB= 0 Total= 71<br />POINT 7: LSB= 82 MSB= 0 Total= 82<br />POINT 8: LSB= 83 MSB= 0 Total= 83<br />POINT 9: LSB= 89 MSB= 0 Total= 89<br />POINT 10: LSB= 89 MSB= 0 Total= 89<br />POINT 11: LSB= 98 MSB= 0 Total= 98<br />POINT 12: LSB= 103 MSB= 0 Total= 103<br />POINT 13: LSB= 103 MSB= 0 Total= 103<br />POINT 14: LSB= 103 MSB= 0 Total= 103<br />POINT 15: LSB= 110 MSB= 0 Total= 110<br />POINT 16: LSB= 118 MSB= 0 Total= 118<br />POINT 17: LSB= 116 MSB= 0 Total= 116<br />POINT 18: LSB= 116 MSB= 0 Total= 116<br />POINT 19: LSB= 118 MSB= 0 Total= 118<br />POINT 20: LSB= 117 MSB= 0 Total= 117<br />POINT 21: LSB= 113 MSB= 0 Total= 113<br />POINT 22: LSB= 122 MSB= 0 Total= 122<br />POINT 23: LSB= 112 MSB= 0 Total= 112<br />POINT 24: LSB= 112 MSB= 0 Total= 112<br />POINT 25: LSB= 121 MSB= 0 Total= 121<br />POINT 26: LSB= 119 MSB= 0 Total= 119<br />POINT 27: LSB= 118 MSB= 0 Total= 118<br />POINT 28: LSB= 114 MSB= 0 Total= 114<br />POINT 29: LSB= 118 MSB= 0 Total= 118<br />POINT 30: LSB= 124 MSB= 0 Total= 124<br />POINT 31: LSB= 118 MSB= 0 Total= 118<br />POINT 32: LSB= 118 MSB= 0 Total= 118<br />POINT 33: LSB= 121 MSB= 0 Total= 121<br />POINT 34: LSB= 112 MSB= 0 Total= 112<br />POINT 35: LSB= 115 MSB= 0 Total= 115<br />POINT 36: LSB= 107 MSB= 0 Total= 107<br />POINT 37: LSB= 107 MSB= 0 Total= 107<br />POINT 38: LSB= 99 MSB= 0 Total= 99<br />POINT 39: LSB= 97 MSB= 0 Total= 97<br />POINT 40: LSB= 99 MSB= 0 Total= 99<br />POINT 41: LSB= 82 MSB= 0 Total= 82<br />POINT 42: LSB= 94 MSB= 0 Total= 94<br />POINT 43: LSB= 66 MSB= 0 Total= 66<br />POINT 44: LSB= 76 MSB= 0 Total= 76<br />POINT 45: LSB= 59 MSB= 0 Total= 59<br />POINT 46: LSB= 67 MSB= 0 Total= 67<br />POINT 47: LSB= 53 MSB= 0 Total= 53<br />POINT 48: LSB= 53 MSB= 0 Total= 53<br />POINT 49: LSB= 57 MSB= 0 Total= 57<br />POINT 50: LSB= 47 MSB= 0 Total= 47<br />POINT 51: LSB= 43 MSB= 0 Total= 43<br />POINT 52: LSB= 45 MSB= 0 Total= 45<br />POINT 53: LSB= 37 MSB= 0 Total= 37<br />POINT 54: LSB= 35 MSB= 0 Total= 35<br />POINT 55: LSB= 18 MSB= 0 Total= 18<br />POINT 56: LSB= 13 MSB= 0 Total= 13<br /><br />*************STROKE READ END OF STROKE DATA********************<br /><br />NEW STROKE! drive_current if == 0 old stroke count = 3 dpc=0, drive current<br />*************STROKE READ START OF STROKE DATA********************<br />No. of data points= 106<br />POINT 0: LSB= 14 MSB= 0 Total= 14<br />POINT 1: LSB= 34 MSB= 0 Total= 34<br />POINT 2: LSB= 55 MSB= 0 Total= 55<br />POINT 3: LSB= 55 MSB= 0 Total= 55<br />POINT 4: LSB= 79 MSB= 0 Total= 79<br />POINT 5: LSB= 89 MSB= 0 Total= 89<br />POINT 6: LSB= 94 MSB= 0 Total= 94<br />POINT 7: LSB= 94 MSB= 0 Total= 94<br />POINT 8: LSB= 92 MSB= 0 Total= 92<br />POINT 9: LSB= 92 MSB= 0 Total= 92<br />POINT 10: LSB= 101 MSB= 0 Total= 101<br />POINT 11: LSB= 97 MSB= 0 Total= 97<br />POINT 12: LSB= 97 MSB= 0 Total= 97<br />POINT 13: LSB= 105 MSB= 0 Total= 105<br />POINT 14: LSB= 107 MSB= 0 Total= 107<br />POINT 15: LSB= 109 MSB= 0 Total= 109<br />POINT 16: LSB= 118 MSB= 0 Total= 118<br />POINT 17: LSB= 107 MSB= 0 Total= 107<br />POINT 18: LSB= 116 MSB= 0 Total= 116<br />POINT 19: LSB= 116 MSB= 0 Total= 116<br />POINT 20: LSB= 110 MSB= 0 Total= 110<br />POINT 21: LSB= 110 MSB= 0 Total= 110<br />POINT 22: LSB= 109 MSB= 0 Total= 109<br />POINT 23: LSB= 111 MSB= 0 Total= 111<br />POINT 24: LSB= 111 MSB= 0 Total= 111<br />POINT 25: LSB= 105 MSB= 0 Total= 105<br />POINT 26: LSB= 111 MSB= 0 Total= 111<br />POINT 27: LSB= 111 MSB= 0 Total= 111<br />POINT 28: LSB= 112 MSB= 0 Total= 112<br />POINT 29: LSB= 102 MSB= 0 Total= 102<br />POINT 30: LSB= 108 MSB= 0 Total= 108<br />POINT 31: LSB= 101 MSB= 0 Total= 101<br />POINT 32: LSB= 98 MSB= 0 Total= 98<br />POINT 33: LSB= 100 MSB= 0 Total= 100<br />POINT 34: LSB= 84 MSB= 0 Total= 84<br />POINT 35: LSB= 87 MSB= 0 Total= 87<br />POINT 36: LSB= 75 MSB= 0 Total= 75<br />POINT 37: LSB= 83 MSB= 0 Total= 83<br />POINT 38: LSB= 75 MSB= 0 Total= 75<br />POINT 39: LSB= 78 MSB= 0 Total= 78<br />POINT 40: LSB= 72 MSB= 0 Total= 72<br />POINT 41: LSB= 60 MSB= 0 Total= 60<br />POINT 42: LSB= 54 MSB= 0 Total= 54<br />POINT 43: LSB= 58 MSB= 0 Total= 58<br />POINT 44: LSB= 54 MSB= 0 Total= 54<br />POINT 45: LSB= 58 MSB= 0 Total= 58<br />POINT 46: LSB= 39 MSB= 0 Total= 39<br />POINT 47: LSB= 46 MSB= 0 Total= 46<br />POINT 48: LSB= 34 MSB= 0 Total= 34<br />POINT 49: LSB= 34 MSB= 0 Total= 34<br />POINT 50: LSB= 43 MSB= 0 Total= 43<br />POINT 51: LSB= 27 MSB= 0 Total= 27<br />POINT 52: LSB= 23 MSB= 0 Total= 23<br /><br />*************STROKE READ END OF STROKE DATA********************
Chris,<br /><br />Yes...I think this makes the most sense. Since the PM3 is "detecting" the beginning of stroke itself by observing the flywheel behavior while simultaneously collecting forceplot data there may be a slightly delay (or offset) between the actual stroke beginning as detected by the PM3 and forceplot data collection. Collecting from recovery to recovery guarantees not missing any data.<br /><br />Mark