Toon posts:

[C#][DSS] Connectie naar extern apparaat vaker maken

Pagina: 1
Acties:

Onderwerpen


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018
Ik ben bezig met het schrijven van DSS services om in VPL te kunnen gebruiken. Voor elk verschillend onderdeel van ons systeem (input, output, robot etc) ben ik een aparte service aan het schrijven. Dit omdat dat voor ons huidig framework noodzakelijk is.

Nu kan ik zonder problemen een connectie leggen met de controller waar (tot nu toe) een aantal hardwareonderdelen bestuurd kunnen worden, echter met elke service die ik maak moet ik een nieuwe connectie leggen.

Als de connectie tussen de service en de hardware eenmaal gelegd is heb ik ook geen issues, dan kan ik over verschillende connecties mijn data lezen en schrijven.

Mijn probleem onstaat op het moment dat ik meerdere services gebruik wil laten maken van dezelfde controller. Wat er gebeurt bij de services is dat er tegelijk vanuit verschillende services een connectie gemaakt probeert te worden, echter kan de hardware dit niet aan en geeft hij hier errors op. Als ik door mijn code heenstap en ik wacht een seconde ofzo na het leggen van een connectie en ga dan verder dan werkt het dus wel.

Ik heb geen manier om te kijken of de controller bij het leggen van de connectie al bezig is met verbinden, buiten een exception die ik krijg, echter op het moment dat ik die exception krijg heb ik al risico dat de controller in een errormode zit.

Is er een manier, buiten bijvoorbeeld een delay inbouwen en hopen dat hij tijdens deze delay verbonden is, om dit slim aan te pakken? Het gaat me dus puur om het leggen van de connectie naar de controller die ik heb, als die er eenmaal is dan is er geen probleem meer.

My personal videoteek: -Clique-; -NMe- is een snol!


  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Ik heb geen ervaring met DSS of VPL whatsover, maar een logische oplossing lijkt me dat je een proxy maakt die de services gebruiken om een connectie naar de controller te maken. Deze proxy zorgt er voor dat er maar 1 connect tegelijk gedaan wordt en een queue bijhoudt voor de pending connects, en deze uitvoert als de vorige connect is afgehandeld.

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018
Dat zou kunnen werken, maar ik kan mijn controller object, welke ik nodig heb, niet forwarden naar een andere service, alleen maar de details van de connectie zelf, omdat mijn controller object libraries bevat die niet door DSS serialized kunnen worden. Het probleem is dus dat ik een betrouwbare manier moet hebben om een connectie te leggen terwijl ik niet weet of er een andere service op dat moment ook al een connectie aan het leggen is.

My personal videoteek: -Clique-; -NMe- is een snol!



Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee