Vart hittar man updaterad .Net kod?
Moderator: Telldus
Vart hittar man updaterad .Net kod?
Jag har precis skaffat mig en Tellstick och 2st Nexa "Trådlösa mottagare för inbyggnad" och ska i helgen börja installera dessa men vart hittar man en updaterad .Net wrapper?
Dem som nämnts i forumet är ju väldigt gammla, jag vore även intresserad av att veta om det finns dokumentation för Core dll:en om man får för sig att bygga en engen wrapper.
Dem som nämnts i forumet är ju väldigt gammla, jag vore även intresserad av att veta om det finns dokumentation för Core dll:en om man får för sig att bygga en engen wrapper.
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Dokumentation till telldus-core hittar du här:
http://developer.telldus.se/doxygen/
http://developer.telldus.se/doxygen/
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Tjena, jag har lagt upp min wrapper på google, bara att tanka hem och använda. Den har stöd för allt man kan tänkas vilja göra... (tror jag)
http://code.google.com/p/tellsticknet/
http://code.google.com/p/tellsticknet/
Jo, tack fröutom att det är ett gammalt projekt så VS 2008 får lov att konvertera det de första man får göra.thrawn wrote:Tjena, jag har lagt upp min wrapper på google, bara att tanka hem och använda. Den har stöd för allt man kan tänkas vilja göra... (tror jag)
http://code.google.com/p/tellsticknet/
Sedan har den väldigt mycket onödig kod som i alla fall inte jag kommer ha användning för så skriver en egen, kommer försöka släppa koden när jag känner mig klar med den.
Hej.thrawn wrote:Tjena, jag har lagt upp min wrapper på google, bara att tanka hem och använda. Den har stöd för allt man kan tänkas vilja göra... (tror jag)
http://code.google.com/p/tellsticknet/
Jag har lånat din wrapper lite. Är ingen mästerkodare på nått sätt men fick lägga in en fix för att kunna köra den i mitt projekt. Den kanske är intressant för andra. Själv så har jag inte satt mig in i varför den behövs.
i metoden
public static ModelBase GetModel(string modelName, string protocolName)
Code: Select all
foreach (Type t in Assembly.GetAssembly(typeof(TellStick.TellStickDevice)).GetTypes())
{
if(t.Namespace != null) //Ny rad för att hantera att inte alla t har ett värde på Namespace
i mitt bygge av nån anledning
{
if (t.Namespace.Equals("TellStick.Models") && t.BaseType == typeof(ModelBase))
{
foreach (ModelNameAttribute attribute in t.GetCustomAttributes(typeof(ModelNameAttribute), true))
if (attribute != null && attribute.Name.Equals(modelName,
StringComparison.InvariantCultureIgnoreCase))
_modelType = (ModelBase)Activator.CreateInstance(t);
}
}
}
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Menar du att du får lov att konvertera projektet i VS2008? Det verkar mycket konstigt då projektet är skrivit från början i VS2008. Har inte ens haft någon annan version installerad under hela utvecklingsprocessen...RickardP wrote:Jo, tack fröutom att det är ett gammalt projekt så VS 2008 får lov att konvertera det de första man får göra.thrawn wrote:Tjena, jag har lagt upp min wrapper på google, bara att tanka hem och använda. Den har stöd för allt man kan tänkas vilja göra... (tror jag)
http://code.google.com/p/tellsticknet/
Sedan har den väldigt mycket onödig kod som i alla fall inte jag kommer ha användning för så skriver en egen, kommer försöka släppa koden när jag känner mig klar med den.
Du får ju naturligtvis göra som du själv vill, men varför inte använda den även om det är mycket "onödig" kod? Kommer ju knappast ge någon märkvärd prestandaskillnad och tanken är ju inte att du ska lägga in koden i samma projekt utan använda dig av en dll.
Verkar lite mystiskt, du har inte lust att debugga lite kring det för att ev. hitta uppkomsten? Har du lagt in källkoden i ditt projekt eller använder du den som ett externt bilbliotek (dll). Om du har lagt in det i ditt egna projekt så är min gissning att du har klasser som du inte har i något namespace.naslund wrote:Hej.thrawn wrote:Tjena, jag har lagt upp min wrapper på google, bara att tanka hem och använda. Den har stöd för allt man kan tänkas vilja göra... (tror jag)
http://code.google.com/p/tellsticknet/
Jag har lånat din wrapper lite. Är ingen mästerkodare på nått sätt men fick lägga in en fix för att kunna köra den i mitt projekt. Den kanske är intressant för andra. Själv så har jag inte satt mig in i varför den behövs.
i metoden
public static ModelBase GetModel(string modelName, string protocolName)
i övrigt så funkar den kanon tror jag, så tack!
Ohh, där ser man, kanske därför den funktionen har fungerat så dåligt för mig...micke.prag wrote:Nu är jag ingen expert i .Net men om jag tolkar koden rätt så saknas parametern int methodsSupported i tdMethods()
Nu var det ganska längesen som jag skrev den här wrappern så jag kommer inte ihåg alla detaljer, vad förväntas i methodsSupportet?
För övrigt ska jag lägga in de nya enheterna som ni la in i 2.02, tror även att jag inte lagt in någon "gammal" enhet heller. Annars ska wrapper vara väldigt fullständig och relativ lätt att använda.
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Saxar vår egen dokumentation:thrawn wrote:Ohh, där ser man, kanske därför den funktionen har fungerat så dåligt för mig...micke.prag wrote:Nu är jag ingen expert i .Net men om jag tolkar koden rätt så saknas parametern int methodsSupported i tdMethods()
Nu var det ganska längesen som jag skrev den här wrappern så jag kommer inte ihåg alla detaljer, vad förväntas i methodsSupportet?
Denna parametern gör så att utvecklaren som jobbar mot telldus-core inte behöver implementera alla "methods". Genom att säga till telldus-core vilka man stödjer kommer biblioteket anpassa svaren så att så många olika funktioner kommer att kunna användas ändå.TellStick can control many different types of devices that support different features. For example, a bell does not support turning the on-signal and not all lamp switches support dimming. Call tdMethods() to find out what a specific device supports:
By supplying the methods the application supports, the library can be backwards compatible. Let's say that the client application only supports turning on and off. The call to query a device for it's methods should be:Code: Select all
function checkFeatures( int id ) { int supportedMethods = TELLSTICK_TURNON | TELLSTICK_TURNOFF | TELLSTICK_BELL; int methods = tdMethods( id, supportedMethods ); if ( methods & TELLSTICK_TURNON ) { printf( "The device %d support tdTurnOn()\n", id ); } if ( methods & TELLSTICK_TURNOFF ) { printf( "The device %d support tdTurnOff()\n", id ); } if ( methods & TELLSTICK_BELL ) { printf( "The device %d support tdBell()\n", id ); } }
int methods = tdMethods( id, TELLSTICK_TURNON | TELLSTICK_TURNOFF );
If the device in the above example is a device only supporing TELLSTICK_BELL, the library will instead return TELLSTICK_TURNON, making the client application still able to control the device. When you know which features a device supports it is safe to call the controlling functions described in Controlling functions.
Denna parametern är därför viktigt att den inte hårdkodas i wrappern utan det är upp till programmet som använder wrappern att skicka in.
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Okej, där ser man. Blev en lite fullösning genom att man sätter en static variabel (TellStick.Base.SupportedMethods), från början så innehåller den alla metoder som wrappern använder, men man kan ändra den om man vill... På det här sättet behöver aldrig programmeraren tänka på den om den inte explicit vill ändra det, wrappern är ändå gjord för att den ska vara enkel och snabb att implementera. Den nya koden är uppladdad till googlecode. Här finns den kompilerade dll:en tillsammans med ett testprogram, jag skulle uppskatta om några provad och såg om testprogrammet detekterade rätt metoder, det syns beroende på vilka knappar som tänds och släcks.
Jo, sant att jag kan bara använda DLL:en men jag kanske skrev lite klumpigt.thrawn wrote:Menar du att du får lov att konvertera projektet i VS2008? Det verkar mycket konstigt då projektet är skrivit från början i VS2008. Har inte ens haft någon annan version installerad under hela utvecklingsprocessen...RickardP wrote:Jo, tack förutom att det är ett gammalt projekt så VS 2008 får lov att konvertera det de första man får göra.thrawn wrote:Tjena, jag har lagt upp min wrapper på google, bara att tanka hem och använda. Den har stöd för allt man kan tänkas vilja göra... (tror jag)
http://code.google.com/p/tellsticknet/
Sedan har den väldigt mycket onödig kod som i alla fall inte jag kommer ha användning för så skriver en egen, kommer försöka släppa koden när jag känner mig klar med den.
Du får ju naturligtvis göra som du själv vill, men varför inte använda den även om det är mycket "onödig" kod? Kommer ju knappast ge någon märkvärd prestandaskillnad och tanken är ju inte att du ska lägga in koden i samma projekt utan använda dig av en dll.
Jag gillar att göra saker själv även om det är ungefär som att upfinna hjulet, dessutom till det jag ska göra har jag ingen användning för allt som sagt och kan då lika gärna lägga det jag behöver direkt i egen kod istället för jobba mot en mellanhands dll
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Tänk dig följande scenario.
En utvecklare använder din wrapper och implementerar alla methods som finns och programmet fungerar som det är tänkt.
Vi lägger till ytterligare en method vilket du också implementerar i wrappern och ändrar TellStick.Base.SupportedMethods för att reflektera detta.
Plötsligt kommer slutprogrammet få upp enheter där det inte finns några methods att styra. Genom att låta slutprogrammet alltid sätta vilka methods det programmet stödjer och inte wrappern kommer detta läge aldrig att uppstå. Kanske ska detta förtydligas i dokumentationen?
En utvecklare använder din wrapper och implementerar alla methods som finns och programmet fungerar som det är tänkt.
Vi lägger till ytterligare en method vilket du också implementerar i wrappern och ändrar TellStick.Base.SupportedMethods för att reflektera detta.
Plötsligt kommer slutprogrammet få upp enheter där det inte finns några methods att styra. Genom att låta slutprogrammet alltid sätta vilka methods det programmet stödjer och inte wrappern kommer detta läge aldrig att uppstå. Kanske ska detta förtydligas i dokumentationen?
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies