<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -55,29 +55,30 @@ def mmp(data, sec=60):
     mmp_start=0
     mmp_end=0
     peak_joules=0
-
+    
     for i in range(0, len(data)):
-        count=0
-        joules=0
-        while count &lt; sec:
-            try:
-                time_diff=data[i+count]['time_diff']
-                joule=int(data[i+count]['power'] * time_diff)
+        index_count, time_count, joules=0, 0, 0
 
+        while time_count &lt; sec:
+            try:
+                line=data[i+index_count]
+                
+                time_diff, joule=line['time_diff'], line['power'] * line['time_diff']
+                
                 joules+=joule
-
-                # Increment counter forced if time difference is not set.
-                if time_diff &lt; 1:
-                    count+=1
-                else:
-                    count=count+time_diff
+                index_count+=1
+                time_count+=time_diff
             except IndexError, e:
                 # todo: &#12378;&#12412;&#12425;&#8230;?
                 break
                 pass
-        if joules &gt; peak_joules:
+
+        # record index pointer when greater than previous power 
+        if joules &gt; peak_joules and time_count &lt;= sec:
             mmp_start=i
-            mmp_end=(i+count)
+            mmp_end=(i+index_count)
             peak_joules=joules
 
-    return data[mmp_start:mmp_end]
+    mmp=data[mmp_start:mmp_end]
+
+    return mmp</diff>
      <filename>Bicicalc/power.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,7 @@
 github&#12398;issue list&#12395;&#26360;&#12356;&#12383;&#12369;&#12393;&#12289;&#12525;&#12540;&#12459;&#12523;&#12391;&#21442;&#29031;&#12391;&#12365;&#12394;&#12356;&#12398;&#12391;&#12420;&#12387;&#12401;&#12426;&#12371;&#12387;&#12385;&#12395;&#12418;&#26360;&#12367;&#12290;
 
+ * CSV&#20986;&#21147;&#12523;&#12540;&#12481;&#12531;&#12434;&#21029;&#12395;&#20998;&#12369;&#12427;&#65311;
+
  * bike profile&#12434;&#35501;&#12417;&#12427;&#12424;&#12358;&#12395;&#12377;&#12427;
 
  * &#12478;&#12540;&#12531;&#28382;&#30041;&#26178;&#38291;&#12398;&#33258;&#21205;&#35336;&#31639;</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ def main():
     parser.add_option('--mmp-second', action='store', dest='second', type='int', help='Set MMP seconds')
     parser.add_option('--mmp-minute', action='store', dest='minute', type='int', help='Set MMP minutes')
     parser.add_option('--dump', action='store_true', dest='dump', help='dump csv data')
-    parser.add_option('--dump-summary', action='store_true', dest='dump_summary', help='dump csv data')
+    parser.add_option('--dump-summary', action='store_true', dest='dump_summary', help='dump summary csv data')
     
     (options, args) = parser.parse_args()
     
@@ -26,33 +26,39 @@ def main():
         sys.stderr.write(str(e)+'\n')
         quit(1)
     
-    if options.minute != None:
-        sec=options.minute * 60
-    else:
-        sec=options.second
-    
-    mmp=power.mmp(data, sec)
-
     try:
-        if options.dump:
-            dump(mmp)
-        elif options.dump_summary:
-            dump_summary(mmp, sec)
+        if options.dump or options.dump_summary:
+            mmp=power.mmp(data, sec)
+            if options.dump:
+                dump(mmp)
+            elif options.dump_summary:
+                dump_summary(mmp)
         else:
-            # summary (default)
-            print_summary(mmp, sec)
+            if options.second &gt; 0 or options.minute &gt; 0:
+                if options.minute &gt; 0:
+                    sec=options.minute*60
+                else:
+                    sec=options.second
+                mmp=power.mmp(data, sec)
+                print_summary(mmp)
+            else:
+                for sec in (5, 10, 15, 30, 60, 180, 300, 600, 900):
+                    print_summary(power.mmp(data, sec))
     except ZeroDivisionError, e:
-        sys.stderr.write('Skip file because nothing powerdata\n')
+        sys.stderr.write('Skip file because nothing powerdata (or record broken)\n')
+        sys.stderr.write(str(e)+'\n')
         pass
 
-def summary(mmp, sec):
+def summary(mmp):
     '''
     return powers, joules
     '''
+
     powers=[line['power'] for line in mmp]
     joules=[line['power'] * line['time_diff'] for line in mmp]
+    times=[line['time_diff'] for line in mmp]
 
-    return [powers, joules]
+    return [powers, joules, sum(times)]
 
 def dump(mmp):
     '''
@@ -63,29 +69,29 @@ def dump(mmp):
         m=mmp[i]
         print '%d,%s,%d' % (i, m['id'], m['power'])
 
-def dump_summary(mmp, sec):
+def dump_summary(mmp):
     '''
     dump mmp summary
     '''
 
-    powers, joules=summary(mmp, sec)
+    powers, joules=summary(mmp)
 
     # print 'Average Watts,Max Power,Work'
     print '%.2f,%d,%d' % (sum(powers) / len(powers), max(powers), sum(joules))
 
-def print_summary(mmp, sec):
+def print_summary(mmp):
     '''
     print mmp summary
     '''
     
-    powers, joules=summary(mmp, sec)
+    powers, joules, times=summary(mmp)
 
-    print '== %d seconds Mean Maximal Power ==' % sec
+    print '== %d seconds Mean Maximal Power ==' % times
     print ''
     print 'Average Watts:\t%.2fW' % (sum(powers) / len(powers))
     print 'Max Power:\t%dW' % (max(powers))
     print 'Work:\t\t%dJ' % (sum(joules))
-    
+    print ''    
     
 if __name__ == '__main__':
     main()</diff>
      <filename>g_mmp.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1d8728fcb34cdadd010292e87c7d96103e823306</id>
    </parent>
  </parents>
  <author>
    <name>&#40644;&#24029;&#30000; &#20809;&#22269;</name>
    <email>kikawada@k-matsukawa.hq.indexnext.co.jp</email>
  </author>
  <url>http://github.com/key/bicicalc/commit/927175ad8946b060d76c677d74eb0c68253dae25</url>
  <id>927175ad8946b060d76c677d74eb0c68253dae25</id>
  <committed-date>2009-06-15T19:59:27-07:00</committed-date>
  <authored-date>2009-06-15T19:59:27-07:00</authored-date>
  <message> * MMP&#35336;&#31639;&#26178;&#12289;&#25351;&#23450;&#12424;&#12426;&#12418;&#38263;&#12356;&#12487;&#12540;&#12479;&#12434;&#21462;&#24471;&#12377;&#12427;&#21839;&#38988;&#12364;&#12354;&#12387;&#12383;&#12398;&#12434;&#20462;&#27491;&#12375;&#12383;
  * &#12487;&#12540;&#12479;&#12452;&#12531;&#12487;&#12483;&#12463;&#12473;&#12392;&#26178;&#38291;&#31309;&#31639;&#32622;&#12398;&#21462;&#12426;&#25201;&#12356;&#12434;&#38291;&#36949;&#12360;&#12390;&#12356;&#12383;
 * g_mmp.py&#12398;&#12487;&#12501;&#12457;&#12523;&#12488;&#20986;&#21147;&#12434;&#35079;&#25968;&#20986;&#21147;&#12377;&#12427;&#12424;&#12358;&#12395;&#22793;&#26356;&#12375;&#12383;</message>
  <tree>bd62a11dd0218354acce003d915171b40abd8ed7</tree>
  <committer>
    <name>&#40644;&#24029;&#30000; &#20809;&#22269;</name>
    <email>kikawada@k-matsukawa.hq.indexnext.co.jp</email>
  </committer>
</commit>
