Open szabolcs-dekany92 opened 5 years ago
Update: After removing the app from SSE3 and re-registering it, It just refuses to work. The message gets sent, the response is there, but nothing happens.
I've been battling similar problems and think I can offer some help. Firstly, your "non response" problem, I believe you need to bump the value
key on the game_event
each time to prevent the device caching. In your example, you are missing the value
key as a sibling to the frame
key. I think this is supposed to be a unique integer each time.
POST http://127.0.0.1:49391/game_event HTTP/1.1
Content-Type: application/json
{
"game": "TS3TOSSE3",
"event": "POKE_MESSAGE",
"data": {
"value": 1, // make this increase each time you want to update
"frame": {
"custom-text": "test test 12345564556789"
}
}
}
I've also come across the problem of needing scrolling text. I first tried to force a new line (why does it only show 1 line in the centre?! Argh!!) but was unable to even inserting carriage returns in the JSON string.
I was able to get a scrolling affect by hitting the endpoint a lot bumping the aforementioned value
integer each time, and manually manipulating the text by cutting off the first character each time.
Another way is to abuse the suffix
key when you register the event, and then use the repeat
feature. This is probably closer to a final solution, since you first bind the event (I think this sends the frames to the device beforehand) then we "play" them by sending the event.
POST http://127.0.0.1:49391/bind_game_event HTTP/1.1
Content-Type: application/json
{
"game": "TS3TOSSE3",
"event": "POKE_MESSAGE",
"handlers": [
{
"device-type": "screened",
"mode": "screen",
"zone": "one",
"datas": [
{
"has-text": true,
"suffix": "I am a long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": " am a long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": "am a long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": "m a long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": " a long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": "a long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": " long piece of text",
"length-millis": 200
},
{
"has-text": true,
"suffix": "long piece of text",
"length-millis": 200,
"repeats": true
}
]
}
]
}
It's hacky, but you can obviously build an abstraction on top of this. Still though, no way to wrap text as far as a I can see. For that reason, I'm probably going to generate and send my own bitmaps...
I found some more tricks :). After looking into the DB that backs the game engine, I can see there are some undocumented features we can use. You can split text on multiple lines like so:
POST http://127.0.0.1:50035/bind_game_event HTTP/1.1
Content-Type: application/json
{
"game": "TEST",
"event": "DISPLAY",
"icon_id": 16,
"handlers": [
{"device-type": "screened",
"mode": "screen",
"zone": "one",
"datas": [
{
"length-millis": 5000,
"lines": [
{
"has-text": true,
"context-frame-key": "line1",
"bold": true
},
{
"has-text": true,
"context-frame-key": "line2"
},
{
"has-text": true,
"context-frame-key": "line3"
}
]
}
]
}
]
}
Then send the event like so:
POST http://127.0.0.1:50035/game_event HTTP/1.1
Content-Type: application/json
{
"game": "TEST",
"event": "DISPLAY",
"data": {
"value": 1,
"frame": {
"line1": "test1",
"line2": "test2",
"line3": "test3"
}
}
}
Hey @adamscybot ! Thanks for the awesome responses. I'll be sure to tinker around with these during the weekend! Cheers
I'm trying to print some text to the Arctis Wireless box oled screen. I've sucessfully done it by sending context data, however the text gets cut off mid sentence. Is there any way to scroll longer texts on the screen? Do we have any means of formatting text that appears on the screen?
The handler I'm sending the request to
The request im sending to the endpoint
The other issue I just started having is regards to how often can you send events and display text on the screen. It seems that I cannot send two request about two-three seconds apart, since the endpoint seems to not forward the request to the box. I see the JSON sent to the endpont just fine, and the response is also valid (spitting back the contents of my request), however nothing happens. Or rather, this happens:
The screen goes bananas and I have to unplug the device and reset it. Any idea why is that happening? Is this an issue with my wireless box or bad firmware? Is there any way to check logs on what the endpoint is trying to do when receiving the request?