Skip to content

Commit

Permalink
2019 11 01 tests and cleanup (#38)
Browse files Browse the repository at this point in the history
* Adding test and cleanup on enum.

* ax25 tests

* assert var fix.

* Broke conversions out into their own class.
_nmea_getlatlon function now fully tested.

* Adding more tests.

* Adding more tests.

* Package upgrades
Fixing nodejs
  • Loading branch information
KD0NKS committed Sep 11, 2020
1 parent 5a03356 commit 174746b
Show file tree
Hide file tree
Showing 29 changed files with 645 additions and 240 deletions.
6 changes: 6 additions & 0 deletions .mocharc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
bail: true
spec: 'test/**/*.test.ts'
require:
- ts-node/register
- source-map-support/register
full-trace: true
7 changes: 3 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ node_js:
- "13"

cache: npm
#before_install:
#- npm install -g greenkeeper-lockfile

before_script:
- npm run setup
- npm run build
#- greenkeeper-lockfile-update

script:
- npm run test

after_success:
- npm run coverage
#after_script: greenkeeper-lockfile-upload
2 changes: 2 additions & 0 deletions index.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import aprsPacket from './src/aprsPacket';
import aprsParser from './src/parser';
import ConversionConstantEnum from './src/ConversionConstantEnum';
import digipeater from './src/digipeater';
import telemetry from './src/telemetry';
import wx from './src/wx';

export {
aprsPacket
, aprsParser
, ConversionConstantEnum
, digipeater
, telemetry
, wx
Expand Down
27 changes: 17 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"version": "1.0.0",
"homepage": "https://github.com/KD0NKS/js-aprs-fap",
"description": "NodeJs library for parsing APRS packets.",
"type": "module",
"repository": {
"type": "git",
"url": "git+https://github.com/KD0NKS/js-aprs-fap.git"
Expand All @@ -30,6 +31,12 @@
"reporter": [
"text",
"lcov"
],
"include": [
"src/**/*.ts"
],
"exclude": [
"src/ConversionConstantEnum.ts"
]
},
"scripts": {
Expand All @@ -40,16 +47,16 @@
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
"devDependencies": {
"@istanbuljs/nyc-config-typescript": "^1.0.0",
"@types/chai": "^4.2.4",
"@types/mocha": "^7.0.0",
"@types/node": "^13.1.0",
"@istanbuljs/nyc-config-typescript": "^1.0.1",
"@types/chai": "^4.2.12",
"@types/mocha": "^8.0.3",
"@types/node": "^14.10.0",
"chai": "^4.2.0",
"coveralls": "^3.0.7",
"mocha": "^7.0.1",
"nyc": "^15.0.0",
"source-map-support": "^0.5.16",
"ts-node": "^8.6.2",
"typescript": "^3.6.4"
"coveralls": "^3.1.0",
"mocha": "^8.1.3",
"nyc": "^15.1.0",
"source-map-support": "^0.5.19",
"ts-node": "^9.0.0",
"typescript": "^4.0.2"
}
}
10 changes: 10 additions & 0 deletions src/ConversionConstantEnum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const enum ConversionConstantEnum {
KNOT_TO_KMH = 1.852 // nautical miles per hour to kilometers per hour
, MPH_TO_KMH = 1.609344 // miles per hour to kilometers per hour
, KMH_TO_MS = 10 / 36 // kilometers per hour to meters per second
, MPH_TO_MS = MPH_TO_KMH * KMH_TO_MS // miles per hour to meters per second
, HINCH_TO_MM = 0.254 // hundredths of an inch to millimeters
, FEET_TO_METERS = 0.3048
}

export default ConversionConstantEnum;
43 changes: 43 additions & 0 deletions src/ConversionUtil.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
export default class ConversionUtil {
/**
* Utility method to replace perl's Date-Calc check_date method.
* Given the year, month, and day, this checks to see if it it's a valid date.
*
* @param {Number} year year for the date
* @param {Number} month month for the date
* @param {Number} day day for the date
* @returns {boolean} Whether or not the given date is valid
*/
static CheckDate = function (year: number, month: number, day: number): boolean {
var d = new Date(year, month, day);

return d.getFullYear() === year && d.getMonth() === month && d.getDate() === day;
}

/**
* Converts Degress to Radians
* @param {number} deg
* @returns {number} Degrees converted to Radians
*/
static DegToRad(deg: number): number {
return deg * (Math.PI / 180);
}

/**
* Converts Radians to Degress
* @param {number} rad
* @returns {number} Radians converted to Degrees
*/
static RadToDeg(rad: number): number {
return rad * (180 / Math.PI);
}

/**
* Converts Degrees Fahrenheit to Celsius
* @param {number} degF Degrees in Fahrenheit
* @returns {number} Degrees in Celsius
*/
static FahrenheitToCelsius(degF: number): number {
return (degF - 32) / 1.8;
}
}
24 changes: 24 additions & 0 deletions src/aprsUtil.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
/**
* message bit types for mic-e
* from left to right, bits a, b and c
* standard one bit is 1, custom one bit is 2
*
const MICE_MESSAGE_TYPES = {
'111': 'off duty'
, '222': 'custom 0'
, '110': 'en route'
, '220': 'custom 1'
, '101': 'in service'
, '202': 'custom 2'
, '100': 'returning'
, '200': 'custom 3'
, '011': 'committed'
, '022': 'custom 4'
, '010': 'special'
, '020': 'custom 5'
, '001': 'priority'
, '002': 'custom 6'
, '000': 'emergency'
};
*/

/**
* mice_mbits_to_message($packetdata{'mbits'})
* Convert mic-e message bits (three numbers 0-2) to a textual message.
Expand Down
13 changes: 12 additions & 1 deletion src/packetFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -660,8 +660,19 @@
my $retstring;
if ($options->{'timestamp'}) {
my($sec,$min,$hour) = gmtime($options->{'timestamp'});
my $now = time();
$retstring = sprintf('/%02d%02d%02dh', $hour, $min, $sec);
return undef if ($options->{'timestamp'} > $now+10);
my $age = $now - $options->{'timestamp'};
if ($age < 86400-1800) {
# less than 23h30min old, use HMS timestamp
my($sec,$min,$hour) = gmtime($options->{'timestamp'});
$retstring = sprintf('/%02d%02d%02dh', $hour, $min, $sec);
} elsif ($age < 28*86400) {
# TODO: could use DHM timestamp here
}
} else {
$retstring = '!';
}
Expand Down
Loading

0 comments on commit 174746b

Please sign in to comment.