Bilbaneprogram - Utveckling - RazManager

Välkommen till "Mitt projekt"!
Här kan du beskåda medlemmarnas olika byggprojekt eller presentera ditt eget.
Kategoriregler
Endast trådar om olika byggprojekt och endast en tråd per projekt. Rubrik enligt följande: Typ av bygge - Vad som görs - Projektnamn.
Ex. Bil - Lackering - Projekt BMW 3000.

Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 13:55

Inledning

Efter att varit borta från forumet och bilbane-hobbyn ett tag, är det nu kul att vara tillbaka och presentera RazManager, ett bilbaneprogram för Slot.it:s oXigen, Scalextric Sport Digitals (SSD) senaste kontrollenhet C7042, och några olika gränssnitt för analoga bilbanor. I flera års tid har jag försökt att få tid att börja, men arbete och annat har alltid kommit i vägen. Nu är det skönt att äntligen vara igång på allvar.

När allt är klart gör jag en annan sorts presentation, men i den här tråden förutsätter jag att man redan kan en hel del om bilbana och vad ett bilbaneprogram gör. Jag har inte här tänkt räkna upp allt som RazManager kommer att kunna göra och hur, men de vanliga funktionerna kommer förstås att ingå; varvräkning, varvtider, diverse tävlingsvarianter, hålla reda på bilar, förare, team, banor, diverse rapporter, straff, handikapp, och funktioner för digitala system som t ex bränsleförbrukning, depåstopp and datorstyrda bilar.

Mitt mål med det här projektet är kanske lite annorlunda än vad man först tror. Jag jobbar som egen IT-utvecklare/arkitekt, och använder mest Microsofts produkter men även Oracles databaser. Nya mjukvarutekniker- och produkter dyker upp då och då, och jag behöver hänga med i utvecklingen. Men det är inte så ofta jag får chansen till det i mina uppdrag, jag är inte en CV-utvecklare. När man lär sig nya tekniker kan man läsa webbsidor, forum, bloggar och böcker, gå en kurs, etc. Men för att verkligen lära sig något behöver man göra något större än ett litet testprogram. Jag tycker det är jättekul att utveckla programvara, men jag tycker också att det är jättekul med bilbana i dess olika former. Genom att kombinera detta, kan jag ha kul samtidigt som jag lär mig något jag har nytta av. Mitt mål med det här projektet är egentligen att testa en massa Microsoft-tekniker.

Det betyder att RazManager inte är till för att passa allt och alla, även om det finns en hel del för både klubb- och hemmaracing, för två av de digitala system, och för några olika sätt att ansluta till en analog bana. I motsats till mina vanliga jobbuppdrag, så är detta ett projekt med mycket fokus på att använda de senaste teknikerna för lösningen. Det innebär att jag kommer att göra lite udda funktioner, som t ex använda en mobiltelefon och dess kamera för att registrera nya användare. När jag lär mig tekniker som är nya för mig, lägger jag till funktioner som man kanske normalt sett inte finner i ett bilbaneprogram. De kanske inte är överst på folks prioritetslistor, men kan eventuellt ändå vara användbara.

Men om nu RazManager är ett projekt kanske mest för mina egna mål och behov, finns det någon anledning för någon annan att vara intresserad? Självklart skulle jag tycka det var kul om programmets funktioner intresserar andra än mig själv, det får lite spridning, jag får återkoppling på det jag gör och kan förbättra saker och ting, och samtidigt lär mig en massa på flera plan. Det finns också möjligheter för andra utvecklare att göra sina egna tillägg; det kommer att bli intressant att se hur det mottages, och vart det så småningom leder.

Här är några saker som kanske kan vara intressanta:
  • RazManager kommer alltid att vara gratis. Jag tycker inte det är någon idé att försöka tjäna pengar på att sälja några enstaka licenser. I mitt vanliga jobb har jag däremot förstås nytta av vad jag lär mig på detta projekt, och kan även använda det för att ordna kul event och marknadsföra mig själv.
  • Rörliga 3D-skärmbilder för race-status och vissa rapporter. Det gör att skärmbilderna blir mer levande och roligare att titta på. Men det finns också vanliga 2D-skärmbilder som alternativ.
  • Sektortider, inte bara för analoga banor, utan även för SSD/C0742 mha en eller flera Pit-Pro använda som sensorer för sektorerna.
  • Datorstyrda bilar för SSD/C0742 och oXigen, med sektorsynkroniserade hastigheter för SSD/C0742 mha Pit-Pro som ovan.
  • Hastighetsmätning. Genom att använda två sensor på samma spår och en liten bit emellan, kan man mäta hastigheten. Man använder samma sorts sensorer som man använder för start- och mållinjen på en analog bana. Med lite begräsningar fungerar det även på en digital bana.
  • Anslut flera datorer, surfplattor och mobiltelefoner i ett fleranvändarnätverk. Man kan använda detta inte bara för att presentera information på flera skärmar och lika typer av enheter, utan även för att mata in data och styra ett race från mer än en enda dator (och kanske några externt anslutna knappar till den).
  • Klientprogram för Windows XP, Windows Vista, Windows 7, en app för Windows 8, och en annan app för Windows Phone 8. Förhoppningsvis kommer någon att vara intresserad av att skriva appar för iOS (iPod/iPhone/iPad) och Android.
  • Serverprogram för Windows Vista, Windows 7 (fungerar även på Windows 8, Windows Server 2008 och Windows Server 2012, men ej på Windows XP).
  • Gränssnitt mot extern hårdvara fungerar som plug-in-moduler. De analoga gränssnitt och digitala system jag själv har får stöd i RazManager som plug-in-moduler. Men andra utvecklare kan också skriva plug-in-moduler, och på så sätt ge stöd för mer hårdvara än jag själv har möjlighet till.
  • RazManager använder Microsoft SQL Server 2012 som databas. Det finns några enklare versioner av SQL Server 2012 som gratis kan laddas ner och som är tillräckligt bra för bilbaneprogram.
Forts...
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 13:56

Användargränssnitt

Om man har använt ett bilbaneprogram förut, så har man säkert sett den typiska skärmbilden med ett rutnät med en bil och förare per rad, och som också visar position, antal varv, senaste och bästa varvtid, etc. En liknande skärmbild kommer också att finnas i RazManager, som man kan använda om man vill.

Men jag har försökt att tänka rätt så annorlunda när det gäller hur RazManager skall se ut och användas. För mig känns det inte vettigt att göra ytterligare ett bilbaneprogram som ser likadant ut som alla andra, och har i stort sett samma funktioner. Jag vill istället ha en lite mer event- och underhållningsvinkling på det jag gör. Det är klart att jag får en massa inspiration av att läsa på forum, prova andra program, vara intresserad av motorsport, m.m. Men de flesta idéerna kommer nog ändå från att ha en familj med tre barn. Idag betyder det att det finns en massa spelkonsoler, surfplattor, mobiltelefoner, m.m, överallt, och jag vill få med denna typ av prylar, och användarupplevelsen från dessa prylar, i mitt program.

Skärmdumparna nedan är från en tidig prototyp jag gjorde 2009. De är förminskade i storlek , antalet färger är reducerat, och de är ganska hårt komprimerade så att de inte skall ta alltför lång tid att ladda hem. Men de finns också i högupplösta versioner (men fortfarande reducerade i färgdjup och hårt komprimerade), och de bör man titta på om man skall få lite bättre känsla för hur det ser ut. Se dock till att din webbläsare verkligen visar dem i full upplösning, annars kan streck och annat se lite kantiga ut.

Bild
Skärmdump med 2x3=6 bilar. Finns också i högupplöst 1920x1200 format.

Tanken är att visa bilder på bilarna i 3D-ramar, sortera dessa efter position, och flytta på dem på lite kul sätt när omkörningar sker. Grafikbilderna på väggarna och golvet kan man förstås byta ut mot sina egna grafikbilder.

Bild
Skärmdump som visar en bil-ram. Finns också i högupplöst 1920x1200 format.

3D-ramen visar lite vanlig race-statistik, samt en bränslemätare i översta delen (riktningen på bränslemätaren blev fel i den där gamla prototypen, jag fixar det sedan). Som bakgrund kan man ha en “team-flagga”, annars kan bakgrunden ha en mörkare nyans av ramens färg.

Bild
Skärmdump med 3x4=12 bilar. Finns också i högupplöst 1920x1200 format.

Utseendet anpassar sig efter antalet bilar, och kameravinklarna ändrar sig automatiskt då och då.

Bild
Skärmdump på 4x5=20 bilar. Finns också i högupplöst 1920x1200 format.

Även om 20 bilar kan visas, så blir det lite trångt och det kan vara svårt att läsa texten i ramarna längst bak. Det kan vara en god idé att komplettera detta med en eller två extra skärmar med race-statustext i ett vanligt 2D-rutnät (om man använder två extraskärmar, en skärmbild med förare 1-10, en annan skärmbild med förare 11-20).

Bild
Skärmdump med två bilar som byter position. Finns också i högupplöst 1920x1200 format.

En 3D-skärmdump kanske ser bra ut, men i programmet rör även mycket på sig i dessa bilder, så de är mycket mer levande även vad som syns i skärmdumparna. När två eller flera bilar byter position, byter även bilramarna plats. Den virtuella kameran rör på sig, ljuskällorna ändrar sig, m.m. Tillsammans med lite automatiserat tal (på engelska), så blir det en helt annan känsla än vad som kanske framgår här.

Diverse rapporter kan också visas som rörliga 3D-bilder. Ni känner säkert igen följande bild från Viasat Motor:

Bild

Jag vill också ha något liknande, med lite rörelse i.

Forts...
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 13:57

Hårdvarustöd

Scalextrics Digital Advanced 6 Car Powerbase (C7042)

Om man har Scalextric Sport Digital (SSD) och den “nya” kontrollenheten Digital Advanced 6 Car Powerbase (C7042), så kommer det att finnas stöd för det i RazManager. Jag har dock inga planer på att stödja den äldre kontrollenheten C7030.

Förutom vanliga funktioner, som t ex automatisk handtagskalibrering, handtagsprofiler, datorstyrda bilar, använda knapparna för ”track call”, osv, så kommer även knapparna och gasreglaget att kunna användas för att styra vad som händer i vissa skärmbilder. För att ange ett namn, välja en bil och starta ett enkelt race, räcker det med knapparna och gasreglaget, och alla användarna kan ange sina detaljer samtidigt. Det är egentligen inte mer komplicerat än att använda spelkontrollerna till ett spel för en spelkonsol. Det mesta av inspirationen till detta kommer t o m från Buzz-spelen till PlayStation.

Kommunikationsprotokollet mellan C7042:an och datorn kan hämtas hem från [url="http://ssdc.jackaments.com"]hemsidan till SSDC[/url] (där hittar man även uppgraderingar till C7042). Alla data från handtagen skickas till datorn, och det är sedan bilbaneprogrammet som bestämmer vad som skall skickas till bilarna. Det finns några tillägg till SSD-protokollet som stödjer bildekodrar med ett modifierat styrprogram, InCar-Pro firmware. RazManager kommer dock inte att stödja dessa tillägg, eftersom de inte verkar användas så mycket, och för att jag själv inte har några modifierade bildekodrar.


Slot.it:s oXigen

Slot.it:s digitala system oXigen kommer också att stödjas av RazManager. Oxigens “Dongle To PC” protokoll är ganska annorlunda jämfört med SSD-protokollet. Istället för att skicka alla data från handtagen och låta bilbaneprogrammet kontrollera allt, så är oXigens USB-dongle ett litet bilbaneprogram i sig självt. Det skickar varvtid, antal varv, osv, till datorn, men låter datorn styra några saker som t ex start, “track call” och maxhastighet.

När man trycker på eller släpper en knapp på handtaget, så skickas inget meddelande till datorn om detta. Jag hade hoppats att man faktiskt skulle få ett meddelande då, men det kanske kommer någon gång i framtiden. Hur som helst, knapparna kan inte användas för att starta eller pausa ett race, och kan heller inte användas för att styra skärmbilder som i exemplet med SSD ovan.


Pit-Pro
Om man använder SSD/C0742, kommer man även att kunna använda den modifierade versionen av Scalextrics Pit Lane Game som kallas Pit-Pro (modifieras av Pit-Pro teamet på SlotForum, RickoRocket och RichG). Man kan använda mer än en Pit-Pro för att få mer än en depå för SSD. Man kan även använda en Pit-Pro för andra funktioner, någon av dessa även tillsammans med en oXigen-USB-dongel och oXigen-bildekodrar i SSD-läge med ID 1-6. Se senare avsnitt för mer detaljer.

Jag har inte testat ännu att en Pit-Pro verkligen fungerar med en oXigen-dekoder SSD-läge och med ID 1-6, men förhoppningsvis kommer det att fungera.


Phidget

I/O-kortet PhidgetInterfaceKit 0/16/16 med sina 16 digitala ingångar och 16 digitala utgångar kommer att stödjas. Mha det kan man ansluta till start/mållinjen och sektor-sensorer på analog bana, samt stänga av och sätta på spänning, ansluta till ”track call”-knappar, startlljus, hastighetsmätning, etc, för både analoga och digitala banor.


Parallell-port

Det var flera år sedan det såldes PC med en parallell-port på, men det har varit ett poplärt sätt att ansluta till sensorer för en analog bana. Eftersom RazManagers hårdvarukrav är rätt höga, så kan inte datorn vara för gammal, men jag skulle vilja försöka få med stöd för parallell-porten ändå eftersom det är så många som använder den, och det är ett billigt sätt att ansluta utrustning till. Jag har inte provat än, förhoppningsvis fungerar det. I så fall kommer samma funktioner att stödjas som för PhidgetInterfaceKit 0/16/16 (see ovan).


DS-200 Pro och DS-300 Pro

DS Electronic Racing Products har ett antal produkter för som är populära för analoga bilbanor. DS-200 Pro och DS-300 Pro är två sådana produkter, och som används för att hålla reda på ett race; hur många varv eller hur länge vill man köra, hur man ligger till, varvtider, osv. De innehåller några väldigt enkla displayer, men vill man vissa lite mer data och i lite större format, kan man ju använda en svindyr flipperspels-display som syns i bakgrunden på bilden nedan (länkad från det här inlägget):

Bild

DS-200 Pro och DS-300 Pro kommer att stödjas av RazManager. Man använda programmet för att visa racedata som skickas från dessa enheter, samt lägga till egna data som t ex namn, bilder och poängräkning.


Annan hårdvara

Jag kommer att ge stöd för de system och den utrustning jag själv har, men något annat kan jag själv inte ge stöd för, jag kan helt enkelt inte testa det. Jag har en N-Digital-kontrollenhet med version 1.05, men eftersom den inte skickar några tidsdata, så kan jag inte använda den för mitt bilbaneprogram. Hur som helst, andra utvecklare kan skriva plug-in-moduler, och på så sätt ge RazManager stöd för mer hårdvara.

Jag själv är kanske inte så pigg på att stödja specialutvecklad hårdvara med tillhörande specialskrivna protokoll, och som endast används av ett fåtal. Det ger för lite i förhållande till insatsen, och hamnar lite utanför mitt mål med det här projektet. Det finns rätt mycket att fixa till ändå…

Ett exempel på specialutvecklad hårdvara med tillhörande specialskrivna protokoll som jag dock faktiskt skriver stöd för är ju Pit-Pro. Men denna är ändå rätt spridd bland SSD-användare, och tillför en hel del. Det är kanske t o m så att jag använder stödjer den lite väl mycket, eftersom den även kan användas till annat än depåstopp. Att använda den bara för att egentligen identifiera SSD-bilar på andra ställen än start/mållinjen är kanske en lite dyr metod, men den enda som just nu finns och är spridd. Man kan ju använda en extra kontrollenhet, men det är ännu dyrare. Kanske kommer det någon annan metod någon annan dag…

Aurdino-kort verkar bli mer och mer populära för att göra lite enkla hobbyelektronik-projekt. De finns ju i en mängd varianter, har ett antal ut- och ingångar, oftast en serie-port (eller stöd för en virtuell serie-port via USB eller Bluetooth). De är också relativt billiga, och skulle därför kunna vara ett intressant alternativ till att ansluta in- och utgångar via ett lite dyrare Phidget-kort. För Phidget-kort finns ett dokumenterat sätt att kommunicera med, men något liknande finns inte till Aurdino; det finns i de flesta fall bara en verklig eller en virtuell serie-port. Jag kan ju kanske inte skriva en plug-in-modul till var och en av allas special-Aurdino-lösningar, men om det fanns något allmänt spritt, gratis och generellt Aurdino-projekt med ett protokoll för att styra och läsa I/O-pinnar, och som passar till flera olika Aurdino-kort, så skulle jag kunna skriva ett stöd för ett sådant protokoll. Om man bara vill styra pinnar, eller även vill lägga till lite egen programlogik i sin Aurdino-lösning spelar ingen roll så länge som protokollet ser likadant ut. En sådan lösning skulle kunna användas av alla bilbaneprogram, inte bara mitt, och skulle kunna bli en lågpris-lösning för att läsa och styra I/O-pinnar från ett bilbaneprogram. Observera dock när man jämför kostnader att man kan styra strömmar upp till 2A (och 30VDC) med ett Phidget-kort, det klarar inte Aurdino-korten utan extra elektronik (i alla fall inte de enklaste, jag vet inte om det finns dyrare varianter som klarar det).


Simulator

Det kommer att finnas en plug-in-modul som en är hårdvarusimulator, så att man kan testa RazManager utan att ansluta till en riktig bana.

Forts...
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 13:59

Flera samtidiga användare och flera olika typer av enheter

Översikt

Funktionaliteten i RazManager är uppdelad I tre olika “lager”. Det första lagret är en klient som i stort sett bara har i uppgift att hantera användargränssnittet. Det kommunicerar med det andra lagret, applikationsservern, som hanterar race-logik och annan logik, samt kommunikation med hårdvara. Applikationsservern använder i sin tur ett tredje lager, databasservern, för att lagra alla data.

Man kan förstås göra allt det här på en och samma dator. Men om det alltid är det man vill göra, så är det ingen större mening med att göra en uppdelning i flera lager och därmed program. Det är också därför de flesta bilbaneprogram har all funktionalitet i ett och samma program.

Men om man vill använda flera datorer inte bara för att visa information utan även för att mata in data, och/eller använda andra typer av enheter som t ex en surfplatta eller en mobiltelefon för samma sak, så blir det mycket enklare om man skiljer all racelogik från de delar som hanterar användargränssnittet. Nedan är ett av många exempel på hur man kan ha många olika klienter kopplade till samma server:

Bild

Precis som i exemplet ovan, kan man ha en dator med bara RazManager-server-programmet och databasservern på, och sedan använda klienter/appar på andra datorer och typer av enheter. Man kan också använda en och samma dator; det är kanske vad de flesta kommer att göra i praktiken (det går dock inte med Windows XP).

Om man har flera banor på samma ställe, kan man ha flera RazManager-applikationsservrar kopplade till samma databasserver. På detta sätt behöver man t ex bara mata in deltagare en gång, inte en gång per bana. En vacker dag skall jag få RazManager att fungera med mina R/C-bilar. Jag vill då kunna ordna en tävling där alla deltagare dels skall köra bilbana, dels skall köra R/C, och poängen från båda momenten räknas samman. Om det är riktiga många skulle ju det kunna pågå race på båda varianterna samtidigt (dock förstås inte med samma förare på två ställen, det blir lite svårt). Jag vill inte ha en separat installation för ena momentet och en annan helt separat installation för det andra momentet, de måste dela data. Men det behöver inte vara olika typer av banor som i det här exemplet, det kan vara samma sort också.

Program-arkitekturen för RazManager är väldigt lik applikationer många redan använder på sitt jobb. Jag själv har dock inte sett detta användas i bilbanevärlden ännu, men varianter på det här har varit vanligt i IT-världen sedan allt började heta IT, dvs någon gång i slutet av nittiotalet. Teknologierna man använder för sådana här system förändras dock hela tiden.


Klienter

Windows 7/Vista/XP

Det kommer att finnas ett klientprogram för Windows 7/Vista/XP (som också fungerar med Windows 8 ). Eventuellt får Windows XP ett eget klientprogram.

Det kommer att finnas rätt mycket i RazManager som man kan konfigurera, och data som man kan mata in. Men istället för att ha ett fåtal skärmbilder för detta med många olika funktioner i, så kommer det att finnas rätt många skärmbilder men som är rätt så enkla. Dessa skärmbilder bygger på idéer som på engelska kallas ”inductive user interface". Det betyder ungefär att det skall vara enkelt att förstå vad en skärmbild skall användas till. Ett av flera sätt att få till det är att bara fokusera på en sak i taget, och inte ha för många funktioner i samma bild. Det kanske inte är så effektivt för en applikation som man använder större delen av dagen, men kan fungera bra för ett bilbaneprogram som man inte använder så ofta. RazManager följer också “Windows User Experience Interaction Guidelines for Windows 7 and Windows Vista”, så det bör vara lätt att förstå hur man generellt sätt använder skärmbilderna.

Det finns lite skillnader på hur grafikdrivrutiner används i Windows 7/Vista resp. Windows XP, det sätt som vissa funktioner använder dessa, och som jag i min tur använder i min programkod. Det innebär att vissa detaljer i 3D-skärmbilder ser lite kantiga ut med Windows XP, så vill man använda dessa bör man helst använda Windows 7/Vista.

Programkoden som ritar 3D-skärmbilder använder sig av relativt enkla funktioner, men som egentligen inte är så snabba. De ser kanske snygga ut, men när de börjar röra på sig behöver de mer kraft från datorn än man kanske tror. Därför kommer det att finnas viss konfigurering för hur man skall visa dessa, ungefär som i de flesta spel. När jag provade min gamla prototyp på en nu c:a 10 år gammal dator med Windows XP, så fick jag stänga av det mesta av rörelserna för att det inte skulle hacka.


Windows 8

Appen för Windows 8 kommer att ha ett lite annorlunda utseende, den behöver helt enkelt följa riktlinjer som gäller för sådana applikationer.

Det finns säkert lite olika uppfattning om Windows 8, men har man en pekskärm så blir allt väldigt enkelt att använda. Det är klart att RazManager drar nytta av detta, så att man slipper hålla på med tangentbord och mus när man t ex anger hur man vill köra ett race.


Windows Phone 8

De flesta har ju idag en “smartphone”. Telefoner med Windows Phone 8 finns inte riktigt ännu, men RazManager kommer att ha en “app” för dessa telefoner. Den blir delvis likadan som appen för Windows 8, fast utan de flesta konfigurerings-inställningarna. Med RazManager-appen för Windows Phone 8 kommer man att kunna:

  • Presentera allmän race-data för publik
  • Presentera race-data för enskilda förare. Även om man kanske har en massa datorer och skärmar för presentation, och det förhoppningsvis går att få en enkel överblick, så kan det kanske under race ändå vara enklare att slänga en snabb blick på sin mobiltelefon för det man själv vill se.
  • Justera egna inställningar både före ett race och under tiden man kör, istället för att alla skall sammans om samma dator innan racet.
  • Ansluta hörlurar för att höra varvtider, bränslemängd, osv.
  • Istället för att visa bränslenivåer på de skärmar som alla ser, så kan man istället enbart visa (eller höra) de på sin egen telefon så att man lite kan dölja sin taktik.
  • Enkel race-administration, t ex start och “track call”.
  • Lägga till nya förare mha telefonens kamera.

iOS (iPod/iPhone/iPad) och Android

Jag kommer själv inte att utveckla en RazManager-app för iOS (iPod/iPhone/iPad) eller Android. Men förhoppningsvis är någon annan intresserad av att göra det, det skulle vara kul!


Web

Till att börja med kommer det inte att finnas någon web-klient (och web server), men någon gång i framtiden hoppas jag få med det. Anpassat förstås för både mobiltelefoner, surfplattor och vanliga skärmar.


Xbox

Det skulle vara riktigt kul att en dag utveckla en Xbox-klient, men det lär dröja ännu längre. Den nya Xbox:en har då säkert kommit ut för länge sedan…


Andra klienter

Är man duktig på systemutveckling, kan man göra sin egen klient. Antingen istället för de klienter jag gör, eller i tillägg till dem. Man kan använda vilket programspråk och operativsystem man vill , så länge som man kan ansluta till RazManager-applikationsserverns diverse gränssnitt.


Server

Server-delen av RazManager kommer att finnas för Windows Vista och Windows 7 (fungerar även på Windows 8, Windows Server 2008 och Windows Server 2012). Dock kommer det inte att finnas en server-del för Windows XP, bara en klient.

Denna del har inte mycket till användargränssnitt, men man ser en liten ikon i meddelandefältet nere till höger i Windows.


Databas

RazManager använder Microsoft SQL Server 2012 som sin databas. Även om de mest avancerade versionerna kostar rätt mycket, så finns det även gratisversioner som man kan ladda hem. Det är en av dessa som rekommenderas och är tillräcklig, den där Reporting Services ingår så att man själv kan göra sina egna rapporter och presentera de i en web-läsare. Om man vill, så loggas väldigt mycket data som man gräva i.

Normalt sett installerar man databasservern på samma dator man använder RazManager-servern till, men man kan använda en annan dator istället.

Forts...
Senast redigerad av Razamanaz 26 okt 2012, 14:05, redigerad totalt 1 gång.
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 14:00

Funktioner

Här är några RazManager-funktioner som jag vill beskriva lite mer i detalj:


Pit-lane och flera depåer för SSD

Om man har SSD och en Pit-Pro, så kan man använda en kombinerad pit-lane och depå. Men om man har fler än en Pit-Pro, så kan man ha både en pit-lane och en eller flera depåstopp, och använda sin pit-lane för drive-thru-straff.

Bild

Oxigen stödjer bara en kombinerad pit-lane och depå. Det är en begränsning i dess protokoll, även om jag hade hoppats på att det skulle vara möjligt att ha en banlayout som ovan.


Sektortider

Har man en analog bana och tillräckligt många sensorer och I/O-ingångar, så kan man visa sektortider.

Om man har SSD, kan man använda en eller flera Pit-Pro som sektor-detektorer. Då använder man inte dessa för depåstopp, och kan ta bort lamphus-delen om man vill.

Detta fungerar även om man använder oXigen-dekodrar i sina bilar, använder SSD-läget i dekodrarna och ID 1-6, samt använder Scalextrics kontrollenhet för start/mål-detektering. Oxigen bilarna fungerar då som vilken annan SSD-bil som helst. Men det fungerar inte tillsammans med oXigens USB-dongle, data skickas för sällan från den för att de skall gå att använda som tidsreferens (fördröjningen kan vara upp till 600 ms).


Sektorsynkroniserade hastigheter för SSD-datorbilar

Om man inte är tillräckligt många förare när man kör digitalt, är det populärt att fylla på med datorstyrda bilar. För att styra dessa, kan man använda antigen konstant hastighet, eller låta datorn ändra hastigheten för att försöka hålla sig till en angiven varvtid. Detta fungerar både för SSD och oXigen.

Om man har sektortider för SSD mha en eller flera Pit-Pro, kan man använda sektortiderna för att synkronisera datorbilarna. Det ger lite bättre möjligheter att anpassa dessa efter banans layout, eftersom då sektorerna kan användas för synkronisering (inte bara hela varvet).

För oXigen-bilar gäller samma begränsningar som ovan. Inga sektortider, ingen sektorsynkronisering.


Hastighetsmätning

En kanske lite ovanlig, men kul funktion, är att ha hastighetsmätning på ett eller flera ställen. Genom att använda två sensor på samma spår och en liten bit emellan, kan man mäta hastigheten. Två sensorer krävs, men en av dessa kan även fungera som sensor för start/mål-linjen på en analog bana. Då har man kanske en ljusbrygga i kombination med fototransistorer monterade i banan, men för hastighetsmätning på andra ställen vill man kanske istället använda en läsgaffel, det blir lite snyggare:

Bild

Med lite begräsningar fungerar även hastighetsmätning på en digital bana. Det digitala systemets start/mållinje kan inte användas som en del i hastighetsmätningen. Det blir inte tillräckligt noggrant, i alla fall inte för oXigen. Man behöver fortfarande ha två ”analoga” sensorer per spår, så nära start/mållinjen som möjligt, antigen framför eller efter. Om en hastighet mäts, och en bil kan identifieras väldigt kort före eller efter detta, så kan man visa hastigheten för den bilen.

Om man använder SSD, kan en Pit-Pro också användas för att identifiera bilen nära hastighetsmätningen, kanske då även i kombination med att mäta sektortid.

Om man använder oXigen och dess USB-dongle, men nöjer sig med 6 bilar och använder SSD-läget, kan man också använda en Pit-Pro för att identifiera en bil vid hastighetsmätningen (men ej i kombination med att mäta sektortid).


Event

Många bilbaneprogram har funktioner som gör att de fungerar bra på en klubb och/eller hemma. Jag vill dock ha lite mer stöd för när man ordnar en tillställning, ett event, och folk kommer och går lite hur som helst.

Det finns en massa varianter på att organisera en race-kväll när man är fler förare än det finns spår eller det finns plats för på en digital bana, men de är ofta beroende av att man i förväg vet vilka förarna är och att de är registrerade innan man börjar bestämma vem som skall köra i vilka heat, osv. Men det fungerar inte på en publik tillställning när folk kommer, stannar en stund, och sedan går.

Förutom vanliga race-upplägg, så vill jag även ha en komma-och-gå-variant. Innan första omgången med heat, delar man slumpmässigt in alla då kända i olika grupper. Inför andra omgången flyttar man ner de 1-2 sämsta i grupp 1 till grupp 2, och de 1-2 bästa från grupp 2 flyttas upp till grupp 1. De 1-2 sämsta i grupp 2 flyttas till grupp 3, och de 1-2 bästa från grupp 3 flyttas upp till grupp 2, osv. Efter ett par omgångar blir grupperna relativt jämna. Nytillkomna förare börjar i den lägsta gruppen, och grupperna justeras när förare inte längre är med. Nya förare kan registreras via en andra dator eller en mobiltelefon och dess kamera, detta kan göras samtidigt som andra kör.


Tidsinställd presentation

De som kör kanske vill se samma sorts race-startus-skärmbild hela tiden, men de som inte kör för tillfället kanske även vill se annat; diverse rapporter, poängsammanräkning, vem kör i nästa heat och på vilket spår, osv. Men istället för att ha en egen skärm för var och en av dessa varianter, kan man istället använda ett fåtal extra skärmar där informationen byts ut emellanåt. Med RazManager kommer man att kunna göra ett litet tidsinställt schema för vilka skärmbilder som skall visas på en skärm, i vilken ordning de skall komma, samt hur länge de skall visas. Man kan göra lite undantag i schemat, t ex när ett heat är slut vill man säkert visa dess resultat oavsett vad man visade innan.

Forts...
Senast redigerad av Razamanaz 26 okt 2012, 14:08, redigerad totalt 2 gånger.
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 14:02

Öppen källkod

För att utveckla RazManager , använder jag Microsofts Visual Studio 2012, C#, and .NET Framework 4.0/4.5 (för de delar som inte är beroende av Windows 8 ). Koden kommer att finnas för nedladdning som ”öppen källkod”, men jag vet ännu inte vilken licens-modell jag kommer att använda i samband med detta.

Projekt med öppen källkod utvecklas ofta av flera personer, men eftersom RazManager är min lekstuga där jag testar och lär mig nya saker, vill jag därför utveckla själva basen på egen hand. Men det finns gott om möjligheter för andra utvecklare att skriva t ex sina egna klienter och plug-in-moduler för mer hårdvarustöd genom att använda de mjukvarugränssnitt som kommer att finnas.


Skall man byta till RazManager?

Det finns mängder med bra bilbaneprogram, speciellt för analoga banor. Det kommer fler och fler för SSD. Det finns inte så mycket till oXigen ännu så länge, men det kommer nog.

Men skall man byta från sitt nuvarande bilbaneprogram till RazManager? Förmodligen inte! De flesta som skulle göra en lista på 10 saker som betyder mest för en lyckad racekväll, kommer inte att ha med bilbaneprogramet på den listan. Det finns annat som är betydligt viktigare. Är man helt enkelt nöjd med vad man sitt nuvarande bilbaneprogram, finns det kanske inte någon större anledning till att byta.

Har man en 10 är gammal dator för sitt bilbaneprogram, så kommer det inte att fungera att köra RazManager-klienten, RazManager-servern och databasservern samtidigt på den. Man behöver något bättre för det, med Vista eller senare (Windows XP kan bara köra klienten, och inte 3D-delen i den så bra). Men om man bara vill använda en dator med en skärm, så vinner man kanske inte så mycket på att byta ut sitt nuvarande program till RazManager.

Men om man vill använda flera skärmar, datorer, och kanske surfplattor och mobiltelefoner, kanske gillar det lite annorlunda utseendet på RazManager, hur man själv eller andra kan utöka programmet, så kan man ju prova. Det är ju gratis, förutom att det kanske kostar lite tid, och ev. uppgraderad eller ny hårdvara. Dock kan man ju få nytta av några gamla XP-datorer för att enbart använda för extra presentation.

Man skall dock vara medveten om att det är lite komplicerat att installera och konfigurera alla delar, och konfigurera sitt närverk. Det är förstås inget problem om man jobbar på en IT-avdelning, men har man tummen mitt i handen när det gäller datorer så kan det kanske vara lite för svårt. När allt är färdiginstallerat, kommer det dock att vara enkelt att använda RazManager.


Lite avslutande ord

Det känns förstås roligt att skriva en svensk presentation av det jag kommer att hålla på med på heltid ett tag framöver. Jag har tidigare gjort en engelsk presentation på SlotForum, men detta inlägg är inte en ren översättning utan även en uppdatering efter lite återkoppling och nya tankar jag har hunnit få.

Jag kanske inte har något bra rykte när det gäller att avsluta alla bilbaneprojekt jag påbörjar, man kan läsa mer om det i slutet av SlotForum-presentationen, men den här gången skall jag inte låta elektronikutveckling och jobb komma i vägen. Det verkar som om jag alltid brukar jobba lite för mycket, och med en familj med 3 barn, ett hus, och allt annat, så blir det inte mycket tid över till bilbanehobbyn. Nu har jag tagit ledigt från alla jobbuppdrag tills jag blir hyfsat färdig med detta projekt, så nu kan jag i alla fall ägna det den uppmärksamhet det behöver.

Det kommer förstås att bli en massa ändringar, dels när jag själv upptäcker vad som fungerar och inte fungerar, dels beroende på vilken återkoppling jag får. Det är svårt att säga när det hela blir färdigt; det finns både hårdvara och mjukvara jag vill använda som ännu inte finns tillgängligt.

Samtidigt som det finns många gamla erfarenheter att ta vara på när det gäller hur ett bilbaneprogram skall fungera, så har jag försökt med lite nytänkande, och det skall blir intressant att se hur det mottas när allt blir hyfsat färdigt. Jag tror faktiskt att användningen av surfplattor och mobiltelefoner kan bli en stor grej för både förare och publik, oavsett om det är mha en app eller anpassade web-sidor. Det låter kanske som något mest för digitala system, men analoga förare brukar gilla att plocka fram en massa statistik. Men sin egen platta eller telefon kan de få fram vad de själva vill se, och behöver inte samsas med andra om samma och enda datorskärm.

Det här var inte något twittrande, direkt. Jag fick dessutom dela upp det i flera inlägg, eftersom man bara kan ha maximalt 10 länkar i ett inlägg här på forumet. Men om du orkade läsa ända hit, så tack för uppmärksamheten!
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Gulf Persson 26 okt 2012, 14:58

Förstummad..

Fantastiskt, vilket jobb! Gör det själv andan och bredden i denna hobby upphör aldrig att förvåna mig. Ska bli spännande och prova även om vi nog bara kommer utnyttja en bråkdel av möjligheterna med programmet, kör analogt med DS200 tidtagning och Stop & Go box. Men att få in varv för varv tider och så vidare i en databas skulle vara riktigt skoj och sedan plocka ut som rapporter vore grymt.

Lycka nu till med att få det färdigt så vi kan börja tanka ner.. :beer:
Få saker är bättre än att ge
Användarvisningsbild
Gulf Persson
Slotracer
 
Inlägg: 1092
Blev medlem: 30 mar 2009, 08:19
Klubb: MiniMotorMasters & TRS

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Aramis 26 okt 2012, 15:05

Först och främst: hatten av för dig som lagt ner så mycket tid och energi på en produkt som är anpassad för precis allt och dessutom gratis!!

Vi kör analogt med DS-300 Lap Counter med Stop n Go-boxar. Hur ska vi gå tillväga med RazManager för att kunna presentera racen på en stor skärm eller live på nätet? En sån där flippertavla är ju förvisso rättså cool och retro men det känns som att jag hellre vill presentera via datorskärm.
TDS
TUNA DEVILS SLOTRACING
http://www.tunadevils.se
Användarvisningsbild
Aramis
Testförare
 
Inlägg: 2814
Blev medlem: 03 nov 2008, 12:18
Ort: Eskilstuna
Klubb: Tuna Devils Slotracing

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 26 okt 2012, 16:58

Om man vill koppla en dator till DS-200 och DS-300, så behöver man förstås inte vänta på RazManager. Det finns redan lite alternativ. Förutom WinSlot som tydligen följer med i demo-version, finns t ex PcLapCounter och RaceCoordinator, och där kan man få ut lite statistik. På PcLapCounters hemsida finns lite instruktioner om hur man kopplar en DS-200/DS-300 till en dator, och själva anslutningen till datorn som kör RazManager-servern kommer att ske på samma sätt.


Aramis skrev:Hur ska vi gå tillväga med RazManager för att kunna presentera racen på en stor skärm eller live på nätet?

För att presentera racen på en eller flera stora skärmar, måste dessa helt enkelt anslutas till datorer som kör RazManager. Sen visas RazManager upp på skärmen som vilket annat program som helst från datorn.

Live-presentation på nätet för vem som helst (utan att behöva ha en RazManager-klient installerad) går inte att göra i en första version. Det går att göra om och först när jag gör en web-klient (och web-server-del), men det kommer att ta tid innan jag kommer dit. En liknande lösning är dock gjord av några entusiastiska RaceCoordinator-användare, men det kommer nog ett lite bättre stöd så småningom från utvecklaren själv.
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Lasp 26 okt 2012, 17:13

Jag är imponerad.
Det skall man vara! Kanske är det gemensamma krafter som testar och lyfter ett slikt projekt?
Oavsett system, måste bilar, förare och banor (spår), ha en egen identitet.
Jag bidrar gärna med exempel på RFID brickor och avläsare, QRKoder med avläsning och kanske någon simpel streckkod för bilarna. Förare / klubbkort borde ha QR som gör det enkelt att komplettera databasen. Samma för en bana respektive spår.

Tyvärr har jag inte lyckats med avläsning av RFID i högre hastigheter men det fungerar vid start och spårvagn, samt vid en nedsatt hastighet vid depåinfart.

Jag återkommer med bilder och exempel .
Användarvisningsbild
Lasp
Slotracer
 
Inlägg: 1681
Blev medlem: 10 jun 2011, 19:59
Ort: Fredriksdal, Helsingborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav jomol22 29 okt 2012, 15:46

Himmel! :thumb:
Det är underbart att någon kan sånt här. B-|
Nu hoppas jag att några av mina gubbar förstår lite mer än jag om sånt här, för att undersöka hur vi kan använda det. :beer:
jomol22 hette förut srsowö
Användarvisningsbild
jomol22
Veteranracer
 
Inlägg: 3147
Blev medlem: 09 feb 2004, 18:04
Ort: Örebro
Klubb: SRSoWÖ

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav mINdAt3z 03 nov 2012, 14:13

Stum. Det här åker in på Julledigheten att installera och testa av så det skriker om det. Ser inte bara snyggast ut, vältänkt men just det där att man vill ha ett öppet system med webservices och lär ju tända gnistan hos många att utveckla tilläggsappar, rapportgeneratorer och vad som helst.

Bara tummen upp hela vägen. :)

:up: :up: :up:
Mikael
Exit reality, enter the imaginary.
Användarvisningsbild
mINdAt3z
Kartläsare
 
Inlägg: 585
Blev medlem: 12 nov 2011, 12:01
Ort: Tibro

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav ezburn 23 feb 2013, 10:10

MYCKET intressant projekt och väldigt ambitiöst, hoppas verkligen du ror det i land! Vore kul om du hade snurr på hemsidan eller en FB grupp(?) så man kunde följa "the progress" :) Ser verkligen fram emot att testa detta, kommer du släppa nån beta under utvecklingstiden så du kan få input ang buggar? :up: :up: :up:
ezburn
Depåman
 
Inlägg: 146
Blev medlem: 14 sep 2007, 11:33
Ort: Smedjebacken

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav Razamanaz 23 feb 2013, 12:03

Hej,

Jag håller för närvarande på med detta 8-10 timmar om dagen, så det går i alla fall framåt även om det är en bra bit kvar. Men jag börjar nog jobba igen i april, och då får jag dra ner på takten lite. Mitt eget (och min sambos) 50-årskalas i slutet av augusti kommer även att komma i vägen lite; då blir det rockkonsert hemma i trädgården och en massa förberedelser med att träna trummor, programmera backing tracks och ljusshower, etc.

Hur som helst, det är viktigt för mig att bli färdig med detta. Inte minst för att det finns en stark koppling till det jag annars jobbar med. Jag siktar just nu på att bli färdig med en första publik "preview"-version i slutet av 2013, men som då inte innehåller all funktionalitet som jag har nämnt, och heller inte appar för Windows 8 och Windows Phone 8 (även om jag då har påbörjat utvecklingen av dessa).

Min tanke är att använda denna tråd (och motsvarande engelska tråd) som "blog", men det har inte funnits så mycket konkret att berätta om eller visa upp ännu.
Användarvisningsbild
Razamanaz
Mekaniker
 
Inlägg: 282
Blev medlem: 03 aug 2005, 11:02
Ort: Göteborg

Re: Bilbaneprogram - Utveckling - RazManager

Inläggav ezburn 23 feb 2013, 13:58

Ja om jag läst ditt inlägg lite bättre så såg ja att du höll igång på slotit, My bad :/
ezburn
Depåman
 
Inlägg: 146
Blev medlem: 14 sep 2007, 11:33
Ort: Smedjebacken

Nästa

Återgå till Mitt projekt

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 70 gäster

cron