Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Posts posted by Mrshilov

  1. In example anti-aliasing is present:

    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

    As for the rest, it is possible to find a reasonable compromise.
    - Clock without "second" needle will be useful too : 821a915e1a33t.jpg - meaning that analog clock is graphical - no need to think about digits. So "minute" & "hour" needles may be rotated one time in 15...60 sec.
    - To avoid problems with dial copyright, we can create 2-3 own basic dials (with AIDA logo). User can make own one.
    - Sizes of dials may be only 3 - as in gauge.
  2. ... AIDA64 LCD/SensorPanel rendering engine wouldn't be capable of rendering a really nice analog clock, with a properly rendered needle...

    It's not needed really very nice. Simplified version will be enough. I make needles as white boxes (3 pixels hour, 2 pix - minute & 1 pix - second) with 1 pixel black contour (to be viewed well on different dials). In C# it looks so:

                Graphics g = Graphics.FromImage(bmp);
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                //Here we get current time
                DateTime _time = new DateTime();
                _time = DateTime.Now;
                Pen hourPen = new Pen(Color.Azure, 4);
                Pen minPen = new Pen(Color.Azure, 2);
                Pen hourPen_ = new Pen(Color.Black, 6);
                Pen minPen_ = new Pen(Color.Black, 4);
                Pen secPen = new Pen(Color.Red, 1);
                //Needle length
                int halfClockWidth = 100;
                int hourLength = Convert.ToInt32(halfClockWidth * 3 / 6);
                int minLength = Convert.ToInt32(halfClockWidth * 4 / 6);
                int secLength = Convert.ToInt32(halfClockWidth * 5 / 6);
                int secLength2 = Convert.ToInt32(halfClockWidth * 1 / 6);
                //Rotate angles of needles 
                float secAngle = (Convert.ToSingle(_time.Second + 15) / 60) * 360;
                float secAngle2 = secAngle - 180;
                float minAngle = (Convert.ToSingle(_time.Minute + 15) / 60) * 360 - 2;
                float hrAngle = (Convert.ToSingle(_time.Hour - 12 + 3) / 12) * 360 - 8;
                if (!_independentHands)
                    minAngle += (secAngle / 60);
                if (!_independentHands)
                    hrAngle += (minAngle / 12);
                //Center point
                Pen pointPen = new Pen(Color.DarkRed, 8);
                Rectangle pointRect = new Rectangle(centrePoint.X - 2, centrePoint.Y - 2, 4, 4);
                //Drawing the dial 
                Bitmap b = new Bitmap("Dial\\" + DialName);
                Image Dial = (Image)b;
                g.DrawImage(Dial, 799, 25, 200, 200);
                //Drawing the needles
                g.DrawLine(hourPen_, centrePoint, GetPoint2(centrePoint, hrAngle, hourLength + 1));
                g.DrawLine(hourPen, centrePoint, GetPoint2(centrePoint, hrAngle, hourLength));
                g.DrawLine(minPen_, centrePoint, GetPoint2(centrePoint, minAngle, minLength + 1));
                g.DrawLine(minPen, centrePoint, GetPoint2(centrePoint, minAngle, minLength));
                g.DrawLine(secPen, centrePoint, GetPoint2(centrePoint, secAngle, secLength));
                g.DrawLine(secPen, centrePoint, GetPoint2(centrePoint, secAngle2, secLength2));

    It looks so: 968f1ce94204t.jpg

    The user may choose dial http://rghost.ru/6TMY7qdS9  or make himself.  

  3. Still the same. SPF-107H periodically (1...6 hours) goes to storage with this message:  


    LOW Disk space!!!!!!!!!!!!!!!!!! 

    Before update remove some files from disk.

    To make it back to work needed to restart frame. After that AIDA recognize it, but screen looks garbage. Needs to restart program or goes to Preferences\LCD\LCD Items -  here (after reload sensors) screen goes good.  


    This applies to the latest version. On early versions this not happens. 
  4. Image is rotated left by 90 degrees in portrait mode, so what you say I suppose is normal.

    For SPF-107H is better to rotate 90° right. The design of emphasis-leg does not give the ability to rotate the frame at 180°. And it's better, when buttons is on top - user can operate them:


    Do you have the keep-alive option enabled? Did it work before, and now it stopped working with the latest AIDA64 beta?

    On v5.20.3445 it works good, but now not. No matter of keep-alive option enabled or disabled.
  5. My mistake - correct name of command is "Function Vendor_Device".

    This command sending by "Frame manager" to 0 point. I try to do it from custom application and get good result - USB connection is stable. Also I try to increase frame update time to 500ms. Now "Function Vendor_Device" (two zero bytes to 0 point) and frames (packets to point â„–2) sending from one timer - 500ms. USB connection is stable and pictures shows correct. 

  6. Maybe it will be helpful:

    Controller of frame is MP630DTCG-B - http://www.modiotek.com.tw/index.php?option=com_content&view=article&id=62&Itemid=82〈=en
    I try to use it in Windows similar to this projects:
    But unsuccessfully.


    Maybe this models (SPF-87H & SPF-107H) has "exit timer" and it close connection if frame frequency is very low.

    I try to decrease LCD update time to 50ms (20Hz), but min in 5.20 version is 500ms. Can you expand this range to check it? 


  7. Without installed "Frame manager" frame don't work at all. AIDA don't recognize it.

    I can't install LibUsb driver - without "Frame manager" frame may be manually turned in "mini-monitor" mode for 2-3 seconds, after that it unconnect from USB.

    For work I close "Frame manager" and start AIDA. It successfully turn frame from "storage" to "mini-monitor" and show picture, but only 2-3 sec. After that USB connection close. 

  • Create New...