Получение результата от датчика (акселерометра) каждые 20 мс [дубликат]

Это поможет вам. :) Следуйте следующим шагам:

  1. Откройте конструктор запросов
  2. Копировать Вставьте следующий код так, как он есть, он создаст функцию, которая преобразует String в Int
    CREATE FUNCTION dbo.SplitInts
    (
       @List      VARCHAR(MAX),
       @Delimiter VARCHAR(255)
    )
    RETURNS TABLE
    AS
      RETURN ( SELECT Item = CONVERT(INT, Item) FROM
          ( SELECT Item = x.i.value('(./text())[1]', 'varchar(max)')
            FROM ( SELECT [XML] = CONVERT(XML, '<i>'
            + REPLACE(@List, @Delimiter, '</i><i>') + '</i>').query('.')
              ) AS a CROSS APPLY [XML].nodes('i') AS x(i) ) AS y
          WHERE Item IS NOT NULL
      );
    GO
    
  3. Создать следующую хранимую процедуру
     CREATE PROCEDURE dbo.sp_DeleteMultipleId
     @List VARCHAR(MAX)
     AS
     BEGIN
          SET NOCOUNT ON;
          DELETE FROM TableName WHERE Id IN( SELECT Id = Item FROM dbo.SplitInts(@List, ',')); 
     END
     GO
    
  4. Выполнить этот SP Используя exec sp_DeleteId '1,2,3,12', это строка идентификатора, которую вы хотите удалить,
  5. Вы преобразуйте свой массив в строку в C # и передайте его как параметр хранимой процедуры
    int[] intarray = { 1, 2, 3, 4, 5 };  
    string[] result = intarray.Select(x=>x.ToString()).ToArray();
    
    SqlCommand command = new SqlCommand();
    command.Connection = connection;
    command.CommandText = "sp_DeleteMultipleId";
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.Add("@Id",SqlDbType.VARCHAR).Value=result ;
    

Это приведет к удалению нескольких строк, Все лучшее

11
задан Egor 27 July 2012 в 10:51
поделиться

3 ответа

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

3
ответ дан Angelo 26 August 2018 в 15:30
поделиться

Взято из http://developer.android.com/guide/topics/sensors/sensors_overview.html

Задержка данных по умолчанию подходит для мониторинга типичных изменения ориентации экрана и использует задержку в 200 000 микросекунд. Вы можете указать другие задержки данных, такие как SENSOR_DELAY_GAME (задержка в 20 000 микросекунд), SENSOR_DELAY_UI (задержка в 60 000 микросекунд) или SENSOR_DELAY_FASTEST (0 микросекундная задержка). Начиная с Android 3.0 (уровень API 11) вы также можете указать задержку как абсолютное значение (в микросекундах).

Задержка, которую вы указываете, является только предполагаемой задержкой. Система Android и другие приложения могут изменить эту задержку. В качестве наилучшей практики вы должны указать самую большую задержку, которую вы можете использовать, поскольку система обычно использует меньшую задержку, чем та, которую вы указываете (то есть вы должны выбрать самую медленную частоту дискретизации, которая по-прежнему соответствует потребностям вашего приложения). Использование большей задержки накладывает меньшую нагрузку на процессор и, следовательно, потребляет меньше энергии.

27
ответ дан Makibo 26 August 2018 в 15:30
поделиться

Похоже, что эти константы определены как 37-39 мсек.

http://webraidmobile.wordpress.com/2010/10/21/how-long-is-sensor_delay_game/

В любом случае, если вы разрабатываете игру, это, вероятно, константа, которую вы должны использовать.

0
ответ дан shkschneider 26 August 2018 в 15:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: