Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Preview of new Web based RIVA client
I was just reloading it over and over and the distribution seemed to be quite good with the current algorithm, which is correct just looking at it.

random returns a value from 0 to 1.0. Multiply that times the spread and you get a random value within the spread range. Floor lops off any fractional bit, and + 1 makes a value from 1 to the spread. Then multiply by 1000 to get milliseconds. That is added to the minimum 4000 time, for a minimum of 5 seconds up to 5+spread.

I'll have the web server pause a little longer on startup, to allow more time for the underlying system to get up and going. There's ultimately no way to prevent two clients from hitting it at the same time, so we have to deal with that.
Dean Roddey
Explorans limites defectum
Reply
(10-05-2017, 02:15 PM)Dean Roddey Wrote: I was just reloading it over and over and the distribution seemed to be quite good with the current algorithm, which is correct just looking at it.

random returns a value from 0 to 1.0. Multiply that times the spread and you get a random value within the spread range. Floor lops off any fractional bit, and + 1 makes a value from 1 to the spread. Then multiply by 1000 to get milliseconds. That is added to the minimum 4000 time, for a minimum of 5 seconds up to 5+spread.

I'll have the web server pause a little longer on startup, to allow more time for the underlying system to get up and going. There's ultimately no way to prevent two clients from hitting it at the same time, so we have to deal with that.
Is there a webserver paramater I can test/debug with to delay? or is it hard coded?
Thanks
_______________
Denon 3808ci, 2112ci , SONOS, Russound CAA66,Z-Wave(Lights,Locks), Hue, SmartThings,
iPads,Tivo,Hikvision,Elk-M1,iTunes,TED5000,Somfy RTS blinds, Amazon Echo, Google Home, Polk XRT12,
Honeywell Wi-Fi 9000 & Caleo Wi-Fi Thermostats, Rainmachine
Reply
It's hard coded. I'll up it for the next drop.
Dean Roddey
Explorans limites defectum
Reply
BTW, keep in mind that any of those that were not visible, i.e. were in background tabs, weren't really reconnecting. They can connect, but they won't do any drawing, and hence not put any burden on the server, until you bring them forward. At least as long as the visibility API is implement on that browser. So loading up a bunch of tabs may not really be doing as much load testing as you think. In most cases they should just get reconnected, but then just ping until they come forward. When they do, they tell the server and he does a full redraw to get them up to date.

So I'm guessing 24 or 48 or whatever actual clients would probably react a good bit differently. Not that we haven't made progress from last week, of course. I think we are basically there.
Dean Roddey
Explorans limites defectum
Reply
(10-05-2017, 04:00 PM)Dean Roddey Wrote: BTW, keep in mind that any of those that were not visible, i.e. were in background tabs, weren't really reconnecting. They can connect, but they won't do any drawing, and hence not put any burden on the server, until you bring them forward. At least as long as the visibility API is implement on that browser. So loading up a bunch of tabs may not really be doing as much load testing as you think. In most cases they should just get reconnected, but then just ping until they come forward. When they do, they tell the server and he does a full redraw to get them up to date.

So I'm guessing 24 or 48 or whatever actual clients would probably react a good bit differently. Not that we haven't made progress from last week, of course. I think we are basically there.

Thanks Dean,
All 24 WebRiva clients in foreground and surprisingly fast. I found an extension for Chrome "Tile Tabs" that allows you to open X number of windows(not tabs) and save the layout. The most I tried was 24. Didn't see a valid use-case for more than that.

Kevin
_______________
Denon 3808ci, 2112ci , SONOS, Russound CAA66,Z-Wave(Lights,Locks), Hue, SmartThings,
iPads,Tivo,Hikvision,Elk-M1,iTunes,TED5000,Somfy RTS blinds, Amazon Echo, Google Home, Polk XRT12,
Honeywell Wi-Fi 9000 & Caleo Wi-Fi Thermostats, Rainmachine
Reply
So I think I know why alpha transparent images are washed out to some degree in WebRIVA. The HTML5 canvas pre-multiplies the color channels of each pixel by the pixel's alpha value, so that it doesn't have to be done every time the image is drawn. However, Windows requires that images be pre-multiplied as well. So all alpha-based images inside CQC are already pre-multiplied. That gets sent to the canvas, which does it again, which washes out the colors.

That's going to be nasty to deal with because that's done at a very low level, when the image is converted to a bitmap for drawing purposes. All WebRIVA does is intercept the final drawing command and vectors it to the client. It directly sends that bitmap it received (if it hasn't sent it already), and very much does not go back and try to get to the original image content from the image cache because that raises LOTS of complications and performance issues that the old RIVA clients suffered from and WebRIVA doesn't.

I can't have some sort of global flag that could be set to indicate that no bitmaps should be pre-multiplied, because there are places where bitmap temporary bitmaps are layered into a separate memory based bitmap to build up the actual image to draw. Those temporary ones have to be pre-multiplied to get the right results in the final image, and that also means that the final image will itself be pre-multiplied.

So that's a bit of a conundrum as to how to deal with that. I don't think that there's a solution that doesn't require either a lot of extra overhead on WebRIVA or extremely nit-picky and intrusive changes throughout CQC, which I definitely ain't gonna do. I can't undo the pre-multiplication since that is a lossy operation, or I would just take the hit of making a copy and un-multiplying it before I send the data. And going back to the cache to get the original image data is a huge issue because it's not guaranteed to be there by the time the image is drawn, and I have to send the data right then, I can't stop and go query the image data again from the server.

I could of course somehow store the original data as part of the bitmap object itself when in RIVA mode. But that would be a lot of extra overhead. That might be the only available option though.
Dean Roddey
Explorans limites defectum
Reply
Well, after a lot of thinking and poking about, there's no way I'm going to deal with the double pre-multiplication thing for 5.2. That's a very difficult thing to deal with, and it just works completely against me in every way. So I'm not going to waste any more time on it for this release and just get it out there. I'll worry about some sort of sane solution for the next version.
Dean Roddey
Explorans limites defectum
Reply
Give 5.1.912 a try. It has an more extended delay on the web server opening for business, and other tweaks that I spent today on.
Dean Roddey
Explorans limites defectum
Reply
So I've had the web server installed on my master server for eons (I'm on 912.) Just tried to access the new WebRIVA interface via the URL http://[websrv]/WebRIVA/index.html?user=[user]&pw=[password] where I replaced [user] and [password] with the required information. This is an account that has a default set that works perfectly well with taRIVA today. The path to the default template is: /User/1080x1920 - smart phone/Mobile-Main

I tried both the account password and the web password in the URL.

I'm getting the error below: (what am I missing?)

The page cannot be displayed
The page you requested could not be accessed for some reason. It may be a temporary error on the other end, or you may have asked for an invalid page. The error message below may help you diagnose the problem.

Error Information:

Error Code: 404
Error Message: The file requested was not found on this server
Reply
(10-10-2017, 02:48 PM)batwater Wrote: So I've had the web server installed on my master server for eons (I'm on 912.)  Just tried to access the new WebRIVA interface via the URL http://[websrv]/WebRIVA/index.html?user=[user]&pw=[password] where I replaced [user] and [password] with the required information.  This is an account that has a default set that works perfectly well with taRIVA today.  The path to the default template is: /User/1080x1920 - smart phone/Mobile-Main  

I tried both the account password and the web password in the URL.

I'm getting the error below:  (what am I missing?)

The page cannot be displayed
The page you requested could not be accessed for some reason. It may be a temporary error on the other end, or you may have asked for an invalid page. The error message below may help you diagnose the problem.

Error Information:

Error Code: 404
Error Message: The file requested was not found on this server

Batwater: Is your path right? this is my URL with webserver on port 8181.

"http://192.168.2.118:8181/cqsl/webriva/index.html?user=xxx&pw=xxx"
_______________
Denon 3808ci, 2112ci , SONOS, Russound CAA66,Z-Wave(Lights,Locks), Hue, SmartThings,
iPads,Tivo,Hikvision,Elk-M1,iTunes,TED5000,Somfy RTS blinds, Amazon Echo, Google Home, Polk XRT12,
Honeywell Wi-Fi 9000 & Caleo Wi-Fi Thermostats, Rainmachine
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  New Z-Wave driver preview Dean Roddey 156 12,919 Yesterday, 05:51 AM
Last Post: kfly
  ELK M1 Client Interface question lleo 1 162 06-12-2019, 08:15 AM
Last Post: Dean Roddey
  why master server needs DHCP client running? lleo 4 663 01-04-2019, 01:13 PM
Last Post: Dean Roddey
  Elk Client Interface Gremlins IVB 9 947 12-23-2018, 08:58 PM
Last Post: IVB
  Copy and Paste into Global Cache Client Interface kblagron 3 930 11-01-2018, 02:23 PM
Last Post: kblagron
  "Client Side Driver Directory Could Not be Cleaned Out" TurboSam 15 2,417 09-27-2018, 01:43 PM
Last Post: TurboSam
  Admin Client over VPN batwater 1 892 08-18-2018, 04:31 PM
Last Post: Dean Roddey
  Old RIVA zra 4 1,106 07-10-2018, 12:23 PM
Last Post: zra
  The RIVA Comm Buf Mgr pool is full and cannot be expanded any further zra 52 16,939 05-14-2017, 08:54 PM
Last Post: Dean Roddey
  HTTP-based Trigger Driver Docs znelbok 5 3,077 03-11-2017, 09:34 PM
Last Post: Dean Roddey

Forum Jump:


Users browsing this thread: 2 Guest(s)