Определите, когда закончится поворот поверхности циферблата - PullRequest
0 голосов
/ 09 декабря 2018

Мне нужен какой-то действительно точный способ определить, когда закончится поворот поверхностного набора:

private void OnRotationChanged(RadialController sender, RadialControllerRotationChangedEventArgs args)
{
    double angle = args.RotationDeltaInDegrees;
}

Я действительно теряюсь в том, как определить сверхточный способ, когда заканчивается вращение.

ЭтоМоя первая попытка, но работа супер ошибочная.

bool start = true;
private void OnRotationChanged(RadialController sender, RadialControllerRotationChangedEventArgs args)
{
    if (start == true)
    {
    start = false;
   //send mouse left down event relative to mouse position
    VirtualMouse.LeftDown(0, 0);
    }

    if (timer != null)
    {
        timer.Tick -= timer_Tick;
    }
    timer = new DispatcherTimer { Interval = TimeSpan.FromMillisecond(10) };
    timer.Tick += new EventHandler(timer_Tick);
    timer.Start();


   if (args.RotationDeltaInDegrees > 0)
   {
//move mouse 1 pixel + Y relative to mouse postion
    VirtualMouse.Move(0, 1);
   }

   else
   {
 //move mouse 1 pixel  - Y relative to mouse postion
    VirtualMouse.LeftDown(0, -1);
   }


}


void timer_Tick(object sender, EventArgs e)
{
start = true;
//release the left mouse down relative to mouse position
VirtualMouse.LeftUp(0, 0);
}

Когда я сказал точно, я имею в виду какой-то способ обнаружения в любом сценарии.Например, если вы поворачиваете медленно, а время таймера составляет около 1 мс, каждое новое событие из набора (вращается медленно) никогда не достигает времени отцепления.Если я увеличу таймер, то все обнаружение приведет к неточному процессу, добавляя нежелательную задержку.Я знаю, что это не тот путь, просто тестирование, но я не представляю, как можно добиться правильного обнаружения в сценариях, когда я вращаю циферблат медленно или быстрее для получения реального индикатора остановки вращения или вращения.

Определить, когда начало вращения - торт, а конец вращения -

Поверхностный циферблат может обеспечить точность до 0,1 градуса, действительно точное оптическое устройство.Таким образом, один полный поворот способен предоставить отчет о 3600 событиях / углах.

...... не знаю, думая и думая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...