Hej
Noterade precis de commits som precis gjorts mot framförallt laser.c och dio.c och en del av de ändringarna kommer att göra att saker går sönder med avseende på hur trådar startas/stoppas.
Först och främst en liten sak bara så att ingen är förvirrad över det, roboten startar numera i ett inaktivt state och för att starta den måste man sedan trycka på start/stopp knappen (eller skicka SIGUSR1 signalen till programmet).
För att sedan stoppa (d.v.s. stoppa som i att roboten ska stanna, stänger ner en del av trådarna och tar och väntar på ny knap/signal) den så gör man samma sak igen.
Till problemen då.
Det är ändrat så att got_shot_loop kommer att fortsätta att köras även efter stop. Men vid stop så väntar roboten på att denna tråd stänger av sig och vid start så startar den upp en ny sådan tråd. Så med ändringen som det ser ut nu kommer roboten att när den stoppas hänga och vänta på den tråden i all evighet och aldrig komma ur stop fasen utan att man manuellt dödar och startar programmet igen.
Sedan funderar jag också över motveringen till ändringarna i laser_start, här kommer saker iaf inte att gå sönder eftersom tråden explicit dödas med pthread_cancel för tillfället (eftersom tråden med största sannolikhet kommer att ligga och blockera på shoot_mutex när roboten stoppas).
Och ingen av ändringarna kommer troligen att göra något säkrare på något sätt vad jag kan se i vilket fall som helst.
Och nu ser jag att ännu fler trådar håller på att bli av med sina stopvillkor så nu skickar jag iväg mailet innan mer saker blir trasiga
Noterade en bugg i hjulstyr_disable nu också, felet är _INTE_ att SPEED_ZERO var fel, denna ska vara 0. Felet var att det i hjulstyr_disable borde stått SPEED_ZERO + SPEED_OFFSET.
//Joakim Tosteberg