GithubHelp home page GithubHelp logo

Razer support about ttcontroller HOT 78 CLOSED

moshimoshi0 avatar moshimoshi0 commented on July 26, 2024
Razer support

from ttcontroller.

Comments (78)

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024 1

Yup, now it survived the reboot just fine!

Thanks again for the great work!

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

I dont have anything from razer so I dont know how the sync works, but do you mean you want TTController to set rgb for razer products, or you want the razer software to send rgb colors to TTController?

The former is too much work and is out of scope for this project, that would require a big rewrite, if not complete rewrite.
The latter should be doable with a custom effect.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Respond to Razer control... Just like the latest version of the TT software does... But like everything else, TT have done this half-arsed. Aside from still not fixing the hibernation issue, it also requires you to MANUALLY turn on Razer sync at each restart of the software...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Should be doable.

Seems like its part of the "Razer Chroma Connected Devices Program" and its only for other device manufacturers. From a quick search I could not find any libraries/apis for that so I might have to dig into the TT software.

I will update if I find anything interesting.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

RGB.net (another project) have an app RGBsync+ that works with it... Don't know whether there's source for it available... Will have a look and let you know!

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

https://github.com/DarthAffe/RGB.NET
and
https://github.com/DarthAffe/RGBSyncPlus

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Hmm can't find anything specific to chroma connect.
Thermaltake software does not use "RzChromaSDK.dll" like RGB.NET.

Is this how you enable RBGsync+/RBG.NET in razer synapse?:
https://www.youtube.com/watch?v=X9mxPcXLo6A&t=18s

Btw could you download DbgView or DebugView++ and post the debug log from the TT software? Start it before you enable the razer sync, then try enabling it and changing few effects in synapse.

edit: Yeah they use RzChromaBroadcastAPI.dll, so it should be easy once I figure out correct method arguments and stuff. There are only 4 exports:

  • Init
  • UnInit
  • RegisterEventNotification
  • UnRegisterEventNotification

I assume the color data is sent in each event that we can then push to TT controllers.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Yes that's how it works, and I will run the debugger for ya...

Anything special you want me to look for (I'm a (former) developer, and speak C/C++/C#, Python, PHP and a few other dialects, but Java isn't one of my strong points, so I know my way around debuggers and code...)?

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Well, I would like to see the debug output of the TT software with DebugView++, they log a lot of stuff there.

And if you want to go debugging then if you can find where RGB.NET receives color data from razer synapse that would be cool because im not seeing it. From what I can tell RGB.NET/RGBSyncPlus is only used for pushing effects to razer synapse not receiving them.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

DebugView++.zip

At 15.98 seconds (approx) I enabled Razer Sync...

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Looking at the debug log, I did not see anything related to the Razer color stuff, so I did another debug log with only TT RGB Plus.exe events, and changed color profiles on the Razer side, which would push updated info to TT.
Up to 29 second is it running the Razer Fire emulation program (an orangy-red flickering animation) on the three fans connected, at 29-ish I switched to a situation aware profile (which turned them white-ish) and around 35 seconds I returned to the Fire profile...
I do NOT see anything reflecting that in the TT Debug Logs (attached), so it looks like they forgot to add that to the debug output... :(

TT only.zip

Anything else you want me to try?

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

They seem to log that they enable/connect to the chroma broadcast but not the data received.

This is a long shot but try this:
RzTest.zip

I was not able to test this since I cant get razer synapse app to start. This should hopefully show the app in synapse and maybe capture the broadcasted events.

edit: BTW it adds stuff in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Razer\ChromaBroadcast if you want to cleanup later.

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Sorry, try this:
RzTest.zip

I think there is some kind of serial code used for initialization.

edit: RzTest.zip

Should be fully implemented now.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I will test soon, busy weekend... ;)

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Just ran it:
PS D:\Stack\Downloads> .\RzTest.exe
MSG: 36, LP: 98299212, WP: 0, HWND: 6357326
MSG: 129, LP: 98299200, WP: 0, HWND: 6357326
MSG: 131, LP: 98299180, WP: 0, HWND: 6357326
MSG: 1, LP: 98299200, WP: 0, HWND: 6357326
Init: 59109745109237760 / 0
PS D:\Stack\Download>

Also, a new "device" has shown up in Synapse under "Connect"...
afbeelding

(And in studio, obviously...)
afbeelding

(Deleting the reg-key also removed the device again!)

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Yea if you remove the keys if will "uninstall"

Are there any logs in C:\Program Files (x86)\Razer\ChromaBroadcast\Logs?
Also what happens if you swap HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Razer\ChromaBroadcast\RzTest.exe\Index from 9 to 8? Also change thermaltakes from 8 to 9.

edit: Also try disabling thermaltake sync, maybe they are interfering with each other since they use the same initialization key.

That is a strange return value.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Log: RzTest.log

The two switch positions in the Chroma Studio, until I disable/reenable the TT sync, which reestablishes itself as #8, which then automagically deletes the RZtest entry...

Output from both attempts:
PS D:\Stack\Download> .\RzTest.exe
MSG: 36, LP: 100396492, WP: 0, HWND: 933064
MSG: 129, LP: 100396480, WP: 0, HWND: 933064
MSG: 131, LP: 100396460, WP: 0, HWND: 933064
MSG: 1, LP: 100396480, WP: 0, HWND: 933064
Init: 85286917943328768 / 0
PS D:\Stack\Download> .\RzTest.exe
MSG: 36, LP: 102428700, WP: 0, HWND: 1445498
MSG: 129, LP: 102428688, WP: 0, HWND: 1445498
MSG: 131, LP: 102428668, WP: 0, HWND: 1445498
MSG: 1, LP: 102428688, WP: 0, HWND: 1445498
Init: 81064793292668928 / 0

Do you want me to assign an actual activity to the RZtest device in Chroma Studio?

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

TT RGB Plus.log

Here's the TT log, just for comparison...

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

When I assign the fire effect to the RzTest device, it animates it similar as the TT RGB Plus device...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Hmm, this is going to be hard to debug.

Do this: disable the TT sync, remove the TT key under ChromaBroadcast from the registry, change RzTest.exe Index to 8, and then test RzTest.exe

Also I think the return values are just garbage because I set the return type to long, but it looks like broadcast api uses int. Use this:
RzTest.zip

Should be working? πŸ€·β€β™‚

edit: Nevermind, so the regedit stuff is created by the razer api, so you have to disable TT sync and remove the Thermaltake.exe key from registry. Then when you launch RzTest it will create the Thermaltake.exe key again but with different Path value.

RzTest.zip

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I removed both entries and ran the new RzTest (twice actually, as the first time my AV intercepted it, and I wasn't certain it ran correctly)

D:\Stack> .\RzTest.exe
MSG: 36, LP: 102820796, WP: 0, HWND: 1446294
MSG: 129, LP: 102820784, WP: 0, HWND: 1446294
MSG: 131, LP: 102820764, WP: 0, HWND: 1446294
MSG: 1, LP: 102820784, WP: 0, HWND: 1446294
Init: SUCCESS / 0
RegisterEventNotification: SUCCESS

Log:
RzTest.log

Registry section after running the new RzTest
RzTest.zip

Hope you find something useful!

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Ok so it seems to be working, now you can test what happens when you assign effects to RzTest. You should see messages with rgb colors.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Where should I see the messages exactly?

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Ok, update: When I run RzTest with Taskmanager open, I see Windows Problem Reporter run along in the background, before RzTest terminates... I am assuming now - from your 'messages' statement - that it should continue to run and show me stuff?

Anyway, here's the Problem Reporter detail (in Dutch, sorry):

Bron
Sandbox

Overzicht
Werkt niet meer

Datum
β€Ž22-β€Ž5-β€Ž2019 11:31

Status
Verzonden rapport

Beschrijving
Pad naar toepassing met fout: D:\Stack\RzTest.exe

Probleem met handtekening
Naam van probleemgebeurtenis: BEX
Naam van de toepassing: RzTest.exe
Versie van toepassing: 1.0.0.0
Tijdstempel van toepassing: 5ce44aff
Naam van foutmodule: StackHash_2beb
Versie van foutmodule: 0.0.0.0
Tijdstempel van foutmodule: 00000000
Uitzonderingsmarge: PCH_AB_FROM_ntdll+0x0006AE8C
Uitzonderingscode: c0000005
Uitzonderingsgegevens: 00000008
Versie van besturingssysteem: 10.0.17134.2.0.0.256.48
Landinstelling-id: 1043
Aanvullende informatie 1: 2beb
Aanvullende informatie 2: 2beba6fb4680d73a8c78ca7c24ccdb46
Aanvullende informatie 3: 1ca5
Aanvullende informatie 4: 1ca5ddcf4f5843895cc5b9d12f08468c

Extra informatie over het probleem
Bucket-id: 0dbbbdd8030c424affe422cf55951236 (2297999983755203126)

Does this help any?

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

(Given that it is a BEX event, I would hazard a guess that somewhere you are using an incorrect size buffer/variable to store feedback from the Razer SDK?)

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

There should be another event that shows the stacktrace, I need to know which line is causing the crash.

The console should be running all the time and it will output the messages. To exit you have to press any key twice (first dispose/uninit, second exit)

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

All events in chronological order:

▢️
Toepassing: RzTest.exe
Framework-versie: v4.0.30319
Beschrijving: het proces is beΓ«indigd als gevolg van een onverwerkte uitzondering.
Uitzonderingsinformatie: uitzonderingscode c0000005, uitzonderingsadres 003A09D2
▢️
Naam van toepassing met fout: RzTest.exe, versie: 1.0.0.0, tijdstempel: 0x5ce44aff
Naam van module met fout: unknown, versie: 0.0.0.0, tijdstempel: 0x00000000
Uitzonderingscode: 0xc0000005
Foutmarge: 0x003a09d2
Id van proces met fout: 0x1e08
Starttijd van toepassing met fout: 0x01d510812b9bc283
Pad naar toepassing met fout: D:\Stack\RzTest.exe
Pad naar module met fout: unknown
Rapport-id: 8f6ecf4a-e957-439e-86d6-dc84b6e28dec
Volledige pakketnaam met fout:
Relatieve toepassings-id van pakket met fout:
▢️
Foutbucket 2297999983755203126, type 5
Naam van gebeurtenis: BEX
Antwoord: Niet beschikbaar
Id van CAB-bestand: 0

Handtekening van probleem:
P1: RzTest.exe
P2: 1.0.0.0
P3: 5ce44aff
P4: StackHash_2beb
P5: 0.0.0.0
P6: 00000000
P7: PCH_AB_FROM_ntdll+0x0006AE8C
P8: c0000005
P9: 00000008
P10:

Toegevoegde bestanden:
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1D58.tmp.dmp
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER28A3.tmp.WERInternalMetadata.xml
\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER297F.tmp.xml

Deze bestanden zijn mogelijk hier beschikbaar:
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_RzTest.exe_d32c6598e6befc9bb7d61c874e7ec195a4553bec_866f5d7c_09222db3

Analysesymbool:
Opnieuw zoeken naar oplossing: 0
Rapport-id: 8f6ecf4a-e957-439e-86d6-dc84b6e28dec
Rapportstatus: 268435456
Opgedeelde bucket: 0dbbbdd8030c424affe422cf55951236
GUID van CAB-bestand: 0
▢️

Finally the WER report:
Report.zip

There are no dump files saved, AFAICT...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Hmm, well I need the stacktrace to know where it breaks. Was there an exception shown in the console windows? What was the last printed line?

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

no error or exception.

Last line was
RegisterEventNotification: SUCCESS

After that the prompt was shown.
Actually the output in comment #16 (comment) was verbatim from the console, and shows exactly the sequence.

Below the verbatim output from the last 4 attempts (note that #2 stuck around long enough to post the unregister and uninit messages)

PS D:\Stack> .\RzTest.exe
MSG: 36, LP: 102820796, WP: 0, HWND: 1446294
MSG: 129, LP: 102820784, WP: 0, HWND: 1446294
MSG: 131, LP: 102820764, WP: 0, HWND: 1446294
MSG: 1, LP: 102820784, WP: 0, HWND: 1446294
Init: SUCCESS / 0
RegisterEventNotification: SUCCESS
PS D:\Stack> .\RzTest.exe
MSG: 36, LP: 87486268, WP: 0, HWND: 14680938
MSG: 129, LP: 87486256, WP: 0, HWND: 14680938
MSG: 131, LP: 87486236, WP: 0, HWND: 14680938
MSG: 1, LP: 87486256, WP: 0, HWND: 14680938
Init: SUCCESS / 0
RegisterEventNotification: SUCCESS
UnregisterEventNotification: SUCCESS
UnInit: SUCCESS
PS D:\Stack> .\RzTest.exe
MSG: 36, LP: 102166412, WP: 0, HWND: 4918734
MSG: 129, LP: 102166400, WP: 0, HWND: 4918734
MSG: 131, LP: 102166380, WP: 0, HWND: 4918734
MSG: 1, LP: 102166400, WP: 0, HWND: 4918734
Init: SUCCESS / 0
RegisterEventNotification: SUCCESS
PS D:\Stack> .\RzTest.exe
MSG: 36, LP: 90172940, WP: 0, HWND: 3803602
MSG: 129, LP: 90172928, WP: 0, HWND: 3803602
MSG: 131, LP: 90172908, WP: 0, HWND: 3803602
MSG: 1, LP: 90172928, WP: 0, HWND: 3803602
Init: SUCCESS / 0
RegisterEventNotification: SUCCESS
PS D:\Stack>

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

By being fast (and using 1 CLI and 2 Explorer Windows next to eachother, run, Ctrl-A, Ctrl-C and Ctrl-V combo's) I was able to grab these from the WER Temp folder before they were deleted again:
RzTest.zip
These go with this WER report:
AppCrash_RzTest.exe_d32c6598e6befc9bb7d61c874e7ec195a4553bec_866f5d7c_69828951.zip

Hope this helps a bit more!

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Nah, that is all generic exception stuff.

I've changed the only thing that can throw buffer overflow:
RzTest.zip

Btw do you have visual studio setup? I think it would be much faster if I could send you the project and you would run it.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

No Visual Studio, but I can set it up, plenty of spare space on my drive! ;)

Will test the latest RzTest

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Same result! :(

I will do a reboot, just to make certain everything is clear, and if that doesn't help, I will go grab VS

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

You can also try this:
RzTest.zip

Changed the same thing to a different method.

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

And source if above also doesn't work:
Sandbox.zip

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

afbeelding

afbeelding

afbeelding

So the app remains running since reboot, but no messages... It identifies itself as TT, and shows up like that in Synapse, but with a generic icon instead of the TT icon...

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Downloading the VS IDE now!

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

PS: What components do I need for the project?

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

I guess you only need c#, you can leave the installer at defaults and it will be fine.

If it does not crash anymore then I would think it is working, its just not getting any messages. But dunno why.

edit: Maybe you have to apply the effect? Maybe it does not show it live when in editor.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I did apply and save the effect... Even change profiles to enforce it to be (re-)applied...

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I will try to have a look later today at the source and how it responds

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

I dont think you will gather much from the source, it seems to be working as it is initialized and registered correctly. It is just not getting the broadcast rgb messages. Maybe try looking again in the synapse logs?

I managed to install synapse3 on my laptop but the api returns errors that I dont have any razer device connected.

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Ok, I got it working.

Try this:
RzTest.zip

Im only getting the message "Chroma Broadcast Offline" but I guess that is because I dont have any razer devices. I had to modify the api dll assembly to skip the device present check.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Methinks you were successful...

As you probably noted, Razer supports up to 5 LEDs for the broadcast connection, so below some output from the 'fire' emulation, with 5 values each broadcast (1 for each virtualized LED):

D:\Stack> .\RzTest.exe
Init: SUCCESS
RegisterEventNotification: SUCCESS
LEN: 5
[195, 110, 0]
[71, 34, 0]
[195, 110, 0]
[84, 40, 0]
[157, 75, 0]
Chroma Broadcast Online
LEN: 5
[189, 106, 0]
[51, 24, 0]
[189, 106, 0]
[60, 28, 0]
[145, 69, 0]
LEN: 5
[189, 106, 0]
[51, 24, 0]
[189, 106, 0]
[60, 28, 0]
[145, 69, 0]
LEN: 5
[195, 110, 0]
[52, 25, 0]
[195, 110, 0]
[85, 41, 0]
[138, 66, 0]
LEN: 5
[202, 114, 0]
[54, 26, 0]
[202, 114, 0]
[111, 53, 0]
[132, 63, 0]
LEN: 5
[209, 118, 0]
[56, 27, 0]
[209, 118, 0]
[136, 65, 0]
[125, 60, 0]
LEN: 5
[216, 121, 0]
[58, 27, 0]
[216, 121, 0]
[162, 78, 0]
[119, 57, 0]
LEN: 5
[216, 121, 0]
[58, 27, 0]
[216, 121, 0]
[162, 78, 0]
[119, 57, 0]
LEN: 5
[195, 110, 0]
[78, 37, 0]
[195, 110, 0]
[132, 63, 0]
[122, 58, 0]
LEN: 5
[175, 98, 0]
[99, 47, 0]
[175, 98, 0]
[102, 49, 0]
[125, 60, 0]
LEN: 5
[155, 87, 0]
[119, 57, 0]
[155, 87, 0]
[72, 34, 0]
[128, 61, 0]
LEN: 5
[135, 76, 0]
[140, 67, 0]
[135, 76, 0]
[42, 20, 0]
[132, 63, 0]
LEN: 5
[135, 76, 0]
[140, 67, 0]
[135, 76, 0]
[42, 20, 0]
[132, 63, 0]
LEN: 5
[137, 77, 0]
[147, 70, 0]
[137, 77, 0]
[77, 37, 0]
[118, 56, 0]
LEN: 5
[140, 79, 0]
[154, 74, 0]
[140, 79, 0]
[113, 54, 0]
[105, 50, 0]
LEN: 5
[142, 80, 0]
[161, 77, 0]
[142, 80, 0]
[148, 71, 0]
[92, 44, 0]
LEN: 5
[145, 81, 0]
[168, 81, 0]
[145, 81, 0]
[184, 88, 0]
[79, 38, 0]
LEN: 5
[145, 81, 0]
[168, 81, 0]
[145, 81, 0]
[184, 88, 0]
[79, 38, 0]
LEN: 5
[155, 87, 0]
[168, 81, 0]
[155, 87, 0]
[155, 74, 0]
[87, 41, 0]
LEN: 5
[165, 93, 0]
[169, 81, 0]
[165, 93, 0]
[127, 61, 0]
[96, 46, 0]
LEN: 5
[175, 98, 0]
[169, 81, 0]
[175, 98, 0]
[99, 47, 0]
[104, 50, 0]
LEN: 5
[185, 104, 0]
[170, 82, 0]
[185, 104, 0]
[71, 34, 0]
[113, 54, 0]
LEN: 5
[185, 104, 0]
[170, 82, 0]
[185, 104, 0]
[71, 34, 0]
[113, 54, 0]
LEN: 5
[190, 107, 0]
[138, 66, 0]
[190, 107, 0]
[103, 49, 0]
[93, 44, 0]
LEN: 5
[196, 110, 0]
[107, 51, 0]
[196, 110, 0]
[135, 65, 0]
[73, 35, 0]
LEN: 5
[201, 113, 0]
[76, 36, 0]
[201, 113, 0]
[167, 80, 0]
[53, 25, 0]
LEN: 5
[207, 116, 0]
[45, 21, 0]
[207, 116, 0]
[199, 95, 0]
[33, 15, 0]
LEN: 5
[207, 116, 0]
[45, 21, 0]
[207, 116, 0]
[199, 95, 0]
[33, 15, 0]
LEN: 5
[163, 92, 0]
[60, 28, 0]
[163, 92, 0]
[163, 78, 0]
[41, 19, 0]
LEN: 5
[120, 67, 0]
[76, 36, 0]
[120, 67, 0]
[128, 61, 0]
[49, 23, 0]
LEN: 5
[77, 43, 0]
[92, 44, 0]
[77, 43, 0]
[93, 44, 0]
[57, 27, 0]
LEN: 5
[34, 19, 0]
[108, 52, 0]
[34, 19, 0]
[58, 27, 0]
[65, 31, 0]
LEN: 5
[34, 19, 0]
[108, 52, 0]
[34, 19, 0]
[58, 27, 0]
[65, 31, 0]
LEN: 5
[69, 38, 0]
[92, 44, 0]
[69, 38, 0]
[84, 40, 0]
[94, 45, 0]
LEN: 5
[105, 59, 0]
[76, 36, 0]
[105, 59, 0]
[110, 53, 0]
[123, 59, 0]
LEN: 5
[141, 79, 0]
[60, 28, 0]
[141, 79, 0]
[136, 65, 0]
[152, 73, 0]
LEN: 5
[177, 99, 0]
[45, 21, 0]
[177, 99, 0]
[163, 78, 0]
[181, 87, 0]
LEN: 5
[177, 99, 0]
[45, 21, 0]
[177, 99, 0]
[163, 78, 0]
[181, 87, 0]
LEN: 5
[161, 90, 0]
[69, 33, 0]
[161, 90, 0]
[169, 81, 0]
[175, 84, 0]
LEN: 5
[145, 81, 0]
[93, 44, 0]
[145, 81, 0]
[176, 84, 0]
[170, 82, 0]
LEN: 5
[129, 72, 0]
[117, 56, 0]
[129, 72, 0]
[182, 87, 0]
[164, 79, 0]
LEN: 5
[114, 64, 0]
[141, 68, 0]
[114, 64, 0]
[189, 91, 0]
[159, 76, 0]
LEN: 5
[114, 64, 0]
[141, 68, 0]
[114, 64, 0]
[189, 91, 0]
[159, 76, 0]
LEN: 5
[127, 71, 0]
[131, 63, 0]
[127, 71, 0]
[183, 88, 0]
[173, 83, 0]
LEN: 5
[140, 79, 0]
[122, 58, 0]
[140, 79, 0]
[177, 85, 0]
[188, 90, 0]
LEN: 5
[153, 86, 0]
[113, 54, 0]
[153, 86, 0]
[171, 82, 0]
[203, 97, 0]
LEN: 5
[166, 93, 0]
[104, 50, 0]
[166, 93, 0]
[166, 80, 0]
[218, 105, 0]
LEN: 5
[166, 93, 0]
[104, 50, 0]
[166, 93, 0]
[166, 80, 0]
[218, 105, 0]
LEN: 5
[174, 98, 0]
[122, 58, 0]
[174, 98, 0]
[169, 81, 0]
[176, 84, 0]
LEN: 5
[182, 102, 0]
[141, 68, 0]
[182, 102, 0]
[172, 82, 0]
[134, 64, 0]
LEN: 5
[190, 107, 0]
[160, 77, 0]
[190, 107, 0]
[175, 84, 0]
[92, 44, 0]
LEN: 5
[199, 112, 0]
[179, 86, 0]
[199, 112, 0]
[178, 85, 0]
[51, 24, 0]
LEN: 5
[199, 112, 0]
[179, 86, 0]
[199, 112, 0]
[178, 85, 0]
[51, 24, 0]
LEN: 5
[169, 95, 0]
[171, 82, 0]
[169, 95, 0]
[148, 71, 0]
[57, 27, 0]
LEN: 5
[140, 79, 0]
[163, 78, 0]
[140, 79, 0]
[119, 57, 0]
[63, 30, 0]
LEN: 5
[110, 62, 0]
[155, 74, 0]
[110, 62, 0]
[90, 43, 0]
[69, 33, 0]
LEN: 5
[81, 45, 0]
[148, 71, 0]
[81, 45, 0]
[61, 29, 0]
[76, 36, 0]
LEN: 5
[81, 45, 0]
[148, 71, 0]
[81, 45, 0]
[61, 29, 0]
[76, 36, 0]
LEN: 5
[73, 41, 0]
[121, 58, 0]
[73, 41, 0]
[91, 43, 0]
[110, 53, 0]
LEN: 5
[65, 36, 0]
[94, 45, 0]
[65, 36, 0]
[122, 58, 0]
[144, 69, 0]
LEN: 5
[57, 32, 0]
[67, 32, 0]
[57, 32, 0]
[153, 73, 0]
[178, 85, 0]
LEN: 5
[49, 27, 0]
[40, 19, 0]
[49, 27, 0]
[184, 88, 0]
[212, 102, 0]
LEN: 5
[49, 27, 0]
[40, 19, 0]
[49, 27, 0]
[184, 88, 0]
[212, 102, 0]
LEN: 5
[79, 44, 0]
[54, 26, 0]
[79, 44, 0]
[153, 73, 0]
[186, 89, 0]

I will try to set up a profile that will allow me to map a single color to each LED, so we can figure out how TT maps them... ;)

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Nice! Although the blue is always 0, I hope its just because of the fire effect.

You will want to use LedCountHandling.Lerp with this anyways to stretch the 5 colors to 12.

Here is a plugin for the service:
TTController.Plugin.RazerConnectEffect.dll.zip
Put it in the Plugins folder.

The config should look something like this:

{
  "Profiles": [
    {
      "Name": "Default",
      "Guid": "10af9207-7e67-4581-9d13-516cad5d53c1",
      "Ports": [
        [9802, 8101, 3],
        [9802, 8101, 4],
        [9802, 8101, 5],
        [9802, 8101, 2],
        [9802, 8101, 1]
      ],
      "Effects": [
        {
          "Type": "RazerConnectEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [
        [9802, 8101, 3],
        [9802, 8101, 4],
        [9802, 8101, 5],
        [9802, 8101, 2],
        [9802, 8101, 1]
      ],
      "Config": {
        "LedCountHandling": "Lerp"
      }
    }
  ]
}

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I do not understand the Razer Ambient Awareness (which I wanted to do separate colors through)... When I do a hard black/white 50/50 and select that as the region, I get muddled greys, even when I choose "sharp"...

Will test some more...

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

afbeelding
leads to
afbeelding
leads to
58486732-b4b63c80-8166-11e9-8957-b4b7c10e0b95
and gives:
D:\Stack> .\RzTest.exe
Init: SUCCESS
RegisterEventNotification: SUCCESS
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
Chroma Broadcast Online
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]
LEN: 5
[200, 214, 56]
[239, 243, 16]
[200, 214, 56]
[122, 154, 139]
[83, 125, 179]

(Hope it makes sense)

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I will get the latest installed and test it... GTG finish some work now first ;)

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Something is wrong, either in the config file, or in it's interpretation:

2019-05-28 16:55:51.4670|INFO|TTController.Service.TTService|Initializing...
2019-05-28 16:55:51.4874|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
2019-05-28 16:55:51.5154|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ByLedColorEffect [0.7.0.0]
2019-05-28 16:55:51.5154|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FlowEffect [0.7.0.0]
2019-05-28 16:55:51.5154|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FullColorEffect [0.7.0.0]
2019-05-28 16:55:51.5154|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseEffect [0.7.0.0]
2019-05-28 16:55:51.5154|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RawEffect [0.7.0.0]
2019-05-28 16:55:51.5314|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RazerConnectEffect [1.0.0.0]
2019-05-28 16:55:51.5314|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RippleEffect [0.7.0.0]
2019-05-28 16:55:51.5314|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorEffect [0.7.0.0]
2019-05-28 16:55:51.5314|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SnakeEffect [0.7.0.0]
2019-05-28 16:55:51.5583|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SoundEffect [0.7.0.0]
2019-05-28 16:55:51.5623|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.7.0.0]
2019-05-28 16:55:51.5623|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.WaveEffect [0.7.0.0]
2019-05-28 16:55:51.5893|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.CopySpeedController [0.7.0.0]
2019-05-28 16:55:51.5928|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.7.0.0]
2019-05-28 16:55:51.5928|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.7.0.0]
2019-05-28 16:55:51.5928|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.7.0.0]
2019-05-28 16:55:51.6077|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.LogicTrigger [0.7.0.0]
2019-05-28 16:55:51.6077|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.7.0.0]
2019-05-28 16:55:51.6077|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.7.0.0]
2019-05-28 16:55:51.6077|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseTrigger [0.7.0.0]
2019-05-28 16:55:51.6222|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorTrigger [0.7.0.0]
2019-05-28 16:55:51.6222|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.DpsgController [0.7.0.0]
2019-05-28 16:55:51.6222|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingController [0.7.0.0]
2019-05-28 16:55:51.6222|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingPlusController [0.7.0.0]
2019-05-28 16:55:51.6377|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingTrioController [0.7.0.0]
2019-05-28 16:55:51.6377|INFO|TTController.Service.Manager.ConfigManager|Creating Config Manager...
2019-05-28 16:55:51.6377|INFO|TTController.Service.Manager.ConfigManager|Loading config...
2019-05-28 16:55:52.0131|FATAL|TTController.Service.Manager.ConfigManager|Reeks bevat geen overeenkomend element
2019-05-28 16:55:52.0131|FATAL|TTController.Service.Manager.ConfigManager|System.InvalidOperationException: Reeks bevat geen overeenkomend element
   bij System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
   bij TTController.Service.Config.Converter.AbstractPluginConverter`2.ReadJson(JsonReader reader, Type objectType, TPlugin existingValue, Boolean hasExistingValue, JsonSerializer serializer)
   bij Newtonsoft.Json.JsonConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   bij Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   bij Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   bij Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   bij TTController.Service.Manager.ConfigManager.LoadOrCreateConfig()
2019-05-28 16:55:52.0131|FATAL|TTController.Service.Manager.ConfigManager|Failed to load the config file!
2019-05-28 16:55:52.0131|FATAL|TTController.Service.TTService|System.Exception: Service failed to start!
   bij TTController.Service.TTService.OnStart(String[] args)
2019-05-28 16:55:52.0131|INFO|TTController.Service.TTService|================================================================
2019-05-28 16:55:52.0131|INFO|TTController.Service.TTService|Finalizing...
2019-05-28 16:55:52.0131|INFO|TTController.Service.Manager.ConfigManager|Disposing ConfigManager...
2019-05-28 16:55:52.0286|INFO|TTController.Service.TTService|Disposing done!
2019-05-28 16:55:52.0286|INFO|TTController.Service.TTService|================================================================```


("Reeks bevat geen overeenkomend element" translates to "Series does not contain a matching element")

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Config as reported by TTController:

-------------------------------
Name: Riing Plus
VendorId: 9802
ProductId: 8101
Ports:
        Id: 1
        Data: [PortId: 1, Speed: 40, Rpm: 761, Unknown: 255]
        Identifier: [9802, 8101, 1]

        Id: 2
        Data: [PortId: 2, Speed: 40, Rpm: 736, Unknown: 255]
        Identifier: [9802, 8101, 2]

        Id: 3
        Data: [PortId: 3, Speed: 40, Rpm: 782, Unknown: 255]
        Identifier: [9802, 8101, 3]

        Id: 4
        Data: [PortId: 4, Speed: 60, Rpm: 0, Unknown: 255]
        Identifier: [9802, 8101, 4]

        Id: 5
        Data: [PortId: 5, Speed: 60, Rpm: 0, Unknown: 255]
        Identifier: [9802, 8101, 5]

Available effect types:
Flow_Extreme, Flow_Fast, Flow_Normal, Flow_Slow, Spectrum_Extreme, Spectrum_Fast, Spectrum_Normal, Spectrum_Slow, Ripple_Extreme, Ripple_Fast, Ripple_Normal, Ripple_Slow, Blink_Extreme, Blink_Fast, Blink_Normal, Blink_Slow, Pulse_Extreme, Pulse_Fast, Pulse_Normal, Pulse_Slow, Wave_Extreme, Wave_Fast, Wave_Normal, Wave_Slow, ByLed, Full

Plugins
-------------------------------
Valid plugins:
        TTController.Plugin.BlinkEffect.dll
        TTController.Plugin.ByLedColorEffect.dll
        TTController.Plugin.FlowEffect.dll
        TTController.Plugin.FullColorEffect.dll
        TTController.Plugin.PulseEffect.dll
        TTController.Plugin.RawEffect.dll
        TTController.Plugin.RazerConnectEffect.dll
        TTController.Plugin.RippleEffect.dll
        TTController.Plugin.SensorEffect.dll
        TTController.Plugin.SnakeEffect.dll
        TTController.Plugin.SoundEffect.dll
        TTController.Plugin.SpectrumEffect.dll
        TTController.Plugin.WaveEffect.dll
        TTController.Plugin.CopySpeedController.dll
        TTController.Plugin.PwmSpeedController.dll
        TTController.Plugin.StaticSpeedController.dll
        TTController.Plugin.AlwaysTrigger.dll
        TTController.Plugin.LogicTrigger.dll
        TTController.Plugin.OneTimeTrigger.dll
        TTController.Plugin.ProcessTrigger.dll
        TTController.Plugin.PulseTrigger.dll
        TTController.Plugin.SensorTrigger.dll
        TTController.Plugin.DpsgController.dll
        TTController.Plugin.RiingController.dll
        TTController.Plugin.RiingPlusController.dll
        TTController.Plugin.RiingTrioController.dll

Sensors
-------------------------------
Intel Core i5-4670K:
        CPU Core #1 (/intelcpu/0/temperature/0): 41
        CPU Core #2 (/intelcpu/0/temperature/1): 42
        CPU Core #3 (/intelcpu/0/temperature/2): 41
        CPU Core #4 (/intelcpu/0/temperature/3): 38
        CPU Package (/intelcpu/0/temperature/4): 41
NVIDIA GeForce GTX 1070 Ti:
        GPU Core (/nvidiagpu/0/temperature/0): 53
SSD PLUS 480GB:
        Temperature (/hdd/0/temperature/0): 28
ST1000DM003-1ER162:
        Temperature (/hdd/1/temperature/0): 32
WDC WDS500G2B0B-00YS70:
        Temperature (/hdd/2/temperature/0): 33
-------------------------------```

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Whoops, typo in class name so the service was unable to find it. Fixed:
TTController.Plugin.RazerConnectEffect.dll.zip

From the config you can remove [9802, 8101, 4] and [9802, 8101, 5] since it seems you have 3 fans.

Also the picture of the fan you posted was with Copy or Lerp LedCountHandling?

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

The fan image was from the TT RGB Plus software, so you had an idea of what it does...

I will test with the updated DLL

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I feel so bad, but...

2019-05-28 17:19:21.0547|INFO|TTController.Service.TTService|Initializing...
2019-05-28 17:19:21.0801|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
2019-05-28 17:19:21.1136|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ByLedColorEffect [0.7.0.0]
2019-05-28 17:19:21.1136|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FlowEffect [0.7.0.0]
2019-05-28 17:19:21.1271|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FullColorEffect [0.7.0.0]
2019-05-28 17:19:21.1271|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseEffect [0.7.0.0]
2019-05-28 17:19:21.1271|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RawEffect [0.7.0.0]
2019-05-28 17:19:21.1410|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RazerConnectEffect [1.0.0.0]
2019-05-28 17:19:21.1410|FATAL|TTController.Service.TTService|System.IO.FileLoadException: Kan bestand of assembly TTController.Plugin.RazerConnectEffect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null of een van de afhankelijkheden hiervan niet laden. Bewerking wordt niet ondersteund. (Uitzondering van HRESULT: 0x80131515)
Bestandsnaam: TTController.Plugin.RazerConnectEffect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null ---> System.NotSupportedException: Er is een poging gedaan een assembly te laden vanuit een netwerklocatie. Hierdoor kan de assembly in een sandbox worden geplaatst in eerdere versies van .NET Framework. In deze versie van .NET Framework wordt CAS-beleid niet standaard ingeschakeld. Deze laadbewerking kan daarom gevaarlijk zijn. Als deze laadbewerking niet is bedoeld om de assembly in een sandbox te plaatsen, moet u de schakeloptie loadFromRemoteSources inschakelen. Zie http://go.microsoft.com/fwlink/?LinkId=155569 voor meer informatie.
   bij System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   bij System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   bij System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   bij TTController.Service.Utils.PluginLoader.<>c.<Load>b__3_0(Assembly a)
   bij System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   bij System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   bij System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   bij TTController.Service.TTService.Initialize()
   bij TTController.Service.TTService.OnStart(String[] args)


2019-05-28 17:19:21.1580|INFO|TTController.Service.TTService|================================================================
2019-05-28 17:19:21.1580|INFO|TTController.Service.TTService|Finalizing...
2019-05-28 17:19:21.1580|INFO|TTController.Service.TTService|Disposing done!
2019-05-28 17:19:21.1580|INFO|TTController.Service.TTService|================================================================

"PublicKeyToken = null or one of its dependencies cannot load. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: TTController.Plugin.RazerConnectEffect, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null ---> System.NotSupportedException: An attempt was made to load an assembly from a network location. This allows the assembly to be placed in a sandbox in earlier versions of the .NET Framework. In this version of the .NET Framework, CAS policy is not enabled by default. This loading operation can therefore be dangerous. If this loading operation is not intended to place the assembly in a sandbox, you must enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information."

(It's on a fixed harddisk, not a network drive!)

Using config:

{
  "Profiles": [
    {
      "Name": "Default",
      "Guid": "10af9207-7e67-4581-9d13-516cad5d53c1",
      "Ports": [
        [9802, 8101, 3],
        [9802, 8101, 2],
        [9802, 8101, 1]
      ],
      "Effects": [
        {
          "Type": "RazerConnectEffect",
          "Config": {
            "Trigger": {
              "Type": "AlwaysTrigger"
            }
          }
        }
      ]
    }
  ],
  "PortConfigs": [
    {
      "Ports": [
        [9802, 8101, 3],
        [9802, 8101, 2],
        [9802, 8101, 1]
      ],
      "Config": {
        "LedCountHandling": "Lerp"
      }
    }
  ]
}

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Umm, why would you get this error now and not before...

Try this:

  • rightclick the dll
  • click properties
  • click unblock

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Yes, it was blocked... Not sure why it marked the last update that way, but that resolved one issue, to show the next one...
ducks and hides

2019-05-28 17:35:29.0625|INFO|TTController.Service.TTService|================================================================
2019-05-28 17:35:29.0959|INFO|TTController.Service.TTService|Initializing...
2019-05-28 17:35:29.1179|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
2019-05-28 17:35:29.1468|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ByLedColorEffect [0.7.0.0]
2019-05-28 17:35:29.1468|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FlowEffect [0.7.0.0]
2019-05-28 17:35:29.1533|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.FullColorEffect [0.7.0.0]
2019-05-28 17:35:29.1533|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseEffect [0.7.0.0]
2019-05-28 17:35:29.1533|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RawEffect [0.7.0.0]
2019-05-28 17:35:29.1533|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RazerConnectEffect [1.0.0.0]
2019-05-28 17:35:29.1533|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RippleEffect [0.7.0.0]
2019-05-28 17:35:29.1698|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorEffect [0.7.0.0]
2019-05-28 17:35:29.1698|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SnakeEffect [0.7.0.0]
2019-05-28 17:35:29.1888|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SoundEffect [0.7.0.0]
2019-05-28 17:35:29.1888|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.7.0.0]
2019-05-28 17:35:29.1888|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.WaveEffect [0.7.0.0]
2019-05-28 17:35:29.2162|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.CopySpeedController [0.7.0.0]
2019-05-28 17:35:29.2162|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.7.0.0]
2019-05-28 17:35:29.2162|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.7.0.0]
2019-05-28 17:35:29.2162|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.7.0.0]
2019-05-28 17:35:29.2317|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.LogicTrigger [0.7.0.0]
2019-05-28 17:35:29.2317|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.7.0.0]
2019-05-28 17:35:29.2317|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.7.0.0]
2019-05-28 17:35:29.2317|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.PulseTrigger [0.7.0.0]
2019-05-28 17:35:29.2317|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.SensorTrigger [0.7.0.0]
2019-05-28 17:35:29.2487|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.DpsgController [0.7.0.0]
2019-05-28 17:35:29.2487|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingController [0.7.0.0]
2019-05-28 17:35:29.2487|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingPlusController [0.7.0.0]
2019-05-28 17:35:29.2487|INFO|TTController.Service.Utils.PluginLoader|Loading plugin assembly: TTController.Plugin.RiingTrioController [0.7.0.0]
2019-05-28 17:35:29.2686|INFO|TTController.Service.Manager.ConfigManager|Creating Config Manager...
2019-05-28 17:35:29.2686|INFO|TTController.Service.Manager.ConfigManager|Loading config...
2019-05-28 17:35:29.6780|FATAL|TTController.Service.Manager.ConfigManager|Het doel van een aanroep heeft een uitzondering veroorzaakt.
2019-05-28 17:35:29.6780|FATAL|TTController.Service.Manager.ConfigManager|System.Reflection.TargetInvocationException: Het doel van een aanroep heeft een uitzondering veroorzaakt. ---> System.ArgumentNullException: Waarde kan niet null zijn.
Parameternaam: ptr
   bij System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr ptr, Type t)
   bij TTController.Plugin.RazerConnectEffect.RzChromaBroadcastNative.Load()
   bij TTController.Plugin.RazerConnectEffect.RazerConnectEffect..ctor(RazerConnectEffectConfig config)
   --- Einde van intern uitzonderingsstackpad ---
   bij System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   bij System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   bij System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   bij System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   bij System.Activator.CreateInstance(Type type, Object[] args)
   bij TTController.Service.Config.Converter.AbstractPluginConverter`2.ReadJson(JsonReader reader, Type objectType, TPlugin existingValue, Boolean hasExistingValue, JsonSerializer serializer)
   bij Newtonsoft.Json.JsonConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   bij Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   bij Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   bij Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   bij TTController.Service.Manager.ConfigManager.LoadOrCreateConfig()
2019-05-28 17:35:29.6860|FATAL|TTController.Service.Manager.ConfigManager|Failed to load the config file!
2019-05-28 17:35:29.6860|FATAL|TTController.Service.TTService|System.Exception: Service failed to start!
   bij TTController.Service.TTService.OnStart(String[] args)
2019-05-28 17:35:29.6860|INFO|TTController.Service.TTService|================================================================
2019-05-28 17:35:29.6860|INFO|TTController.Service.TTService|Finalizing...
2019-05-28 17:35:29.7059|INFO|TTController.Service.Manager.ConfigManager|Disposing ConfigManager...
2019-05-28 17:35:29.7059|INFO|TTController.Service.TTService|Disposing done!
2019-05-28 17:35:29.7059|INFO|TTController.Service.TTService|================================================================

Is this line correct:
TTController.Plugin.RazerConnectEffect.RazerConnectEffect..ctor(RazerConnectEffectConfig config)

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Nah no worries, this is what happens when you cant fully test the code you are writing πŸ˜›

It was loading 32bit dll but the service is 64bit. This should maybe work now:
TTController.Plugin.RazerConnectEffect.dll.zip

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024
19:01:20.9062: ================================================================
19:01:20.9506: Initializing...
19:01:20.9716: Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
19:01:21.0125: Loading plugin assembly: TTController.Plugin.ByLedColorEffect [0.7.0.0]
19:01:21.0165: Loading plugin assembly: TTController.Plugin.FlowEffect [0.7.0.0]
19:01:21.0165: Loading plugin assembly: TTController.Plugin.FullColorEffect [0.7.0.0]
19:01:21.0165: Loading plugin assembly: TTController.Plugin.PulseEffect [0.7.0.0]
19:01:21.0165: Loading plugin assembly: TTController.Plugin.RawEffect [0.7.0.0]
19:01:21.0325: Loading plugin assembly: TTController.Plugin.RazerConnectEffect [1.0.0.0]
19:01:21.0325: Loading plugin assembly: TTController.Plugin.RippleEffect [0.7.0.0]
19:01:21.0325: Loading plugin assembly: TTController.Plugin.SensorEffect [0.7.0.0]
19:01:21.0444: Loading plugin assembly: TTController.Plugin.SnakeEffect [0.7.0.0]
19:01:21.0619: Loading plugin assembly: TTController.Plugin.SoundEffect [0.7.0.0]
19:01:21.0619: Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.7.0.0]
19:01:21.0619: Loading plugin assembly: TTController.Plugin.WaveEffect [0.7.0.0]
19:01:21.0884: Loading plugin assembly: TTController.Plugin.CopySpeedController [0.7.0.0]
19:01:21.0914: Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.7.0.0]
19:01:21.0914: Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.7.0.0]
19:01:21.0914: Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.7.0.0]
19:01:21.0914: Loading plugin assembly: TTController.Plugin.LogicTrigger [0.7.0.0]
19:01:21.0914: Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.7.0.0]
19:01:21.1093: Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.7.0.0]
19:01:21.1093: Loading plugin assembly: TTController.Plugin.PulseTrigger [0.7.0.0]
19:01:21.1093: Loading plugin assembly: TTController.Plugin.SensorTrigger [0.7.0.0]
19:01:21.1093: Loading plugin assembly: TTController.Plugin.DpsgController [0.7.0.0]
19:01:21.1223: Loading plugin assembly: TTController.Plugin.RiingController [0.7.0.0]
19:01:21.1223: Loading plugin assembly: TTController.Plugin.RiingPlusController [0.7.0.0]
19:01:21.1223: Loading plugin assembly: TTController.Plugin.RiingTrioController [0.7.0.0]
19:01:21.1393: Creating Config Manager...
19:01:21.1393: Loading config...

Onverwerkte uitzondering: System.Reflection.TargetInvocationException: Het doel van een aanroep heeft een uitzondering veroorzaakt. ---> System.AccessViolationException: Poging tot het lezen of schrijven van beveiligd geheugen. Dit duidt er vaak op dat ander geheugen is beschadigd.
   bij TTController.Plugin.RazerConnectEffect.RzChromaBroadcastNative.Init(Guid guid)
   bij TTController.Plugin.RazerConnectEffect.RazerConnectEffect..ctor(RazerConnectEffectConfig config)
   --- Einde van intern uitzonderingsstackpad ---
   bij System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   bij System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   bij System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   bij System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   bij System.Activator.CreateInstance(Type type, Object[] args)
   bij TTController.Service.Config.Converter.AbstractPluginConverter`2.ReadJson(JsonReader reader, Type objectType, TPlugin existingValue, Boolean hasExistingValue, JsonSerializer serializer)
   bij Newtonsoft.Json.JsonConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   bij Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   bij Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   bij Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   bij Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   bij TTController.Service.Manager.ConfigManager.LoadOrCreateConfig()
   bij TTController.Service.TTService.Initialize()
   bij TTController.Service.Program.<>c.<Main>b__2_1()
   bij TTController.Service.Program.Main(String[] args)

"The target of a call has caused an exception. ---> System.AccessViolationException: Attempting to read or write protected memory. This often indicates that other memory is corrupted."

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

PS: The log stopped after "Loading config...", so I had to run it in console and grab the output before it all crashed...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

I tried to make 64bit work but I think there is something different with 64 and 32 bit api. I changed the service to compile as 32bit.

Try this build:
TTController_0.7.0.0-razer-connect.1.dbf94f07f2f39a77912cebac8d94f4d896fa61a9.zip

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024
23:18:29.3908: ================================================================
23:18:29.4182: Initializing...
23:18:29.8356: Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
23:18:29.8645: Loading plugin assembly: TTController.Plugin.ByLedColorEffect [0.7.0.0]
23:18:29.8645: Loading plugin assembly: TTController.Plugin.FlowEffect [0.7.0.0]
23:18:29.8645: Loading plugin assembly: TTController.Plugin.FullColorEffect [0.7.0.0]
23:18:29.8750: Loading plugin assembly: TTController.Plugin.PulseEffect [0.7.0.0]
23:18:29.8750: Loading plugin assembly: TTController.Plugin.RawEffect [0.7.0.0]
23:18:29.8750: Loading plugin assembly: TTController.Plugin.RazerConnectEffect [0.7.0.0]
23:18:29.8750: Loading plugin assembly: TTController.Plugin.RippleEffect [0.7.0.0]
23:18:29.8910: Loading plugin assembly: TTController.Plugin.SensorEffect [0.7.0.0]
23:18:29.8910: Loading plugin assembly: TTController.Plugin.SnakeEffect [0.7.0.0]
23:18:29.9135: Loading plugin assembly: TTController.Plugin.SoundEffect [0.7.0.0]
23:18:29.9135: Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.7.0.0]
23:18:29.9214: Loading plugin assembly: TTController.Plugin.WaveEffect [0.7.0.0]
23:18:29.9399: Loading plugin assembly: TTController.Plugin.CopySpeedController [0.7.0.0]
23:18:29.9399: Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.7.0.0]
23:18:29.9399: Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.7.0.0]
23:18:29.9524: Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.7.0.0]
23:18:29.9524: Loading plugin assembly: TTController.Plugin.LogicTrigger [0.7.0.0]
23:18:29.9524: Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.7.0.0]
23:18:29.9524: Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.7.0.0]
23:18:29.9524: Loading plugin assembly: TTController.Plugin.PulseTrigger [0.7.0.0]
23:18:29.9524: Loading plugin assembly: TTController.Plugin.SensorTrigger [0.7.0.0]
23:18:29.9693: Loading plugin assembly: TTController.Plugin.DpsgController [0.7.0.0]
23:18:29.9693: Loading plugin assembly: TTController.Plugin.RiingController [0.7.0.0]
23:18:29.9693: Loading plugin assembly: TTController.Plugin.RiingPlusController [0.7.0.0]
23:18:29.9693: Loading plugin assembly: TTController.Plugin.RiingTrioController [0.7.0.0]
23:18:29.9898: Creating Config Manager...
23:18:30.0742: Loading config...
23:18:30.2883: Creating DataCache...
23:18:30.2963: Creating Sensor Manager...
23:18:30.2963: Initializing Open Hardware Monitor...
23:18:31.7425: Detected 38 sensors
23:18:31.7425: Creating Effect Manager...
23:18:31.7425: Creating Speed Controller Manager...
23:18:31.7500: Creating Device Manager...
23:18:31.7925: Searching for "Dpsg" controllers
23:18:32.0221: Searching for "Riing" controllers
23:18:32.0471: Searching for "Riing Plus" controllers
23:18:32.0765: Initialized "Riing Plus" controller [0x264A, 0x1FA5]
23:18:32.0765: Searching for "Riing Trio" controllers
23:18:32.1025: Adding effect: RazerConnectEffect [10af9207-7e67-4581-9d13-516cad5d53c1]
23:18:32.1110: Creating Timer Manager...
23:18:32.1110: Starting 4 timers...
23:18:32.1110: Initializing done!
23:18:32.1110: ================================================================

Onverwerkte uitzondering: System.AccessViolationException: Poging tot het lezen of schrijven van beveiligd geheugen. Dit duidt er vaak op dat ander geheugen is beschadigd.

It pops up some more info, but closes immediately after, so I cannot grab it...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

This is so unnecessarily difficult... I should have bought a broken mice or keyboard and we would be done already.

But I think this is the last one:
TTController_0.7.0.0-razer-connect.1.dbf94f07f2f39a77912cebac8d94f4d896fa61a9.zip

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I will test it later today... Is there a way to PM? If it doesn't work still, we may be able to work something out, depending on where you live, to fix that...

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Whelp... I guess no free Razer hardware for you in the near future...

IT WORKS!!!

There is just one tiny thing, and that is red luminance... Just for comparison:

RGB from TT RGB Plus:
IMG_0955

Green from TTController (fine):
IMG_0956
Blue from TTController (fine):
IMG_0957
Red from TTController (very dim):
IMG_0958

Did the same using RzTest to get the Razer output logged (so we could see whether it is Razer or something in TTController):
Blue:
LEN: 5
[0,0,255]
[0,0,255]
[0,0,255]
[0,0,255]
[0,0,255]
Green:
LEN: 5
[0,255,0]
[0,255,0]
[0,255,0]
[0,255,0]
[0,255,0]
Red:
LEN: 5
[255,0,0]
[255,0,0]
[255,0,0]
[255,0,0]
[255,0,0]

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

IMG_0958
Brightness adjusted to come closer to the other 3...

PS: As a result, the fire effect looks greenish...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Ok found the bug. The red color was accidentally clamped to 0xf instead of to 0xff.

I'll add some things small things and will release it officially on github.
Thanks for help with this!

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Not at all! It is the least I could do to have a feature that I wanted implemented, and especially this fast! I wish all FOSS projects were this agile and responsive!

All kudo's go to you!

Can you give a quick explanation of the ledcounthandling methods (I know what LERP does, but what should I expect from do-nothing, trim and copy? (Using Copy in the Razer effect causes and exception, BTW, which I will post below! DoNothing and Trim seem to work, and at least do not cause an exception.)

(And on that note, is there any way I can contribute a little bit to keep this project going?)

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024
13:58:58.7905: Initializing...
13:58:58.8095: Loading plugin assembly: TTController.Plugin.BlinkEffect [0.7.0.0]
13:58:58.8379: Loading plugin assembly: TTController.Plugin.ByLedColorEffect [0.7.0.0]
13:58:58.8409: Loading plugin assembly: TTController.Plugin.FlowEffect [0.7.0.0]
13:58:58.8409: Loading plugin assembly: TTController.Plugin.FullColorEffect [0.7.0.0]
13:58:58.8409: Loading plugin assembly: TTController.Plugin.PulseEffect [0.7.0.0]
13:58:58.8409: Loading plugin assembly: TTController.Plugin.RawEffect [0.7.0.0]
13:58:58.8409: Loading plugin assembly: TTController.Plugin.RazerConnectEffect [0.7.0.0]
13:58:58.8569: Loading plugin assembly: TTController.Plugin.RippleEffect [0.7.0.0]
13:58:58.8569: Loading plugin assembly: TTController.Plugin.SensorEffect [0.7.0.0]
13:58:58.8569: Loading plugin assembly: TTController.Plugin.SnakeEffect [0.7.0.0]
13:58:58.8814: Loading plugin assembly: TTController.Plugin.SoundEffect [0.7.0.0]
13:58:58.8814: Loading plugin assembly: TTController.Plugin.SpectrumEffect [0.7.0.0]
13:58:58.8814: Loading plugin assembly: TTController.Plugin.WaveEffect [0.7.0.0]
13:58:58.9058: Loading plugin assembly: TTController.Plugin.CopySpeedController [0.7.0.0]
13:58:58.9058: Loading plugin assembly: TTController.Plugin.PwmSpeedController [0.7.0.0]
13:58:58.9058: Loading plugin assembly: TTController.Plugin.StaticSpeedController [0.7.0.0]
13:58:58.9058: Loading plugin assembly: TTController.Plugin.AlwaysTrigger [0.7.0.0]
13:58:58.9223: Loading plugin assembly: TTController.Plugin.LogicTrigger [0.7.0.0]
13:58:58.9223: Loading plugin assembly: TTController.Plugin.OneTimeTrigger [0.7.0.0]
13:58:58.9223: Loading plugin assembly: TTController.Plugin.ProcessTrigger [0.7.0.0]
13:58:58.9223: Loading plugin assembly: TTController.Plugin.PulseTrigger [0.7.0.0]
13:58:58.9223: Loading plugin assembly: TTController.Plugin.SensorTrigger [0.7.0.0]
13:58:58.9378: Loading plugin assembly: TTController.Plugin.DpsgController [0.7.0.0]
13:58:58.9378: Loading plugin assembly: TTController.Plugin.RiingController [0.7.0.0]
13:58:58.9378: Loading plugin assembly: TTController.Plugin.RiingPlusController [0.7.0.0]
13:58:58.9378: Loading plugin assembly: TTController.Plugin.RiingTrioController [0.7.0.0]
13:58:58.9582: Creating Config Manager...
13:58:59.0391: Loading config...
13:58:59.2543: Creating DataCache...
13:58:59.2543: Creating Sensor Manager...
13:58:59.2647: Initializing Open Hardware Monitor...
13:59:00.5949: Detected 38 sensors
13:59:00.5949: Creating Effect Manager...
13:59:00.5949: Creating Speed Controller Manager...
13:59:00.5949: Creating Device Manager...
13:59:00.6428: Searching for "Dpsg" controllers
13:59:00.9124: Searching for "Riing" controllers
13:59:00.9469: Searching for "Riing Plus" controllers
13:59:00.9778: Initialized "Riing Plus" controller [0x264A, 0x1FA5]
13:59:00.9778: Searching for "Riing Trio" controllers
13:59:01.0063: Adding effect: RazerConnectEffect [10af9207-7e67-4581-9d13-516cad5d53c1]
13:59:01.0173: Creating Timer Manager...
13:59:01.0173: Starting 4 timers...
13:59:01.0173: Initializing done!
13:59:01.0173: ================================================================

Onverwerkte uitzondering: System.InvalidOperationException: De verzameling is gewijzigd. Mogelijk wordt de inventarisatiebewerking niet uitgevoerd.
   bij System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   bij System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   bij System.Collections.Generic.List`1.Enumerator.MoveNext()
   bij System.Linq.Enumerable.<TakeIterator>d__25`1.MoveNext()
   bij System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
   bij TTController.Service.TTService.<DeviceRgbTimerCallback>g__ApplyConfig|20_0(IDictionary`2 colorMap)
   bij TTController.Service.TTService.DeviceRgbTimerCallback()
   bij TTController.Service.Manager.TimerManager.<>c__DisplayClass3_0.<RegisterTimer>b__0(Object sender, TimerElapsedEventArgs args)
   bij TTController.Service.Manager.TimerManager.Timer.ExecuteTimer()
   bij System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   bij System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   bij System.Threading.ThreadHelper.ThreadStart()

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Whoops, yea you found another bug, but its just the Copy thing not razer plugin. Will be fixed in next release.

I Pushed 0.7.1.0 with the razer plugin and two more LedCountHandling types.

Can you give a quick explanation of the ledcounthandling methods

  • DoNothing: do nothing
  • Lerp: stretches or shrinks the colors list to match the configured LedCount using lerp/gradient
  • Nearest: stretches or shrinks the colors list to match the configured LedCount by copying/removing the nearest color
  • Wrap: if colors list is bigger than LedCount, wrap the remainder to the begging. Otherwise do nothing.
  • Trim: if colors list is bigger than LedCount, trim the excess. Otherwise do nothing.
  • Copy: if colors list is smaller than LedCount, copy the colors untill they are equal. Otherwise do nothing.

And on that note, is there any way I can contribute a little bit to keep this project going?

If you mean contribute code, you can clone the repo and create pull requests, if you mean like a donation then not really right now. I never thought people would care enough to donate, so I'll have to research how this is done. But thank you πŸ˜„

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Ok, pushed 0.7.1.1 with a fix for Copy LedCountHandling, also updated the readme to explain the different options. Please test it, if it works i'll close this issue.

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

BTW for now you can only have one profile with RazerConnectEffect, I'll see if its possible to create more than one.

Also, please test how it behaves when you restart the pc or go to sleep. If there are any issues.

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

I have a thought on some code that might be fun to add as a plugin, but want to test that first...
(Nice thing about plugins is that they don't cost memory/cpu until they're used! So you can keep the bloat contained...)

But I meant a small financial gift... (Do you have Paypal? You could set up a Paypal.Me address...)

I'm (supposedly) in a meeting (waiting for the others to join), but will test after that!

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Copy and Wrap work... Will test Sleep and restart later!

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Sleep worked fine, but after reboot the connected "device" is missing...

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Can you check HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Razer\ChromaBroadcast in regedit? There should be a Thermaltake.exe subkey, check if the path is correct.

Dont know why it would disappear. Maybe there is a bug with razer synapse?

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

Nah, the .EXE is gone... Must be my AV being overzealous, despite me adding the exe and the folder to the exception list.
Going to extract it from the ZIP again and try again!

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

(You do realize I saw these come by as well, right? πŸ˜› )

from ttcontroller.

MoshiMoshi0 avatar MoshiMoshi0 commented on July 26, 2024

Yup πŸ˜„

from ttcontroller.

FearNaBoinne avatar FearNaBoinne commented on July 26, 2024

But srsly, a PM feature would be nice for Github... to prevent having to put your email or discord or whatever nickname out in the open...

from ttcontroller.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.