Send commitlog mailing list submissions to
        commitlog@lists.openmoko.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        commitlog-requ...@lists.openmoko.org

You can reach the person managing the list at
        commitlog-ow...@lists.openmoko.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r5796 - trunk/gta02-core/bom (wer...@docs.openmoko.org)
   2. r5797 - in trunk/gta02-core/bom: . test test/1 test/2
      (wer...@docs.openmoko.org)
   3. r5798 - trunk/gta02-core/bom (wer...@docs.openmoko.org)
   4. r5799 - trunk/gta02-core/bom (wer...@docs.openmoko.org)
--- Begin Message ---
Author: werner
Date: 2010-01-26 17:36:41 +0100 (Tue, 26 Jan 2010)
New Revision: 5796

Modified:
   trunk/gta02-core/bom/Makefile
   trunk/gta02-core/bom/gta02-core.inv
   trunk/gta02-core/bom/part2order
Log:
BOM processing: added price optimization algorithm for quantity discounts.



Modified: trunk/gta02-core/bom/Makefile
===================================================================
--- trunk/gta02-core/bom/Makefile       2010-01-26 15:03:30 UTC (rev 5795)
+++ trunk/gta02-core/bom/Makefile       2010-01-26 16:36:41 UTC (rev 5796)
@@ -3,7 +3,7 @@
 all:           gta02-core.ord
 
 gta02-core.ord:        part2order gta02-core.par fic/fic.inv gta02-core.inv
-               perl part2order fic/fic.inv gta02-core.inv gta02-core.par
+               perl part2order 20 fic/fic.inv gta02-core.inv gta02-core.par
 # \ >$@ || { rm -rf $@; exit 1; }
        
 gta02-core.par:        bom2part fic/fic.equ ../gta02-core.lst gta02-core.inv

Modified: trunk/gta02-core/bom/gta02-core.inv
===================================================================
--- trunk/gta02-core/bom/gta02-core.inv 2010-01-26 15:03:30 UTC (rev 5795)
+++ trunk/gta02-core/bom/gta02-core.inv 2010-01-26 16:36:41 UTC (rev 5796)
@@ -1,2 +1,2 @@
 #INV
-GTA02-CORE TST 99999 1 USD 0
+GTA02-CORE TST 99999 USD 1 0

Modified: trunk/gta02-core/bom/part2order
===================================================================
--- trunk/gta02-core/bom/part2order     2010-01-26 15:03:30 UTC (rev 5795)
+++ trunk/gta02-core/bom/part2order     2010-01-26 16:36:41 UTC (rev 5796)
@@ -2,6 +2,7 @@
 
 require "parser.pl";
 
+$mult = shift(@ARGV);
 &parse;
 
 
@@ -9,8 +10,9 @@
 {
     local ($id) = @_;
 
-    my $n = $inv{$id}[0];
-    return $want{$id} < $n ? $want{$id} : $n;
+    my $s = $inv{$id}[0];
+    my $n = $want{$id}*$mult;
+    return $n < $s ? $n : $s;
 
 }
 
@@ -21,6 +23,48 @@
 
 for (sort { &number($b) <=> &number($a) } keys %want) {
     my $n = &number($_);
+    $n -= $n % $mult;
     next unless $n;
-    print "$_ $n\n";
+    my @f = @{ $inv{$_} };
+    my $max = shift @f;
+    my $currency = shift @f;
+    my @qty;
+    my @price;
+    my %index;
+    my $best_qty;
+    my $best_price = undef;
+    while (@f) {
+       my $q = shift @f;
+       my $p = shift @f;
+       if (defined $index{$q}) {
+           $price[$index{$q}] = $p;
+       } else {
+           push(@qty, $q);
+           push(@price, $p);
+           $index{$q} = $#qty;
+           # @@@ this fails if smaller quantities following a large quantity
+           # differ from the quantities preceding them. E.g., 1 10 100 25
+           # wouldn't yield correct results.
+       }
+       for (my $i = $#qty; $i >= 0; $i--) {
+           my $order = 0;
+           my $price = 0;
+           my $left = $n;
+           for (my $j = $#qty; $j >= $i; $j--) {
+               while ($left >= ($j == $i ? 1 : $qty[$j])) {
+                   $left -= $qty[$j];
+                   $order += $qty[$j];
+                   $price += $price[$j]*$qty[$j];
+               }
+           }
+           next if $order > $max;
+           if (!defined $best_price || $price < $best_price) {
+               $best_price = $price;
+               $best_qty = $order;
+           }
+       }
+    }
+    next if !defined $best_price;
+    print "$_ $best_qty $currency $best_price\n";
+# tested until price composition. todo: demand adjustment
 }




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2010-01-26 21:42:25 +0100 (Tue, 26 Jan 2010)
New Revision: 5797

Added:
   trunk/gta02-core/bom/test/
   trunk/gta02-core/bom/test/1/
   trunk/gta02-core/bom/test/1/1.inv
   trunk/gta02-core/bom/test/1/1.par
   trunk/gta02-core/bom/test/1/Makefile
   trunk/gta02-core/bom/test/2/
   trunk/gta02-core/bom/test/2/2.inv
   trunk/gta02-core/bom/test/2/2.par
   trunk/gta02-core/bom/test/2/Makefile
Modified:
   trunk/gta02-core/bom/gta02-core.inv
   trunk/gta02-core/bom/parser.pl
   trunk/gta02-core/bom/part2order
Log:
- bom/test/: added regression tests for part2order
- bom/parser.pl: documented global variables set by parser
- bom/part2order: part numbers are now adjusted and we can take parts from
  multiple inventories



Modified: trunk/gta02-core/bom/gta02-core.inv
===================================================================
--- trunk/gta02-core/bom/gta02-core.inv 2010-01-26 16:36:41 UTC (rev 5796)
+++ trunk/gta02-core/bom/gta02-core.inv 2010-01-26 20:42:25 UTC (rev 5797)
@@ -1,2 +1,2 @@
 #INV
-GTA02-CORE TST 99999 USD 1 0
+GTA02-CORE TST 999999 USD 1 0

Modified: trunk/gta02-core/bom/parser.pl
===================================================================
--- trunk/gta02-core/bom/parser.pl      2010-01-26 16:36:41 UTC (rev 5796)
+++ trunk/gta02-core/bom/parser.pl      2010-01-26 20:42:25 UTC (rev 5797)
@@ -6,6 +6,15 @@
 }
 
 
+#
+# "bom" populates the following global variable:
+#
+# $cmp{component-reference}[0] = value
+# $cmp{component-reference}[1] = footprint
+# $cmp{component-reference}[2] = field1
+# ...
+#
+
 sub bom
 {
     if (/^#End Cmp/) {
@@ -20,6 +29,17 @@
 }
 
 
+#
+# "equ" populates the following global variables:
+#
+# $id{item-number} = "namespace item-number"
+#   This is used for heuristics that look up parts commonly referred to by
+#   their part number.
+#
+# $eq{"namespace0 item-number0"}[] = ("namespace1 item-number1", ...)
+#   List of all parts a given part is equivalent to.
+#
+
 sub equ
 {
     my @f = split(/\s+/);
@@ -32,6 +52,20 @@
 }
 
 
+#
+# "inv" populates the following global variables:
+#
+# $id{item-number} = "namespace item-number"
+#   This is used for heuristics that look up parts commonly referred to by
+#   their part number.
+#
+# $inv{"namespace item-number"}[0] = items-in-stock
+# $inv{"namespace item-number"}[1] = currency
+# $inv{"namespace item-number"}[2] = order-quantity
+# $inv{"namespace item-number"}[3] = unit-price
+#   [2] and [3] may repeat.
+#
+
 sub inv
 {
     my @f = split(/\s+/);
@@ -44,6 +78,21 @@
 }
 
 
+#
+# "par" populates the following global variables:
+#
+# $parts{component-ref}[0] = namespace
+# $parts{component-ref}[1] = item-number
+# [0] and [1] may repeat
+#
+# $want{"namespace item"} = number of times we may use the part. If multiple
+#   parts are eligible for a component, each of them is counted as desirable
+#   for each component.
+#
+# $comps{"namespace item"}{component-ref} = 1
+#   Set of components a part may be used for.
+#
+
 sub par
 {
     my @f = split(/\s+/);
@@ -53,7 +102,7 @@
        my @id = splice(@f, 0, 2);
        my $id = "$id[0] $id[1]";
        $want{$id}++;
-       push @{ $comps{$id} }, $ref;
+       $comps{$id}{$ref} = 1;
     }
 }
 

Modified: trunk/gta02-core/bom/part2order
===================================================================
--- trunk/gta02-core/bom/part2order     2010-01-26 16:36:41 UTC (rev 5796)
+++ trunk/gta02-core/bom/part2order     2010-01-26 20:42:25 UTC (rev 5797)
@@ -17,11 +17,43 @@
 }
 
 
+#
+# The heuristics here aren't very nice. We give zero-cost stock priority over
+# any other stock, when we go by stock size up to the quantity we need. The
+# idea is to exhause local stock (zero-cost) first, then try to obtain the
+# parts with as few orders as possible.
+#
+# It would be better to have some sort of priority, so that we can express a
+# preference among stock we already own. Also, if non-zero-cost stock has widly
+# different prices, the smallest order cost may not be a good indicator of
+# which source we prefer.
+#
+# Furthermore, the algorithm doesn't consider the number of sources we use in
+# total or things like lead time, shipping cost, customs, etc.
+#
+
+sub rank
+{
+    local ($a, $b) = @_;
+
+    my $na = &number($a);
+    my $nb = &number($b);
+    my $pa = $inv{$a}[3];
+    my $pb = $inv{$b}[3];
+
+#print STDERR "a=$a b=$b na=$na nb=$nb pa=$pa pb=$pb\n";
+    return 1 if !$pa && $pb;
+    return -1 if $pa && !$pb;
+    return $na <=> $nb if $na != $nb;
+    return $pb <=> $pa;
+}
+
+
 for (keys %parts) {
     $parts++;
 }
 
-for (sort { &number($b) <=> &number($a) } keys %want) {
+for (sort { &rank($b, $a) } keys %want) {
     my $n = &number($_);
     $n -= $n % $mult;
     next unless $n;
@@ -65,6 +97,21 @@
        }
     }
     next if !defined $best_price;
-    print "$_ $best_qty $currency $best_price\n";
-# tested until price composition. todo: demand adjustment
+    print "$_ $best_qty $currency $best_price";
+    my $id = $_;
+    while (keys %{ $comps{$id} }) {
+       last if $best_qty < $mult;
+       $best_qty -= $mult;
+       my $ref = (sort keys %{ $comps{$id} })[0];
+#print STDERR "$id: $ref + ", join("|", keys %{ $comps{$id} }), "\n";
+       my @f = @{ $parts{$ref} };
+       while (@f) {
+           my @id2 = splice(@f, 0, 2);
+           my $id2 = "$id2[0] $id2[1]";
+           $want{$id2}--;
+           delete $comps{$id2}{$ref};
+       }
+       print " $ref";
+    }
+    print "\n";
 }

Added: trunk/gta02-core/bom/test/1/1.inv
===================================================================
--- trunk/gta02-core/bom/test/1/1.inv                           (rev 0)
+++ trunk/gta02-core/bom/test/1/1.inv   2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,2 @@
+#INV
+TEST TST 999999 ARS 1 0.1 10 0.05

Added: trunk/gta02-core/bom/test/1/1.par
===================================================================
--- trunk/gta02-core/bom/test/1/1.par                           (rev 0)
+++ trunk/gta02-core/bom/test/1/1.par   2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,10 @@
+#PAR
+TP001 TEST TST
+TP002 TEST TST
+TP003 TEST TST
+TP004 TEST TST
+TP005 TEST TST
+TP006 TEST TST
+TP007 TEST TST
+TP008 TEST TST
+TP009 TEST TST

Added: trunk/gta02-core/bom/test/1/Makefile
===================================================================
--- trunk/gta02-core/bom/test/1/Makefile                                (rev 0)
+++ trunk/gta02-core/bom/test/1/Makefile        2010-01-26 20:42:25 UTC (rev 
5797)
@@ -0,0 +1,2 @@
+all:
+       perl -I../.. ../../part2order 1 1.par 1.inv

Added: trunk/gta02-core/bom/test/2/2.inv
===================================================================
--- trunk/gta02-core/bom/test/2/2.inv                           (rev 0)
+++ trunk/gta02-core/bom/test/2/2.inv   2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,3 @@
+#INV
+TEST TST 3 EUR 1 0
+ALT TST 999999 EUR 1 0.1

Added: trunk/gta02-core/bom/test/2/2.par
===================================================================
--- trunk/gta02-core/bom/test/2/2.par                           (rev 0)
+++ trunk/gta02-core/bom/test/2/2.par   2010-01-26 20:42:25 UTC (rev 5797)
@@ -0,0 +1,6 @@
+#PAR
+TP001 TEST TST ALT TST
+TP002 TEST TST ALT TST
+TP003 TEST TST ALT TST
+TP004 TEST TST ALT TST
+TP005 TEST TST ALT TST

Added: trunk/gta02-core/bom/test/2/Makefile
===================================================================
--- trunk/gta02-core/bom/test/2/Makefile                                (rev 0)
+++ trunk/gta02-core/bom/test/2/Makefile        2010-01-26 20:42:25 UTC (rev 
5797)
@@ -0,0 +1,2 @@
+all:
+       perl -I../.. ../../part2order 1 2.par 2.inv




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2010-01-26 22:56:39 +0100 (Tue, 26 Jan 2010)
New Revision: 5798

Modified:
   trunk/gta02-core/bom/Makefile
   trunk/gta02-core/bom/bom2part
   trunk/gta02-core/bom/workflow.fig
Log:
- bom/workflow.fig: added more items, updated workflow
- bom/Makefile: fixed building of files under bom/fic/
- bom/Makefile: write order list to .ord file instead of standard output
- bom/bom2part: final diagnostic was missing a newline



Modified: trunk/gta02-core/bom/Makefile
===================================================================
--- trunk/gta02-core/bom/Makefile       2010-01-26 20:42:25 UTC (rev 5797)
+++ trunk/gta02-core/bom/Makefile       2010-01-26 21:56:39 UTC (rev 5798)
@@ -1,21 +1,34 @@
-.PHONY:                all spotless
+upload=wer...@sita.openmoko.org:public_html/gta02-core/
+COPY=rsync -e ssh --progress
 
+KITS=20
+
+.PHONY:                all spotless upload
+
+
 all:           gta02-core.ord
 
 gta02-core.ord:        part2order gta02-core.par fic/fic.inv gta02-core.inv
-               perl part2order 20 fic/fic.inv gta02-core.inv gta02-core.par
-# \ >$@ || { rm -rf $@; exit 1; }
+               perl part2order $(KITS) \
+                 fic/fic.inv gta02-core.inv gta02-core.par >$@ || \
+                 { rm -rf $@; exit 1; }
        
 gta02-core.par:        bom2part fic/fic.equ ../gta02-core.lst gta02-core.inv
                perl bom2part fic/fic.equ ../gta02-core.lst  gta02-core.inv \
                    >$@ || { rm -rf $@; exit 1; }
 
 fic/fic.equ:
-               $(MAKE) -C fic/fic.equ
+               $(MAKE) -C fic fic.equ
 
 fic/fic.inv:
-               $(MAKE) -C fic/fic.inv
+               $(MAKE) -C fic fic.inv
 
+workflow.pdf:  workflow.fig
+               fig2dev -L pdf $< >$@ || { rm -f $@; exit 1; }
+
+upload:                workflow.pdf
+               $(COPY) workflow.pdf $(UPLOAD)/bom-workflow.pdf
+
 spotless:
                $(MAKE) -C fic spotless
                rm -f gta02-core.par gta02-core.ord

Modified: trunk/gta02-core/bom/bom2part
===================================================================
--- trunk/gta02-core/bom/bom2part       2010-01-26 20:42:25 UTC (rev 5797)
+++ trunk/gta02-core/bom/bom2part       2010-01-26 21:56:39 UTC (rev 5798)
@@ -43,4 +43,4 @@
     $bad++;
 #    print join("#", ($ref, @f)), " -> $id{$f[0]}\n";
 }
-print STDERR "$bad/$total unmatched" if $bad;
+print STDERR "$bad/$total unmatched\n" if $bad;

Modified: trunk/gta02-core/bom/workflow.fig
===================================================================
--- trunk/gta02-core/bom/workflow.fig   2010-01-26 20:42:25 UTC (rev 5797)
+++ trunk/gta02-core/bom/workflow.fig   2010-01-26 21:56:39 UTC (rev 5798)
@@ -7,52 +7,82 @@
 Single
 -2
 1200 2
+6 450 7200 6480 8775
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 7380 .sch\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 7605 .lst\001
+4 0 0 50 -1 12 12 0.0000 4 105 540 450 7830 .csv\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8055 .inv\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8280 .equ\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8505 .par\001
+4 0 0 50 -1 12 12 0.0000 4 150 540 450 8730 .ord\001
+4 0 0 50 -1 1 12 0.0000 4 195 2010 1350 7380 schematics (for KiCad)\001
+4 0 0 50 -1 1 12 0.0000 4 195 2220 1350 7605 BOM generated by KiCad\001
+4 0 0 50 -1 1 12 0.0000 4 195 2520 1350 8055 inventory with stock and cost\001
+4 0 0 50 -1 1 12 0.0000 4 195 3045 1350 7830 GTA02 EE component stock at 
FIC\001
+4 0 0 50 -1 1 12 0.0000 4 195 5130 1350 8280 part number equivalences, e.g., 
manufacturer vs. distributor\001
+4 0 0 50 -1 1 12 0.0000 4 195 2910 1350 8505 component to part number(s) 
map\001
+4 0 0 50 -1 1 12 0.0000 4 195 5025 1350 8730 list of parts to order, with 
price and component references\001
+-6
+6 450 6075 3150 6750
+4 0 0 50 -1 14 12 0.0000 4 180 2700 450 6255 Source file (in SVN)\001
+4 0 0 50 -1 12 12 0.0000 4 150 1890 450 6480 Generated file\001
+4 0 0 50 -1 18 12 0.0000 4 210 1830 450 6705 Program (in SVN)\001
+-6
+6 4005 1575 11025 6075
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+       1 1 2.00 60.00 60.00
+        9000 3150 9000 3375 7425 3375 7425 3825
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        5400 2250 5400 2700
+        7200 4050 7200 4500
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+       1 1 2.00 60.00 60.00
+        10350 3150 10350 4950 7425 4950 7425 5175
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        6750 2250 6750 2700
+        7200 4725 7200 5175
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+       1 1 2.00 60.00 60.00
+        4950 3375 4950 4950 6975 4950 6975 5175
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        6750 2925 6750 3375
+        7200 5400 7200 5850
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        5400 2925 5400 3375
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+        7200 3150 7200 3825
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        3150 3600 3150 3825 4275 3825 4275 4275
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+        10350 2475 10350 2925
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        5400 3600 5400 3825 4500 3825 4500 4275
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
+        9000 2475 9000 2925
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        6750 3600 6750 4050 4725 4050 4725 4275
+        7200 2475 7200 2925
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
        1 1 2.00 60.00 60.00
-        4500 4500 4500 4950
+        7200 1800 7200 2250
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
        1 1 2.00 60.00 60.00
-        6750 4050 6750 5400 4725 5400 4725 5625
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+        9675 1800 9675 2025 9000 2025 9000 2250
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 3
        1 1 2.00 60.00 60.00
-        4500 5175 4500 5625
+        9675 2025 10350 2025 10350 2250
 2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
        1 1 2.00 60.00 60.00
-        3150 3825 3150 5400 4275 5400 4275 5625
-2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        4500 5850 4500 6300
-4 1 0 50 -1 14 12 0.0000 4 195 2700 6075 2205 inventory-fic-ee.csv\001
-4 1 0 50 -1 18 12 0.0000 4 165 1095 5400 2880 fic2vendor\001
-4 1 0 50 -1 18 12 0.0000 4 165 675 6750 2880 fic2inv\001
-4 1 0 50 -1 12 12 0.0000 4 150 945 6750 3555 fic.inv\001
-4 1 0 50 -1 12 12 0.0000 4 195 945 5400 3555 fic.equ\001
-4 1 0 50 -1 14 12 0.0000 4 195 1890 3375 3555 gta02-core.inv\001
-4 1 0 50 -1 18 12 0.0000 4 210 990 4500 4455 bom2part\001
-4 1 0 50 -1 12 12 0.0000 4 195 1890 4500 5130 gta02-core.par\001
-4 0 0 50 -1 14 12 0.0000 4 195 1755 1350 8280 Original file\001
-4 0 0 50 -1 12 12 0.0000 4 150 1890 1350 8505 Generated file\001
-4 0 0 50 -1 18 12 0.0000 4 210 900 1350 8730 Program\001
-4 1 0 50 -1 18 12 0.0000 4 210 1110 4500 5805 part2order\001
-4 1 0 50 -1 12 12 0.0000 4 195 1890 4500 6480 gta02-core.ord\001
+        4950 1800 4950 3375 6975 3375 6975 3825
+4 1 0 50 -1 18 12 0.0000 4 210 990 7200 4005 bom2part\001
+4 1 0 50 -1 18 12 0.0000 4 210 1110 7200 5355 part2order\001
+4 1 0 50 -1 12 12 0.0000 4 195 1890 7200 6030 gta02-core.ord\001
+4 1 0 50 -1 12 12 0.0000 4 195 1890 7200 3105 gta02-core.lst\001
+4 1 0 50 -1 12 12 0.0000 4 195 945 9000 3105 fic.equ\001
+4 1 0 50 -1 12 12 0.0000 4 150 945 10350 3105 fic.inv\001
+4 1 0 50 -1 14 12 0.0000 4 195 2700 9675 1755 inventory-fic-ee.csv\001
+4 1 0 50 -1 18 12 0.0000 4 165 675 10350 2430 fic2inv\001
+4 1 0 50 -1 18 12 0.0000 4 165 1095 9000 2430 fic2vendor\001
+4 1 0 50 -1 18 12 0.0000 4 165 1035 7200 2430 eeschema\001
+4 1 0 50 -1 14 12 0.0000 4 150 675 7200 1755 *.sch\001
+4 1 0 50 -1 14 12 0.0000 4 195 1890 4950 1755 gta02-core.inv\001
+4 1 0 50 -1 12 12 0.0000 4 195 1890 7200 4680 gta02-core.par\001
+-6
+4 0 0 50 -1 2 16 0.0000 4 255 3345 450 675 BOM Processing - Workflow\001




--- End Message ---
--- Begin Message ---
Author: werner
Date: 2010-01-26 23:11:00 +0100 (Tue, 26 Jan 2010)
New Revision: 5799

Modified:
   trunk/gta02-core/bom/bom2part
Log:
- bom/bom2part: better diagnostics for unmatched parts



Modified: trunk/gta02-core/bom/bom2part
===================================================================
--- trunk/gta02-core/bom/bom2part       2010-01-26 21:56:39 UTC (rev 5798)
+++ trunk/gta02-core/bom/bom2part       2010-01-26 22:11:00 UTC (rev 5799)
@@ -39,7 +39,7 @@
        next;
     }
 
-    print STDERR "unmatched: $_\n";
+    print STDERR "unmatched: $_ (", join(", ", @f), ")\n";
     $bad++;
 #    print join("#", ($ref, @f)), " -> $id{$f[0]}\n";
 }




--- End Message ---
_______________________________________________
commitlog mailing list
commitlog@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to