Ik heb een editor gemaakt waar de gebruiker op zijn scherm keyframes kan zetten op een tijd. Een keyframe is eigenlijk niets anders dan een waarde in de tijd, bijvoorbeeld:
0s - 0%
10s - 50%
20s - 100%
Vervolgens teken ik in die GUI lijntjes tussen deze punten en kan de gebruiker dus een traject uitzetten. Deze keyframes gelden voor meerdere kanelen bijvoorbeeld 10.
Wat ik vervolgens wil doen is de tussenliggende tijdwaardes interpoleren, dit werkt allemaal goed, geen probleem. Hierbij worden keyframes eerst gesorteerd op tijd en dan geplot. Voor de snelheid zit ik te denken om deze plot in een array te gaan zetten. De waardes worden uiteindelijk over een soort DMX-bus verzonden op 38400 BAUD. Uiteindelijk moet het systeem naar 250000 BAUD gaan maar daar heb ik nog geen apparatuur voor.
Het apparaat dat deze commando's ontvangt moet deze gaan uitvoeren, en ik wil dat de delay in de hele cyclus zo kort mogelijk is. Het systeem is echter wel bidirectioneel en het is RS485 dus verzenden en ontvangen zit op dezelfde bus, ik zit eraan te denken om dit toch nog om te zetten naar RS422 zodat het verzenden door kan gaan (af en toe komt er een statusbericht terug).
Stel ik hou 44 Hz aan (DMX snelheid), dan moet ik om de 23ms een waarde opslaan. Bij 10 minuten zit ik dan per kanaal (16 bit) op 52 kB geheugen, niets dus. De zenderroutine hoeft dan alleen maar met een positiepointer door deze array te wandelen en dan de actuele waarde uit te sturen.
Op dit moment gebruik ik een QMap en heb het gevoel dat dit hopeloos veel extra geheugen gebruikt. En ik ben er ook achter gekomen dat deze soms 0-pointers uit stuurt als je bijvoorbeeld bij een iterator -- gebruikt ipv ++. Daarom zit te denken om alles gewoon lekker in een array te zetten.
Eigenlijk te simpel voor woorden, zie ik nog iets over het hoofd?
0s - 0%
10s - 50%
20s - 100%
Vervolgens teken ik in die GUI lijntjes tussen deze punten en kan de gebruiker dus een traject uitzetten. Deze keyframes gelden voor meerdere kanelen bijvoorbeeld 10.
Wat ik vervolgens wil doen is de tussenliggende tijdwaardes interpoleren, dit werkt allemaal goed, geen probleem. Hierbij worden keyframes eerst gesorteerd op tijd en dan geplot. Voor de snelheid zit ik te denken om deze plot in een array te gaan zetten. De waardes worden uiteindelijk over een soort DMX-bus verzonden op 38400 BAUD. Uiteindelijk moet het systeem naar 250000 BAUD gaan maar daar heb ik nog geen apparatuur voor.
Het apparaat dat deze commando's ontvangt moet deze gaan uitvoeren, en ik wil dat de delay in de hele cyclus zo kort mogelijk is. Het systeem is echter wel bidirectioneel en het is RS485 dus verzenden en ontvangen zit op dezelfde bus, ik zit eraan te denken om dit toch nog om te zetten naar RS422 zodat het verzenden door kan gaan (af en toe komt er een statusbericht terug).
Stel ik hou 44 Hz aan (DMX snelheid), dan moet ik om de 23ms een waarde opslaan. Bij 10 minuten zit ik dan per kanaal (16 bit) op 52 kB geheugen, niets dus. De zenderroutine hoeft dan alleen maar met een positiepointer door deze array te wandelen en dan de actuele waarde uit te sturen.
Op dit moment gebruik ik een QMap en heb het gevoel dat dit hopeloos veel extra geheugen gebruikt. En ik ben er ook achter gekomen dat deze soms 0-pointers uit stuurt als je bijvoorbeeld bij een iterator -- gebruikt ipv ++. Daarom zit te denken om alles gewoon lekker in een array te zetten.
Eigenlijk te simpel voor woorden, zie ik nog iets over het hoofd?
Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!