syntax = "proto3"; option go_package="locpb"; option java_package = "com.bluvision.cloud.aggregator.model"; option java_outer_classname = "LocationPb"; enum GeneratorType { UNKNOWN =0; BLUZONE=1; MATLAB=2; TEST_SERVER=3; IOS=4; ANDROID=5; TEND=6; } message BeaconLocation { double altitude = 1; string beaconId = 2; repeated BeaconLocationStat blufiPeriodStats = 3; bool boundaryCorrected = 4; bool boundaryExclusionCorrected=5; string deviceName = 6; string direction = 7; double displayRadius = 8; string error = 9; string errorDescription = 10; BeaconLocation fingerprintEstimate = 11; repeated BeaconLocation fingerprintLocations = 12; int32 floorNumber = 13; string generatorType = 14; string geoJsonMap = 15; repeated IntersectionGroup intersectionGroup=16; double latitude =17; double longitude = 18; string mac = 19; double meterChangeEstimate = 20; bool motionStatic = 21; int64 projectId = 22; bool thresholdCorrected = 23; int64 timestamp = 24; string type = 25; double varianceX = 26; double varianceY = 27; double varianceZ = 28; int64 windowCalculationRange = 29; int64 locationId=30; int64 cellId = 31; int32 battery = 32; // force this in GeneratorType gt = 33; repeated string jobModeBlufis = 34; // sourceDelayMillis is the average of all packets delay as measured by // the timestamp it was put on stream to the time it entered bucket int64 averageSourceDelayMillis = 35; // the time taken from first packet to last packet to enter bucket int64 sunstoneDelayMillis = 36; // number of packets in window int64 windowCount = 37; // the last timestamp in period int64 maxTimestamp = 38; } message BeaconLocationMap { map results = 1; } message BeaconInfoReply { int64 projectId = 1; string beaconSid64 = 2; string hostName = 3; BucketStats bucket = 4; BeaconLocation lastKnown = 5; } message BucketStats { LocationChannelMap locationChannelMap = 1; // time this estimator was reset at in millis int64 lastEstimatorReset = 2; // last known error message string lastMessage = 3; string triggerBlufiId = 4; int64 triggerTimestamp = 5; } message BucketCalculation { repeated BeaconLocationStat blufis= 1; } message ChannelSampleMap { map channels = 1; } message LocationChannelMap { map locations = 1; } message IntersectionGroup { string id = 1; repeated BeaconLocation intersectionCoords =2; BeaconLocation intersectionPoint = 3; BeaconLocation newCoord=4; BeaconLocation startingCoord=5; } message BeaconLocationStat { string blufiId = 1; double meterToLocation = 2; string name = 3; double rssiAverage = 4; int32 rssiCount = 5; string sid64 = 6; // The time this blufi was added to this calculation. int64 blufiInsertMillis=7; // Flag indicating that the values present are from a historical reading bool rssiHistorical=8; // min beaconTimestamp in the period int64 minTimestamp = 9; // max beaconTimestamp in the period int64 maxTimestamp = 10; int64 enhanceDropped = 11; bool globalThresholdViolated = 12; bool minimumSampleCountViolated = 13; // on global bucket this will show old values. int64 remainingInBucket = 14; int64 newInBucket = 15; // the difference between our maxTs and the triggerTimestamp int64 behindTrigger = 16; double averageLatencyMillis = 17; double maxLatencyMillis = 18; }