У меня есть аппаратный GPS, который выводит некоторые данные:
sudo cat /dev/ttyGPS_Device | grep -a GPRMC
Он печатается каждые полсекунды или около того и выглядит так:
$ GPRM C, 171450.000, A, 4239.245592, N, 07349.887355, W, 0.000.116.6, 150420 ,,, A * 74
$ GPRM C, 171503.000, A, 4239.245592, N, 07349.887355, W, 0,000,116.6,150420, ,, A * 73
$ GPRM C, 171504.000, A, 4239.245592, N, 07349.887355, W, 0.0001116.6,150420 ,,, A * 74
Я могу отфильтровать просто широту и долготу, выполнив:
sudo cat /dev/ttyACM2 | stdbuf -oL grep -a GPRMC | stdbuf -oL cut -d',' -f 4-7 | tr ',' '\t'
И этот вывод выглядит намного лучше:
4239.245592 N 07349.887355 W
4239.245592 N 07349.887355 W
4239.245592 N 07349.887355 W
Я хотел бы иметь возможность сделать некоторые математические и форматирование данных. В частности, ведущие нули должны становиться '-', и оба значения должны быть умножены на 100. Требуемый выход:
42,39245592 N -73,49887355 Вт
42,39245592 N -73,49887355 Вт
42,39245592 N -73,49887355 W
Я бы согласился с решением, отличным от bash
, однако я предпочитаю хороший лайнер. Аппаратное обеспечение, которое я использую для получения данных GPS, - это мобильный широкополосный модуль Ericsson H5321 gw