summaryrefslogtreecommitdiff
path: root/2005/d
diff options
context:
space:
mode:
authorschodet2004-06-27 12:04:28 +0000
committerschodet2004-06-27 12:04:28 +0000
commitdaff5cf6e974fa6fa003e7b592475250c83bfc2e (patch)
tree6a7410417943a69bdab1ed1b7e8a19285e40a2fe /2005/d
parenta9f3689ee85da91a51d01a76a469cbb5298806d2 (diff)
Initial revision
Diffstat (limited to '2005/d')
-rw-r--r--2005/d/dev/todo/Makefile18
-rw-r--r--2005/d/dev/todo/TODO146
-rw-r--r--2005/d/dev/todo/tasklist.css84
-rw-r--r--2005/d/dev/todo/tasklist.dtd11
-rwxr-xr-x2005/d/dev/todo/tasklist.pl123
-rw-r--r--2005/d/dev/todo/tasklist.xsl76
6 files changed, 458 insertions, 0 deletions
diff --git a/2005/d/dev/todo/Makefile b/2005/d/dev/todo/Makefile
new file mode 100644
index 0000000..91d0481
--- /dev/null
+++ b/2005/d/dev/todo/Makefile
@@ -0,0 +1,18 @@
+
+all: TODO.xml TODO.html
+
+doc: all
+
+.DELETE_ON_ERROR:
+
+%.html: %.xml tasklist.xsl tasklist.dtd
+ xsltproc tasklist.xsl $< > $@
+
+%.xml: % tasklist.pl
+ ./tasklist.pl < $< > $@
+
+%.valid: %.xml tasklist.dtd
+ rxp -V $< > $@ 2>&1
+
+clean:
+ rm -f TODO.xml TODO.html TODO.valid *.bak *~
diff --git a/2005/d/dev/todo/TODO b/2005/d/dev/todo/TODO
new file mode 100644
index 0000000..e10035d
--- /dev/null
+++ b/2005/d/dev/todo/TODO
@@ -0,0 +1,146 @@
+n Electronique numérique
+
+n.avr Dévellopement AVR
+
+n.avr.howto Prise en main des outils de dévellopement
+= high
+@ TLM
+
+n.avr.twituto Prise en main TWI/i2c
+= high
+@ TLM
+Lire la doc dans les datasheet AVR, trouver de la doc sur l'implémentation
+electronique (standard de cablage...). Voir le site de Philips.
+
+n.avr.twi Module TWI
+= high
+@ Clément
+$ Aout
+
+n.avr.ana Module analogique
+@ Seb
+$ Septembre
+
+n.avr.servopwm Module 8 servo/pwm
+$ Septembre
+@ Romain
+Gérer 8 sorties Servo ou PWM.
+
+n.avr.graphlcd Module LCD graphique
+= low
+$ 2006
+@ Olivier
+
+n.avr.twirs232 Carte de conversion RS232/TWI
+= high
+Faire des tests TWI, faire une carte de traduction RS232/TWI et le logiciel
+qui va avec pour les tests.
+
+n.avr.rs232 Module RS232
+= done
+@ Ni
+$ Juillet
+
+n.avr.rs232.int Module RS232, par interruptions
+= high
+@ Ni
+$ Juillet
+
+n.avr.lcd Module LCD
+@ Rmax
+$ Octobre
+Faire ou récupérer des routines pour contrôler un afficher LCD en mode 4 bits
+(avec 6 fils seulement).
+
+n.avr.kp Module pavé numérique
+= low
+@ Rmax
+$ Octobre
+Faire ou récupérer des routines pour interroger un pavé numérique.
+
+n.twi Bus TWI/I²C
+
+n.twi.hard Spécification hardware I²C
+= high
+$ Aout
+Connaître sur le bout des doigts les spécif hard pour l'I²C, nottament les
+question de cablage et de résistance de pull-up. Lecture intégrale des
+spécifs.
+
+n.asserv Carte d'asservissement
+
+n.asserv.avr Portage AVR
+@ Ni
+$ Sept
+
+n.es Carte ES
+
+n.pano Carte panneau numérique
+
+n.accel Accéléromètre, boussole, gyroscope
+
+n.accel.exp Experimentation, validation de la technologie
+= high
+@ Antoine, Olivier
+$ Juillet
+
+a Electronique analogique
+
+a.puis Carte puissance
+
+a.puis.fin Finioler la carte de puissance
+@ Tb
+= high
+S'arrurer que les schémas correspondent bien à la carte qui fonctionne.
+Documenter la carte.
+
+a.alim Carte alimentation
+
+a.alim.bar Faire un prototype de monitoring bateries
+= low
+$ Janvier
+@ Marcel
+Utiliser un 3914 et un bar graph.
+
+a.alim.concept Conception carte d'alim 2005
+$ Octobre
+@ Romain, Olivier
+Vérifier la stabilité du DC/DC.
+
+Etudier le comportement des interrupteurs (attentions aux rebonds).
+
+Refaire la carte, refaire des tests, attention au footprint du DC/DC.
+
+Ne pas mettre de condos trops gros sur les cartes filles pour éviter les
+chuttes de tension à l'allumage.
+
+Chercher des schéma d'alim à découpage pour les cartes filles.
+
+a.charge Carte de charge
+$ Octobre
+@ Romain, Olivier
+A refaire, gérer charge rapide et charge lente. Essayer de la mettre dans le
+robot, sinon, dans Nestor.
+
+i Informatique
+
+i.c Camera
+$ Septembre
+@ Olivier, Pascal
+
+i.a Automate
+
+i.a.concept Conception
+= high
+$ Aout
+@ Philippe
+Récupérer le travail de pascal, concevoir le système aux tomates.
+
+i.socket Socket pour test
+$ Aout
+@ Jérémy
+??
+
+m Mécanique
+= low
+
diff --git a/2005/d/dev/todo/tasklist.css b/2005/d/dev/todo/tasklist.css
new file mode 100644
index 0000000..5fdb706
--- /dev/null
+++ b/2005/d/dev/todo/tasklist.css
@@ -0,0 +1,84 @@
+body {
+ background-color: white;
+ color: black;
+}
+
+div.task {
+ display: block;
+ padding: 5px 0 5px 5px;
+ margin: 0;
+ /* border: 1px solid black; */
+}
+
+div.taskbody {
+ display: block;
+ padding: 5px;
+ margin: 0;
+ border: 1px solid black;
+ background: #9af;
+}
+
+div.taskbody-low {
+ display: block;
+ padding: 5px;
+ margin: 0;
+ border: 1px solid black;
+ background: #0c9;
+}
+
+div.taskbody-high {
+ display: block;
+ padding: 5px;
+ margin: 0;
+ border: 1px solid black;
+ background: #e88;
+}
+
+div.taskbody-done {
+ display: block;
+ padding: 5px;
+ margin: 0;
+ border: 1px solid black;
+ background: #eee;
+ color: #888;
+}
+
+div.subtask {
+ display: block;
+ margin: 0 0 0 5ex;
+ padding: 0;
+ /* border: 1px solid black; */
+}
+
+div.desc {
+ display: block;
+ margin: 0;
+ padding: 5px;
+}
+
+div.header {
+ display: block;
+}
+
+div.id, div.name {
+ font-weight: bold;
+ display: inline;
+}
+
+div.id {
+ margin-right: 1ex;
+ font-style: italic;
+ float: right;
+}
+
+div.footer {
+ display: block;
+ border: 1px dashed #444;
+ font-size: 80%;
+ padding: 1px 5px;
+ margin: 0;
+}
+
+div.date, div.assignedto {
+ display: inline;
+}
diff --git a/2005/d/dev/todo/tasklist.dtd b/2005/d/dev/todo/tasklist.dtd
new file mode 100644
index 0000000..ae077d2
--- /dev/null
+++ b/2005/d/dev/todo/tasklist.dtd
@@ -0,0 +1,11 @@
+<!ELEMENT tasklist (task*)>
+<!ELEMENT task (name, date?, assignedto?, status?, desc*, task*)>
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT date (#PCDATA)>
+<!ELEMENT assignedto (#PCDATA)>
+<!ELEMENT status (#PCDATA)>
+<!ELEMENT desc (#PCDATA)>
+
+<!ATTLIST task
+ id CDATA #REQUIRED
+>
diff --git a/2005/d/dev/todo/tasklist.pl b/2005/d/dev/todo/tasklist.pl
new file mode 100755
index 0000000..5e9aaba
--- /dev/null
+++ b/2005/d/dev/todo/tasklist.pl
@@ -0,0 +1,123 @@
+#!/usr/bin/perl
+use strict;
+
+sub get_task
+{
+ my ($tasks, $id) = @_;
+ my $subid;
+ if ($id =~ /([^.]+)\.(.+)/)
+ {
+ $id = $1;
+ $subid = $2;
+ }
+ unless (defined $$tasks{$id})
+ {
+ $$tasks{$id} = { };
+ }
+ if (defined $subid)
+ {
+ return get_task ($$tasks{$id}, $subid);
+ }
+ else
+ {
+ return $$tasks{$id};
+ }
+}
+
+sub build_tab
+{
+ my %tab;
+ my $task;
+ my $lastdesc;
+ my $taskid;
+ while (<>)
+ {
+ chomp;
+ if (!defined $lastdesc && /^([a-z0-9](?:\.[a-z0-9.]+)*) (.*)/)
+ {
+ # Task.
+ $taskid = $1;
+ $task = get_task \%tab, $taskid;
+ die "Duplicated task id" if defined $$task{'name'};
+ $$task{'name'} = $2;
+ }
+ elsif (/^\$ (.*)/)
+ {
+ # Date.
+ die "Task not defined" unless defined $task;
+ $$task{'date'} = $1;
+ }
+ elsif (/^@ (.*)/)
+ {
+ # Assigned to.
+ die "Task not defined" unless defined $task;
+ $$task{'assignedto'} = $1;
+ }
+ elsif (/^= (.*)/)
+ {
+ # Status.
+ die "Task not defined" unless defined $task;
+ $$task{'status'} = $1;
+ }
+ elsif (/^$/)
+ {
+ $lastdesc = undef;
+ }
+ else
+ {
+ die "Task not defined" unless defined $task;
+ $$task{'desc'} = [ ] unless defined $$task{'desc'};
+ if (defined $lastdesc)
+ {
+ $$lastdesc .= ' ' . $_;
+ }
+ else
+ {
+ push @{$$task{'desc'}}, $_;
+ $lastdesc = \${$$task{'desc'}}[$#{$$task{'desc'}}]
+ }
+ }
+ }
+ return %tab;
+}
+
+sub print_task_xml
+{
+ my ($id, $space, $task) = @_;
+ my @id = ('name', 'date', 'assignedto', 'status');
+ my %n;
+ for (@id) { $n{$_} = 1 }
+ $n{'desc'} = 1;
+ print "$space<task id=\"$id\">\n";
+ for (@id)
+ {
+ print "$space <$_>$$task{$_}</$_>\n" if defined $$task{$_};
+ }
+ for (@{$$task{'desc'}})
+ {
+ print "$space <desc>$_</desc>\n";
+ }
+ for (sort { $a <=> $b || $a cmp $b } keys %$task)
+ {
+ next if defined $n{$_};
+ print_task_xml ("$id.$_", "$space ", $$task{$_});
+ }
+ print "$space</task>\n";
+}
+
+sub print_tasks_xml
+{
+ print '<?xml version="1.0" encoding="iso-8859-1"?>' . "\n";
+ print '<!DOCTYPE tasklist SYSTEM "tasklist.dtd">' . "\n";
+ print '<?xml-stylesheet href="tasklist.xsl" type="text/xsl"?>' . "\n";
+ print "<tasklist>\n";
+ my ($tasks) = @_;
+ for (sort { $a <=> $b || $a cmp $b} keys %$tasks)
+ {
+ print_task_xml $_, ' ', $$tasks{$_};
+ }
+ print "</tasklist>\n";
+}
+
+my %tab = build_tab;
+print_tasks_xml \%tab;
diff --git a/2005/d/dev/todo/tasklist.xsl b/2005/d/dev/todo/tasklist.xsl
new file mode 100644
index 0000000..59fa0b0
--- /dev/null
+++ b/2005/d/dev/todo/tasklist.xsl
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:output method="html" indent="yes"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ encoding="iso-8859-1"/>
+
+ <xsl:template match="/">
+ <xsl:apply-templates select="tasklist"/>
+ </xsl:template>
+
+ <xsl:template match="tasklist">
+ <html>
+ <head>
+ <title>Liste des tâches</title>
+ <meta name="robot" content="noindex,nofollow"/>
+ <link rel="stylesheet" href="tasklist.css" type="text/css"/>
+ </head>
+ <body>
+ <xsl:apply-templates select="task"/>
+ <p>
+ <a href="http://validator.w3.org/check/referer"><img
+ border="0"
+ src="http://www.w3.org/Icons/valid-html401"
+ alt="Valid HTML 4.01!" height="31"
+ width="88"/></a>
+ </p>
+
+ <p>
+ <a href="http://jigsaw.w3.org/css-validator/check/referer">
+ <img style="border:0;width:88px;height:31px"
+ src="http://jigsaw.w3.org/css-validator/images/vcss"
+ alt="Valid CSS!"/>
+ </a>
+ </p>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="task">
+ <div class="task">
+ <xsl:element name="div">
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="status">taskbody-<xsl:value-of
+ select="status"/></xsl:when>
+ <xsl:otherwise>taskbody</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <div class="id"><xsl:value-of select="@id"/></div>
+ <xsl:apply-templates select="name"/>
+ <xsl:apply-templates select="desc"/>
+ <xsl:if test="date|assignedto">
+ <div class="footer">
+ <xsl:apply-templates select="date"/>
+ <xsl:apply-templates select="assignedto"/>
+ </div>
+ </xsl:if>
+ </xsl:element>
+ <div class="subtask">
+ <xsl:apply-templates select="task"/>
+ </div>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="name|date|assignedto|desc">
+ <xsl:element name="div">
+ <xsl:attribute name="class">
+ <xsl:value-of select="name()"/>
+ </xsl:attribute>
+ <xsl:value-of select="text()"/>
+ </xsl:element>
+ </xsl:template>
+
+</xsl:stylesheet>