Я нахожусь в процессе создания lapcounter для ипподрома слот-машины.
Всякий раз, когда автомобиль проходит датчик, он отправляет некоторые данные через микроконтроллер на компьютер, который записывает данные в файл. Теперь я хотел бы обнаружить, когда этот файл изменился, то есть автомобиль прошел датчик, и сохранить эти данные в базе данных (mysql), а затем представить их на экране в режиме реального времени. Проверка файла должна выполняться непрерывно и как можно быстрее.
Также было бы неплохо представить таймер, который отсчитывает сотни секунд. Но это другое дело, и оно не имеет ничего общего с этим вопросом …
Возможно, есть лучшие способы сделать это, но я уверен, что это возможно с некоторыми ajax, php и mysql на локальном сервере, который напрямую подключен к микроконтроллеру.
Поправьте меня, если я ошибаюсь, но Facebook, Stackoverflow и мгновенные сообщения / чаты используют похожее будущее, которое я предположил бы …
Логика для изменения файла может быть в конце php ‘check_the_file_change.php’
Ниже приведен код Smaple JS, который отправляет запрос каждую 1 секунду в файл php.
‘Check_the_file_change.php’
$(document).ready(function(){
function checkFileChange(){
setTimeout(function () {
$.ajax({
url :'check_the_file_change.php',
type : 'POST',
data :{
user_secret : 'XXXX'
},
success : function(respsone){
if(response == "true"){
//file changed
}else{
//file not chnaged
}
},
complete : function(){
checkFileChange(); //net file check after 1 sec from the completion of the previous request
}
});},1000);
}
}
});
В конце PHP
header("Access-Control-Allow-Origin: *"); // use this in case the ajax call is coming from other domain$filename = 'somefile.txt';
if (file_exists($filename)) {
if( time() - filemtime($filename) > 60){
echo "false";
}else{ //file is modified 1 minute ago
echo "true";
}
}
Других решений пока нет …