Skip to Content
പ്രധാന ആശയങ്ങൾഡ്രൈവിംഗും സുരക്ഷയും

ഡ്രൈവിംഗും സുരക്ഷയും

ട്രെയ്‌സ്‌ലെറ്റിന് അസംസ്‌കൃത ലൊക്കേഷൻ + ആക്‌സിലറോമീറ്റർ സ്‌ട്രീം ** അർത്ഥപൂർണമാക്കി മാറ്റാനാകും ഒരു ഉപകരണം എങ്ങനെ നീങ്ങുന്നു എന്നതിനെക്കുറിച്ചുള്ള ഇവൻ്റുകൾ** - പൂർണ്ണമായും ഉപകരണത്തിൽ, ക്ലൗഡ് ഇല്ലാതെ വിളിക്കുന്നു. 3.3.0 ൽ ചേർത്തു, മൂന്ന് സ്വതന്ത്ര സവിശേഷതകൾ ഉണ്ട്:

സവിശേഷതഅത് നിങ്ങളോട് എന്താണ് പറയുന്നത്നിങ്ങൾ ഇത് പ്രാപ്തമാക്കുകനിങ്ങൾ കേൾക്കുക
ഡ്രൈവിംഗ് ഇവൻ്റുകൾ”ഡ്രൈവർ ശക്തമായി ബ്രേക്ക് ചെയ്തു / ശക്തമായി ത്വരിതപ്പെടുത്തി / ഒരു മൂർച്ചയുള്ള ടേൺ എടുത്തു / വേഗത്തിൽ ഓടുന്നു”TelematicsConfigനോട്ട്രാൻസ്1ലേറ്റ്
ഗതാഗത മോഡ്”ഉപയോക്താവ് ഇപ്പോൾ ഒരു വാഹനത്തിൽ നടക്കുന്നു / ഓടുന്നു / സൈക്കിൾ ചവിട്ടുന്നു”ClassifierConfigനോട്ട്രാൻസ്1ലേറ്റ്
തകർച്ചയും വീഴ്ചയും”ഒരു തകർച്ച (അല്ലെങ്കിൽ വീഴ്ച) സംഭവിച്ചിരിക്കാം”ImpactConfigനോട്ട്രാൻസ്1ലേറ്റ്

ഇവിടെയുള്ളതെല്ലാം ഡിഫോൾട്ടായി ഓപ്റ്റ്-ഇൻ ഓഫാണ്. നിങ്ങൾ ഒരു ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കിയില്ലെങ്കിൽ, അതിൻ്റെ എഞ്ചിൻ ഒരിക്കലും സൃഷ്ടിക്കപ്പെട്ടിട്ടില്ല - നിങ്ങളുടെ നിലവിലുള്ള ട്രാക്കിംഗ് കൃത്യമായി പ്രവർത്തിക്കുന്നു മുമ്പ്. നിങ്ങൾക്ക് ആവശ്യമുള്ളത് മാത്രം ഓണാക്കുക.


ഇത് ആർക്കുവേണ്ടിയാണ്? (യഥാർത്ഥ ലോക ഉദാഹരണങ്ങൾ)

  • ഉപയോഗത്തെ അടിസ്ഥാനമാക്കിയുള്ള ഇൻഷുറൻസ് / ഫ്ലീറ്റ് സുരക്ഷഡ്രൈവിംഗ് ഇവൻ്റുകൾ നിങ്ങൾക്ക് ഓരോ യാത്രയും നൽകുന്നു സെർവർ സൈഡ് ഇല്ലാതെ അപകടകരമായ ഡ്രൈവിംഗിൻ്റെ (കഠിനമായ ബ്രേക്കിംഗ്, വേഗത) ചിത്രം പ്രോസസ്സിംഗ്.
  • ഡെലിവറി / ഫീൽഡ്-സർവീസ് ആപ്പുകൾട്രാൻസ്‌പോർട്ട് മോഡ് ഓരോ യാത്രയും ഇങ്ങനെ ടാഗ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു ഡ്രൈവിംഗ് vs നടത്തം (ഉദാ. “വാൻ വിട്ടു, വാതിലിലേക്ക് നടന്നു”).
  • ഒറ്റ തൊഴിലാളി / റൈഡ് ഷെയർ / വ്യക്തിഗത സുരക്ഷാ ആപ്പുകൾക്രാഷും വീഴ്ചയും കണ്ടെത്തൽ നിങ്ങൾക്ക് വിശ്വസനീയമായ ഒരു ട്രിഗർ നൽകുന്നു (“എനിക്ക് സുഖമാണ്” എന്ന ഉപയോക്താവിനൊപ്പം വിൻഡോ റദ്ദാക്കുക). ഒരു SOS ഫ്ലോ ആരംഭിക്കുക.

നിങ്ങൾക്ക് ഏത് കോമ്പിനേഷനും പ്രവർത്തനക്ഷമമാക്കാം - അവ സ്വതന്ത്രമാണ്.


1. ഡ്രൈവിംഗ് ഇവൻ്റുകൾ (ടെലിമാറ്റിക്സ്)

30 സെക്കൻഡ് പതിപ്പ്

// 1. Turn it on (e.g. with a 50 km/h limit for speeding) await Tracelet.ready(Config( telematics: TelematicsConfig( enableDrivingEvents: true, speedLimitKmh: 50, ), )); // 2. Listen Tracelet.onDrivingEvent((event) { print('${event.kind} — severity ${event.severity}'); }); // 3. Start tracking as usual await Tracelet.start();

അത്രയേയുള്ളൂ. ഉപകരണം നീങ്ങുന്നതിനനുസരിച്ച്, നിങ്ങൾക്ക് ഇതുപോലുള്ള ഇവൻ്റുകൾ ലഭിക്കും:

harsh_braking — severity 0.82 speeding — severity 0.40

ഓരോ ഫീൽഡും എന്താണ് അർത്ഥമാക്കുന്നത്

ഓരോ DrivingEvent-നും ഉണ്ട്:

ഫീൽഡ്അർത്ഥം
kindharsh_braking, harsh_acceleration, harsh_cornering, അല്ലെങ്കിൽ speeding
severity0.01.0 — അത് എത്ര ദൂരെയാണ് ത്രെഷോൾഡ് കഴിഞ്ഞത് (സ്കോറിംഗിന് സൗകര്യപ്രദമാണ്)
valueഅളന്ന നമ്പർ: g-force കഠിനമായ സംഭവങ്ങൾക്ക്, km/h പരിധിക്കപ്പുറം വേഗതയിൽ
speedഇപ്പോൾ വേഗത, m/s ൽ
latitude / longitude / timestampഎവിടെ & എപ്പോൾ

പരിധികൾ ട്യൂൺ ചെയ്യുന്നു

എല്ലാ ത്രെഷോൾഡുകളും g (1 g ≈ 9.81 m/s², ഗുരുത്വാകർഷണത്തിൻ്റെ പുൾ) ആണ്. സ്ഥിരസ്ഥിതികൾ കോമൺ ഇൻഷുറൻസ്/ഫ്ലീറ്റ് പ്രാക്ടീസ് പിന്തുടരുക - നിങ്ങൾ അപൂർവ്വമായി അവ മാറ്റേണ്ടതുണ്ട്:

ഓപ്ഷൻസ്ഥിരസ്ഥിതിഅത് എന്ത് ചെയ്യുന്നു
harshBrakingGനോട്ട്രാൻസ്1ലേറ്റ്ഇതിനെക്കാൾ കഠിനമായി ബ്രേക്ക് ചെയ്യുക → harsh_braking
harshAccelerationGനോട്ട്രാൻസ്1ലേറ്റ്ഇതിലും കഠിനമായി ത്വരിതപ്പെടുത്തുക → harsh_acceleration
harshCorneringGനോട്ട്രാൻസ്1ലേറ്റ്കോർണർ ഇതിനേക്കാൾ കഠിനമാണ് → harsh_cornering
speedLimitKmhനോട്ട്രാൻസ്1ലേറ്റ് (ഓഫ്)വേഗത പരിധി; 0 വേഗത കണ്ടെത്തൽ പ്രവർത്തനരഹിതമാക്കുന്നു
speedingToleranceKmhനോട്ട്രാൻസ്1ലേറ്റ്കണക്കാക്കുന്നതിന് മുമ്പ് പരിധി കവിഞ്ഞ കൃപ
speedingMinDurationMsനോട്ട്രാൻസ്1ലേറ്റ്ഇത്രയും ദൈർഘ്യമുള്ള പരിധിക്ക് മുകളിലായിരിക്കണം (ഹ്രസ്വമായ ബ്ളിപ്പുകൾ ഒഴിവാക്കുന്നു)
minSpeedForEventsKmhനോട്ട്രാൻസ്1ലേറ്റ്ഈ വേഗതയിൽ താഴെയുള്ള ഇവൻ്റുകൾ അവഗണിക്കുക (പാർക്കിംഗ്-ലോട്ട് ശബ്ദം)

എന്തുകൊണ്ടാണ് ചിലപ്പോൾ ഇവൻ്റുകൾ ഇല്ലാത്തത്? ഡ്രൈവിംഗ് ഇവൻ്റുകൾ GPS വേഗതയിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതാണ്, ഏത് സെക്കൻഡിൽ ഒരു പ്രാവശ്യം അപ്‌ഡേറ്റ് ചെയ്യുന്നു, ഇത് അൽപ്പം ശബ്ദമുണ്ടാക്കുന്നു. ട്രേസ്ലെറ്റ് മനഃപൂർവം അനുകൂലിക്കുന്നു സെൻസിറ്റിവിറ്റിക്ക് മേലുള്ള കൃത്യത - ഇത് ഒരു ബോർഡർലൈൻ ഇവൻ്റ് നഷ്‌ടപ്പെടുത്തും ചെന്നായ കരയുക. മികച്ച ഫലങ്ങൾക്കായി, യഥാർത്ഥത്തിൽ ഡ്രൈവ് ചെയ്യുമ്പോൾ (നടക്കാതെ) ഇത് ഉപയോഗിക്കുക.


2. ഗതാഗത മോഡ്

ഉപയോക്താവ് still, walking, running, cycling, അല്ലെങ്കിൽ a-ൽ ആണോ എന്ന് നിങ്ങളോട് പറയുന്നു vehicle, ആക്സിലറോമീറ്റർ ചലനം GPS വേഗതയുമായി സംയോജിപ്പിച്ച്.

await Tracelet.ready(Config( classifier: ClassifierConfig(enableFusedClassifier: true), )); Tracelet.onModeChange((event) { print('Now: ${event.mode} (confidence ${event.confidence})'); });
ഓപ്ഷൻസ്ഥിരസ്ഥിതിഅത് എന്ത് ചെയ്യുന്നു
enableFusedClassifierനോട്ട്രാൻസ്1ലേറ്റ്മാസ്റ്റർ സ്വിച്ച്
fusedClassifierAuthoritativeനോട്ട്രാൻസ്1ലേറ്റ്true ആണെങ്കിൽ, ബാറ്ററി തീരുമാനങ്ങൾക്കായി OS-ൻ്റെ പ്രവർത്തനത്തെ ഫ്യൂസ്ഡ് മോഡ് അസാധുവാക്കുന്നു. false (സ്ഥിരസ്ഥിതി) ആണെങ്കിൽ, അത് വ്യാഖ്യാനിക്കുന്നു - OS മൂല്യം ചുമതലയിൽ തുടരും
modeSwitchDwellMsനോട്ട്രാൻസ്1ലേറ്റ്ഒരു പുതിയ മോഡ് റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നതിന് വളരെ മുമ്പുതന്നെ ഇത് നിലനിൽക്കണം (മിന്നിമറയുന്നത് നിർത്തുന്നു)
minModeConfidenceനോട്ട്രാൻസ്1ലേറ്റ്ഇതിന് താഴെ, മോഡ് unknown
autoTuneFromTransportModeനോട്ട്രാൻസ്1ലേറ്റ്true ആണെങ്കിൽ, ഒരു പ്രതിബദ്ധതയുള്ള മോഡ് ലൊക്കേഷൻ ഫിൽട്ടറുകൾ റീട്യൂൺ ചെയ്യുന്നു. താഴെ കാണുക

വ്യാഖ്യാനം വേഴ്സസ് ഓവർറൈഡ്: സ്ഥിരസ്ഥിതിയായി ക്ലാസിഫയർ ഒരു രണ്ടാം അഭിപ്രായമാണ് — അത് ഒരു മോഡ് റിപ്പോർട്ടുചെയ്യുന്നു, പക്ഷേ Tracelet GPS സാമ്പിളുകൾ എങ്ങനെ മാറ്റുന്നു എന്നതിൽ മാറ്റമില്ല. മിക്ക ആപ്പുകളും ഇത് ആഗ്രഹിക്കുന്നു. നിങ്ങൾക്ക് പ്രത്യേകമായി ഫ്യൂസ്ഡ് വേണമെങ്കിൽ fusedClassifierAuthoritative: true സജ്ജീകരിക്കുക ബാറ്ററി / സാമ്പിൾ പെരുമാറ്റം ഡ്രൈവ് ചെയ്യാനുള്ള ഫലം.

ലൊക്കേഷൻ ഫിൽട്ടറുകൾ സ്വയമേവ ട്യൂൺ ചെയ്യുന്നു

3.8.0-ൽ പുതിയത്.

വിദൂര-കൃത്യമായ ട്രാക്കിംഗിന് വ്യത്യസ്ത ഫിൽട്ടർ ത്രെഷോൾഡുകൾ ആവശ്യമാണ് പ്രവർത്തനങ്ങൾ. നടത്തം ബുദ്ധിമുട്ടാണ്: ~1.4 m/s-ൽ GPS നോയിസ് ഫ്ലോർ വലുതാണ് നിങ്ങൾ യഥാർത്ഥത്തിൽ എത്ര ദൂരം നീങ്ങി എന്നതിൻ്റെ അംശം, അതിനാൽ ഒരു അയഞ്ഞ ഫിൽട്ടർ വിറയൽ രേഖപ്പെടുത്തുന്നു ദൂരം. ഒരു കാറിൽ എതിർഭാഗം പിടിക്കുന്നു - ഇറുകിയ ഉമ്മരപ്പടികൾ യഥാർത്ഥമായി വലിച്ചെറിയുന്നു പ്രസ്ഥാനം.

നിങ്ങൾക്ക് മുന്നിൽ ഒരു സെറ്റ് അപ്പ് തിരഞ്ഞെടുക്കാൻ കഴിയില്ല. നിങ്ങളുടെ ഉപയോക്താക്കൾ “ഞാൻ ഇപ്പോൾ ജോഗിംഗ് ചെയ്യുന്നു” എന്ന് പ്രഖ്യാപിക്കുന്നില്ല, കൂടാതെ ഒറ്റ സെഷനിൽ ട്രെയിൽഹെഡിലേക്കുള്ള നടത്തം, ഓട്ടം, എ തിരികെ നടക്കുക. അതിനാൽ ക്ലാസിഫയർ തീരുമാനിക്കട്ടെ:

await Tracelet.ready(Config( classifier: ClassifierConfig( enableFusedClassifier: true, // required autoTuneFromTransportMode: true, ), ));

ഒരു മോഡ് കമ്മിറ്റ് ചെയ്യുമ്പോൾ, Tracelet അതിന് അനുയോജ്യമായ മൂല്യങ്ങൾക്കായി നാല് പരിധികൾ മാറ്റുന്നു:

ഫാഷൻdistanceFilterനോട്ട്രാൻസ്1ലേറ്റ്odometerAccuracyThresholdനോട്രാൻസ്3ലേറ്റ്
still25 മീറ്റർ15 മീറ്റർ10 മീറ്റർ3 m/s
walking8 മീറ്റർ15 മീറ്റർ10 മീറ്റർ4 m/s
running12 മീറ്റർ25 മീറ്റർ15 മീറ്റർ9 m/s
cycling20 മീറ്റർ30 മീറ്റർ20 മീറ്റർ20 m/s
vehicle30 മീറ്റർ50 മീറ്റർ30 മീറ്റർ60 m/s
unknownനിങ്ങളുടെ കോൺഫിഗർ ചെയ്‌ത മൂല്യങ്ങൾ പുനഃസ്ഥാപിച്ചു

ജോഗിംഗിന് ഉദ്ദേശ്യത്തോടെ ഒരു നിരയുമില്ല - ഇത് running ബാൻഡിനുള്ളിൽ (6-20 കി.മീ/മണിക്കൂർ), അതുകൊണ്ടാണ് ഉപയോക്താക്കൾ അഭിമുഖീകരിക്കുന്ന “ജോഗിംഗ് പ്രീസെറ്റ്” ഫിക്ഷൻ ആകുന്നത്.

ഇത് എങ്ങനെ പ്രവചിക്കാനാകും:

  • ഒരു പ്രതിബദ്ധതയുള്ള മോഡ് മാറ്റത്തിൽ മാത്രമേ റീട്യൂണിംഗ് സംഭവിക്കൂ - ഇതിനകം തന്നെ ആത്മവിശ്വാസം നൽകുന്നു കൂടാതെ modeSwitchDwellMs-ൽ നിന്ന് ഡീബൗൺസ് ചെയ്‌തു - ഒരിക്കലും സെൻസർ റീഡിങ്ങിൽ അല്ല, അതിനാൽ ത്രെഷോൾഡുകൾ സംസാരിക്കാൻ കഴിയില്ല.
  • പരിധികൾ മാറ്റി സ്ഥലത്ത്. നിങ്ങളുടെ ഓഡോമീറ്റർ a ഉടനീളം തുടർച്ചയായി തുടരുന്നു ഒരു സെഗ്‌മെൻ്റ് നഷ്‌ടപ്പെടുന്നതിനുപകരം മോഡ് മാറ്റുക.
  • പ്രയോഗിച്ച മൂല്യങ്ങൾ onModeChange ഇവൻ്റിലും ഡീബഗ് ലോഗിലും എത്തുന്നു, അങ്ങനെ ഒരു ഓട്ടോ ട്യൂൺ ഒരിക്കലും നിശബ്ദമല്ല.
  • unknown നിങ്ങൾ കോൺഫിഗർ ചെയ്‌തതെന്തും പുനഃസ്ഥാപിക്കുന്നു. അത് എപ്പോഴാണെന്ന് ട്രേസ്ലെറ്റ് ഊഹിക്കുന്നില്ല അറിയില്ല.
  • autoTuneFromTransportMode (അല്ലെങ്കിൽ enableFusedClassifier) ഓഫ് എന്നതിൽ റൺടൈം നിങ്ങളുടെ കോൺഫിഗർ ചെയ്ത പരിധികൾ ഉടനടി പുനഃസ്ഥാപിക്കുന്നു - ഫീച്ചർ ഒരിക്കലും നിങ്ങൾ അത് സ്വിച്ച് ഓഫ് ചെയ്‌തുകഴിഞ്ഞാൽ അതിൻ്റെ ഇഫക്റ്റുകൾ ഉപേക്ഷിക്കുന്നു.

പ്രയോഗിച്ചതു കണ്ടു

ModeChangeEvent.appliedTuning ഇട്ടിരിക്കുന്ന നാല് പരിധികൾ വഹിക്കുന്നു ബലം. ഓട്ടോ-ട്യൂണിംഗ് ഓഫായിരിക്കുമ്പോഴും മോഡ് unknown ആയിരിക്കുമ്പോഴും ഇത് null ആണ് (ഇത് നിങ്ങളുടെ സ്വന്തം മൂല്യങ്ങൾ പുനഃസ്ഥാപിക്കുന്നു):

Tracelet.onModeChange((event) { final tuning = event.appliedTuning; if (tuning == null) { print('${event.mode} — your configured thresholds are in force'); } else { print('${event.mode} → distanceFilter ${tuning.distanceFilter} m, ' 'odometerAccuracyThreshold ${tuning.odometerAccuracyThreshold} m'); } });

debug: true, logLevel: verbose എന്നിവ ഉപയോഗിച്ച് ലോഗിൽ സമാന മൂല്യങ്ങൾ ദൃശ്യമാകും:

auto-tune: 'walking' → distanceFilter=8.0m trackingAccuracy=15m odometerAccuracy=10m maxImpliedSpeed=4m/s

ഇപ്പോൾ നിലവിലുള്ളത് വായിക്കുന്നു

onModeChange ഒരു മോഡ് ചെയ്യുന്ന നിമിഷത്തെക്കുറിച്ച് നിങ്ങളോട് പറയുന്നു. എന്താണെന്ന് ചോദിക്കാൻ ഫിൽട്ടറുകൾ ഏത് ഘട്ടത്തിലും ഉപയോഗിക്കുന്നു - മോഡ് മാറ്റമൊന്നും സംഭവിക്കാത്തപ്പോൾ ഉൾപ്പെടെ മണിക്കൂർ — Tracelet.getCurrentLocationTuning() ഉപയോഗിക്കുക:

final tuning = await Tracelet.getCurrentLocationTuning(); print('in force: distanceFilter ${tuning?.distanceFilter} m, ' 'trackingAccuracyThreshold ${tuning?.trackingAccuracyThreshold} m');

ഇത് നേറ്റീവ് ലൊക്കേഷൻ പ്രോസസറിൽ നിന്ന് വായിക്കുന്നു, നിങ്ങളുടെ കോൺഫിഗറിൽ നിന്ന് അല്ല സെറ്റ്. ആ വ്യത്യാസം പ്രധാനമാണ്: Tracelet.activeConfig ഒരു ഡാർട്ട് സൈഡ് മിറർ ആണ് നിങ്ങൾ കടന്നുപോയ അവസാന Config, അതിനാൽ നിങ്ങൾ എന്താണ് ആവശ്യപ്പെട്ടതെന്ന് അത് റിപ്പോർട്ടുചെയ്യുന്നു, എന്താണെന്നല്ല ഫിൽട്ടർ യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്നു - കൂടാതെ ഇതിന് നിങ്ങൾക്ക് ഒരു യാന്ത്രിക ട്യൂൺ കാണിക്കാൻ കഴിയില്ല, കാരണം കോൺഫിഗറേഷൻ കോൾ ഇല്ലാതെ തന്നെ ഒരു ഓട്ടോ-ട്യൂൺ പരിധി മാറ്റുന്നു.

ഒരു ട്രാക്കിംഗ് സെഷൻ ഒരു പ്രോസസർ നിർമ്മിക്കുന്നതിന് മുമ്പ് null നൽകുന്നു, എല്ലായ്‌പ്പോഴും null വെബിൽ, അതിന് തത്തുല്യമായ ഫിൽട്ടർ നിലയില്ല.

നിങ്ങൾ സജ്ജമാക്കിയ geo.distanceFilter, geo.filter.* മൂല്യങ്ങളെ ഇത് ** അസാധുവാക്കുന്നു, ഒരു മോഡ് പ്രതിജ്ഞാബദ്ധമായിരിക്കുന്നിടത്തോളം കാലം. അതാണ് സവിശേഷതയുടെ പോയിൻ്റ്, പക്ഷേ അത് ചെയ്യുന്നു നിങ്ങളുടെ കോൺഫിഗർ ചെയ്‌ത പരിധികൾ റൺടൈമിൽ പ്രാബല്യത്തിലുള്ളതല്ല എന്നാണ് അർത്ഥമാക്കുന്നത് - കോൾ യഥാർത്ഥത്തിൽ എന്താണെന്ന് കാണാൻ getCurrentLocationTuning(). ഇത് false വിടുക (the ഡിഫോൾട്ട്) നിങ്ങളുടെ കൃത്യമായ മൂല്യങ്ങൾ മാനിക്കണമെങ്കിൽ.


3. ക്രാഷും വീഴ്ചയും കണ്ടെത്തൽ

ഉൽപ്പാദനം തയ്യാറാണ്. സ്ഥിരതയുള്ള ഉപകരണ പൈപ്പ്ലൈനോടുകൂടിയ ക്രാഷ് ഡിറ്റക്ഷൻ ഷിപ്പുകൾ: a റൂൾ എഞ്ചിൻ ഡിഫോൾട്ടായി, കൂടാതെ ഓപ്ഷണൽ ലൈസൻസുള്ള AI ക്രാഷ് മോഡൽ പരിശീലനം ഒരു CC0 / public-domain ക്രാഷ് ഡാറ്റാസെറ്റിൽ - അതിനാൽ ഇത് വാണിജ്യ ഉപയോഗത്തിനായി മായ്‌ക്കപ്പെടുന്നു പ്രൊഡക്ഷൻ ആപ്പുകളിൽ. വീഴ്ച കണ്ടെത്തൽ തിരഞ്ഞെടുക്കലും മികച്ച ശ്രമവുമാണ്. ട്രാക്ക് നടന്നുകൊണ്ടിരിക്കുന്നു ഇഷ്യു #183  എന്നതിലെ കൃത്യത ഗവേഷണം.

ഒരു സാധ്യതയുള്ള ക്രാഷ് കണ്ടെത്തുന്നു (ചലിക്കുമ്പോൾ കഠിനമായ ആഘാതം) അല്ലെങ്കിൽ, ഓപ്ഷണലായി, a വ്യക്തിപരമായ വീഴ്ച. തെറ്റായ അലാറങ്ങൾ ചെലവേറിയതിനാൽ, കണ്ടെത്തൽ സ്ഥിരീകരിച്ചിട്ടുണ്ട് (ഒരു വലിയ ഞെട്ടൽ മാത്രം മതിയാവില്ല) കൂടാതെ ഉപയോക്താവിന് റദ്ദുചെയ്യാനുള്ള ** കൗണ്ട്ഡൗൺ നൽകുന്നു.

await Tracelet.ready(Config( impact: ImpactConfig( enableCrashDetection: true, confirmWindowMs: 15000, // 15s for the user to say "I'm fine" ), )); Tracelet.onImpact((event) async { if (event.isPotential) { // Show a big "Are you OK?" countdown screen. // If the user taps "I'm fine": await Tracelet.cancelImpact(event.id); // If they tap "Get help now": // await Tracelet.confirmImpact(event.id); } else { // event.kind == 'crash' (or 'fall') — confirmed. // The user didn't cancel in time → start your SOS flow. } });

ഒഴുക്ക് എങ്ങനെ പ്രവർത്തിക്കുന്നു

  1. വേഗത്തിൽ നീങ്ങുമ്പോൾ കടുത്ത ആഘാതം → നിങ്ങൾക്ക് ഒരു potential_crash ഇവൻ്റ് ലഭിക്കും ഒരു confirmDeadline.
  2. ഒരു കൗണ്ട്ഡൗൺ യുഐ കാണിക്കുക. ഉപയോക്താവിന് റദ്ദാക്കാം (cancelImpact) അല്ലെങ്കിൽ ഇപ്പോൾ സ്ഥിരീകരിക്കാം (വിവർത്തനം ചെയ്തിട്ടില്ല).
  3. സമയപരിധിക്ക് മുമ്പ് അവർ ഒന്നും ചെയ്തില്ലെങ്കിൽ → സ്ഥിരീകരിച്ച crash ഇവൻ്റ് ഫയർ ചെയ്യുന്നു.
ഓപ്ഷൻസ്ഥിരസ്ഥിതിഅത് എന്ത് ചെയ്യുന്നു
enableCrashDetectionനോട്ട്രാൻസ്1ലേറ്റ്വാഹനാപകടം കണ്ടെത്തൽ
enableFallDetectionനോട്ട്രാൻസ്1ലേറ്റ്വ്യക്തിപരമായ വീഴ്ച (മികച്ച ശ്രമം - കൂടുതൽ തെറ്റായ അലാറങ്ങൾ)
crashGThresholdനോട്ട്രാൻസ്1ലേറ്റ്ഒരു ക്രാഷായി കണക്കാക്കാനുള്ള ആഘാത ശക്തി (g). ഒരു വലിയ ഫീൽഡ്-ഡാറ്റ പഠനത്തെ അടിസ്ഥാനമാക്കി 3.0-ൽ നിന്ന് താഴ്ത്തി (3.0 ഗ്രാം യഥാർത്ഥ ക്രാഷുകളുടെ പകുതി നഷ്ടമായി); റദ്ദാക്കൽ-കൌണ്ട്ഡൗൺ തെറ്റായ അലാറങ്ങൾ പിടിക്കുന്നതിനാൽ തിരിച്ചുവിളിക്കാൻ അനുകൂലിക്കുന്നു. നിങ്ങൾ വളരെയധികം നിർദ്ദേശങ്ങൾ കാണുകയാണെങ്കിൽ ട്യൂൺ അപ്പ് ചെയ്യുക.
crashMinSpeedKmhനോട്ട്രാൻസ്1ലേറ്റ്ഈ വേഗത്തിൽ നീങ്ങിക്കൊണ്ടിരിക്കണം (സ്ഥിരീകരണം)
confirmWindowMsനോട്ട്രാൻസ്1ലേറ്റ്കൗണ്ട്ഡൗൺ ദൈർഘ്യം റദ്ദാക്കുക
minImpactConfidenceനോട്ട്രാൻസ്1ലേറ്റ്ആത്മവിശ്വാസം കുറഞ്ഞ സ്ഥാനാർത്ഥികളെ അടിച്ചമർത്തുക

ട്രെയ്‌സ്‌ലെറ്റ് നിങ്ങൾക്ക് ട്രിഗറും ക്യാൻസൽ വിൻഡോയും നൽകുന്നു - ഇത് ഒരിക്കലും ഫോൺ ആക്കുന്നില്ല കോളുകൾ അല്ലെങ്കിൽ കോൺടാക്റ്റുകൾ അടിയന്തര സേവനങ്ങൾ. യഥാർത്ഥ SOS/എമർജൻസി ഫ്ലോ നിർമ്മിക്കുന്നത് നിങ്ങളുടെ ആപ്പിൻ്റെ ഉത്തരവാദിത്തം (യുഎക്‌സും നിയമ പകർപ്പും നിയന്ത്രിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു).

ആപ്പ് കൊല്ലപ്പെടുമ്പോൾ സ്ഥിരീകരണം നിലനിൽക്കുന്നു

ഒരു അക്രമാസക്തമായ ആഘാതം പലപ്പോഴും OS ആപ്പിനെ കൊല്ലുന്നതോടെ അവസാനിക്കുന്നു - ഫോൺ എറിയപ്പെടുന്നു, വാഹനം വിശ്രമിക്കുന്നു, ഉപകരണം ഡോസിലേക്ക് പോകുന്നു. റദ്ദാക്കൽ-കൌണ്ട്ഡൗൺ ആണെങ്കിൽ ഓർമ്മയിൽ മാത്രം ജീവിച്ചു, സ്ഥിരീകരിച്ച crash/fall നിശബ്ദമായി ഒരിക്കലും വെടിവയ്ക്കില്ല. Tracelet കൗണ്ട്ഡൗൺ പ്രക്രിയ-മരണത്തെ സുരക്ഷിതമാക്കുന്നു: തൽക്ഷണം a potential_crash/potential_fall ഉയർത്തി, അത് ഡിസ്കിലേക്ക് തുടരുന്നു കൂടാതെ a സമയപരിധിക്ക് ശേഷമുള്ള ഉണർവ് സായുധമാണ്. ആപ്പ് ഇപ്പോഴും സജീവമാണെങ്കിൽ സാധാരണ സ്ഥിരീകരിക്കുകയും ഉണർവ് നിരായുധമാക്കുകയും ചെയ്യുന്നു; കൊന്നതാണെങ്കിൽ ഉണർവ് സ്ഥിരീകരിച്ച ഇവൻ്റ് ഒരു പുതിയ പ്രക്രിയയിൽ നിന്ന് വീണ്ടും എമിറ്റ് ചെയ്യുന്നു അതിനാൽ നിങ്ങളുടെ SOS ഫ്ലോ ഇപ്പോഴും പ്രവർത്തിക്കുന്നു.

പ്ലാറ്റ്ഫോംമെക്കാനിസം
Androidഒരു കൃത്യമായ AlarmManager അലാറം (setExactAndAllowWhileIdle, ഡോസിലും തീപിടിക്കുന്നു) സ്ഥിരീകരിച്ച ഇവൻ്റ് വീണ്ടും നൽകുന്ന ഒരു റിസീവറിനെ ഉണർത്തുന്നു.
iOSസമയപരിധിയിൽ ഷെഡ്യൂൾ ചെയ്‌തിരിക്കുന്ന ഒരു പ്രാദേശിക അറിയിപ്പ്, ആപ്പ് നിർജ്ജീവമായിരിക്കുമ്പോഴും ഉപയോക്താവിനെ അറിയിക്കുന്നു; അടുത്ത തവണ SDK പ്രവർത്തിക്കുമ്പോൾ സ്ഥിരീകരിച്ച ഇവൻ്റ് വീണ്ടും ഡെലിവർ ചെയ്യപ്പെടും (പശ്ചാത്തല റീലോഞ്ച് അല്ലെങ്കിൽ ഫോർഗ്രൗണ്ട്). ഉപയോക്താക്കൾ അഭിമുഖീകരിക്കുന്ന അലേർട്ടിന് അറിയിപ്പ് അനുമതി നൽകുക - റീ-ഡെലിവറി ഏതെങ്കിലും വിധത്തിൽ പ്രവർത്തിക്കും.

ഒരു ഉപയോക്താവ് റദ്ദാക്കുക തുടരുന്ന കാൻഡിഡേറ്റിനെ നീക്കം ചെയ്യുകയും വേക്ക്-അപ്പ് നിരായുധമാക്കുകയും ചെയ്യുന്നു, അതിനാൽ എ റദ്ദാക്കിയ കാൻഡിഡേറ്റ് പുനരാരംഭിച്ചതിന് ശേഷം ഒരിക്കലും വീണ്ടും സ്ഥിരീകരിക്കില്ല.

ഒരു യഥാർത്ഥ തകർച്ചയോ വീഴ്ചയോ സ്ഥിരീകരിക്കുന്ന അധിക സൂചനകൾ

സ്വന്തമായി ഒരു വലിയ ഞെട്ടൽ മതിയാകില്ല - അത് വളരെയധികം തെറ്റായ അലാറങ്ങൾക്ക് കാരണമാകും. അതിനാൽ ഒരു യഥാർത്ഥ സമയത്ത് സാധാരണയായി സംഭവിക്കുന്ന കൂടുതൽ യഥാർത്ഥ ലോക സൂചനകൾക്കായി Tracelet തിരയുന്നു തകരുക അല്ലെങ്കിൽ വീഴുക. കൂടുതൽ സൂചനകൾ കാണുന്നു, അത് കൂടുതൽ ഉറപ്പാണ്. ഈ സൂചനകൾക്ക് മാത്രമേ കഴിയൂ Tracelet കൂടുതൽ ആത്മവിശ്വാസമുള്ളതാക്കുക - അവർ ഒരിക്കലും ഒരു യഥാർത്ഥ ഇവൻ്റ് റദ്ദാക്കില്ല.

  • ഫോൺ വീഴുകയായിരുന്നു — ആരെങ്കിലും അവരുടെ ഫോൺ ഡ്രോപ്പ് ചെയ്യുന്നതിനോ എടുക്കുന്നതിനോ തൊട്ടുമുമ്പ് വീഴുമ്പോൾ, ഫോൺ ഹ്രസ്വമായി ഭാരമില്ലാത്തതാണ്. കൂടുതൽ വീഴ്ച വരുത്തുന്ന സ്പോട്ടിംഗ് വിശ്വസനീയമായ.
  • പിന്നീട് എല്ലാം നിശ്ചലമായി - ഒരു യഥാർത്ഥ വീഴ്ചയ്ക്ക് ശേഷം, വ്യക്തിയും ഫോണും സാധാരണയായി നീങ്ങുന്നത് നിർത്തുക. പെട്ടെന്നുള്ള ആ നിശ്ചലത ശക്തമായ അടയാളമാണ്.
  • കാർ പെട്ടെന്ന് നിന്നു - ഒരു യഥാർത്ഥ അപകടത്തിൽ വാഹനം വേഗത്തിൽ പോകുന്നു ഒന്നോ രണ്ടോ സെക്കൻഡിനുള്ളിൽ ഏതാണ്ട് നിലച്ചു. വേഗതയിലെ കുത്തനെ ഇടിവ് ഒരു ക്രാഷിനെ ബാക്കപ്പ് ചെയ്യുന്നു.
  • ഒരു മർദ്ദം “പോപ്പ്” - ഗുരുതരമായ ഒരു തകരാർ (അല്ലെങ്കിൽ ഒരു എയർബാഗ് ഓഫാകും) പെട്ടെന്ന് സംഭവിക്കുന്നു കാറിനുള്ളിലെ വായു മർദ്ദത്തിൽ മാറ്റം. പ്രഷർ സെൻസർ ഉള്ള ഫോണുകൾക്ക് കഴിയും ഇത് ശ്രദ്ധിക്കുക; ഒന്നുമില്ലാത്ത ഫോണുകൾ ഈ പരിശോധന ഒഴിവാക്കുക, ദോഷങ്ങളൊന്നുമില്ലാതെ.

ഓപ്ഷണൽ: ലൈസൻസുള്ള AI ക്രാഷ് മോഡൽ

ഡിഫോൾട്ടായി ക്രാഷ് കണ്ടെത്തൽ ഒരു റൂൾ എഞ്ചിൻ ഉപയോഗിക്കുന്നു (g-threshold + വേഗത മുകളിലുള്ള സ്ഥിരീകരണം) — അധിക സജ്ജീകരണമില്ല, ബോക്‌സിന് പുറത്ത് പ്രവർത്തിക്കുന്നു. ഉയർന്ന കൃത്യതയ്ക്കായി നിങ്ങൾക്ക് AI ക്രാഷ് മോഡൽ പ്രവർത്തനക്ഷമമാക്കാൻ കഴിയും: ഗേറ്റ് ക്രാഷ് ചെയ്യുന്ന ഒരു പരിശീലനം ലഭിച്ച മോഡൽ a ഒരു നിശ്ചിത പരിധിക്ക് പകരം പ്രോബബിലിറ്റി പഠിച്ചു.

ഇത് ഓപ്റ്റ്-ഇൻ ചെയ്യുകയും ആവശ്യാനുസരണം ഡൗൺലോഡ് ചെയ്യുകയും ചെയ്യുന്നു (ഒരിക്കലും ഉൾച്ചേർത്തിട്ടില്ല), അതിനാൽ അടിസ്ഥാന SDK വലുപ്പം മാറ്റമില്ല. ഇത് ഓണാക്കാൻ, ഒരു ലൈസൻസ് കീ നേടുകയും അതിൽ നിങ്ങളുടെ കോൺഫിഗറേഷൻ സൂചിപ്പിക്കുകയും ചെയ്യുക:

await Tracelet.ready(Config( impact: ImpactConfig( enableCrashDetection: true, crashModelUnlockUrl: 'https://unlock.ikolvi.com/unlock', crashModelLicenseKey: '<your license key>', crashModelThreshold: 0.5074, // rf_probability_threshold from training ), ));
ഓപ്ഷൻസ്ഥിരസ്ഥിതിഅത് എന്ത് ചെയ്യുന്നു
crashModelUnlockUrlനോട്ട്രാൻസ്1ലേറ്റ്മോഡലിനെ സജീവമാക്കുന്ന ലൈസൻസിംഗ് എൻഡ്‌പോയിൻ്റ്. null ⇒ പ്യുവർ റൂൾ എഞ്ചിൻ
crashModelLicenseKeyനോട്ട്രാൻസ്1ലേറ്റ്നിങ്ങളുടെ ലൈസൻസ് കീ (ഒരു ലൈസൻസ് നേടുക പേജിൽ നിന്ന്)
crashModelThresholdനോട്ട്രാൻസ്1ലേറ്റ്മോഡൽ ഒരു ക്രാഷ് ഫ്ലാഗ് ചെയ്യാനുള്ള സാധ്യത

ഏതെങ്കിലും കാരണത്താൽ മോഡൽ സജീവമാക്കാൻ കഴിയുന്നില്ലെങ്കിൽ (ഓഫ്‌ലൈൻ, അസാധുവായ കീ) SDK സ്വയമേവ റൂൾ എഞ്ചിനിലേക്ക് മടങ്ങുന്നു — നിങ്ങളുടെ ആപ്പ് പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുന്നു.

ഒരു ലൈസൻസ് നേടുക

ഒരു ലൈസൻസ് നേടുക പേജിൽ നിന്ന് ഒരു കീ എടുക്കുക: സൈൻ ഇൻ ചെയ്യുക, നിങ്ങളുടെ നൽകുക അപ്ലിക്കേഷൻ ഐഡി, കൂടാതെ ഒട്ടിക്കാൻ തയ്യാറായ ഒരു കീ പകർത്തുക (അല്ലെങ്കിൽ പൂർണ്ണമായ ImpactConfig സ്നിപ്പെറ്റ്).

  • ദേവ് ലൈസൻസ് - ഡീബഗ് ബിൽഡുകൾക്കും എമുലേറ്ററുകൾക്കും. നിങ്ങളുടെ ആപ്പ് ഐഡി മാത്രം, അധികമില്ല സജ്ജമാക്കുക.
  • ഉൽപ്പന്ന ലൈസൻസ് - നിങ്ങളുടെ ഷിപ്പ് ചെയ്‌ത അപ്ലിക്കേഷനായി; നിങ്ങളുടെ ആപ്പ് സൈനിംഗ് സർട്ടിഫിക്കറ്റും ആവശ്യമാണ് SHA-256 (പ്ലേ കൺസോൾ → ആപ്പ് ഇൻ്റഗ്രിറ്റി → ആപ്പ് സൈനിംഗ്, അല്ലെങ്കിൽ ./gradlew signingReport).

പോർട്ടൽ നിങ്ങൾ നൽകിയ കീകൾ ലിസ്റ്റുചെയ്യുകയും അസാധുവാക്കാൻ നിങ്ങളെ അനുവദിക്കുകയും ചെയ്യുന്നു.


ഡ്രൈവിംഗ് (സിമുലേഷൻ) കൂടാതെ ഡാറ്റാബേസ് ആക്‌സസ് ഇല്ലാതെ ഇത് ശ്രമിക്കുന്നു

ടെലിമാറ്റിക്സ് ഇവൻ്റുകൾ സംഭരിക്കുന്നതിനുള്ള സമർപ്പിത ഡാറ്റാബേസ് പട്ടികകളും ഒരു കൂട്ടം ഡയഗ്നോസ്റ്റിക് API-കളും ട്രെയ്‌സ്‌ലെറ്റിൽ ഉൾപ്പെടുന്നു. ട്രേസ്‌ലെറ്റ് ഡോക്ടർ ഡയഗ്‌നോസ്റ്റിക് ഓവർലേയാണ് ഇവ കൂടുതലായി ഉപയോഗിക്കുന്നത്, എന്നാൽ ഇഷ്‌ടാനുസൃത ഡയഗ്‌നോസ്റ്റിക് സ്‌ക്രീനുകൾ നിർമ്മിക്കുന്നതിനോ കാർ ഓടിക്കുകയോ ക്രാഷ് ചെയ്യുകയോ ചെയ്യാതെ തന്നെ നിങ്ങളുടെ സുരക്ഷാ ഫ്ലോകൾ പരിശോധിക്കുന്നതിനോ നിങ്ങൾക്ക് അവ നേരിട്ട് നിങ്ങളുടെ ആപ്പിൽ ഉപയോഗിക്കാവുന്നതാണ്.

ഡാറ്റാബേസിൽ നിന്ന് ടെലിമാറ്റിക്സ് വീണ്ടെടുക്കുന്നു

എല്ലാ ഡ്രൈവിംഗും ഇംപാക്ട് ഇവൻ്റും പ്രാദേശിക SQLite ഡാറ്റാബേസിൽ സ്വയമേവ നിലനിൽക്കും. അപകടകരമായ ഡ്രൈവിംഗ് പെരുമാറ്റങ്ങളുടെ ചരിത്രം പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് ഈ ഘടനാപരമായ റെക്കോർഡുകൾ വീണ്ടെടുക്കാം:

// Fetch the 50 most recent telematics events from the database final events = await Tracelet.getTelematicsEvents(50); for (final event in events) { print('Event Type: \${event.eventType}'); // e.g. harsh_braking, crash print('Severity: \${event.severity}'); print('Location: \${event.latitude}, \${event.longitude}'); }

ഇവൻ്റുകൾ തിരികെ വരുന്നു പുതിയത് ആദ്യം, സമന്വയിപ്പിക്കുന്നത് അവയെ ഇതിൽ നിന്ന് നീക്കം ചെയ്യുന്നില്ല കാണുക - syncTelematics അപ്‌ലോഡ് ഇവൻ്റുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നു, പക്ഷേ നിങ്ങളുടെ പ്രാദേശിക ചരിത്രം ഉപേക്ഷിക്കുന്നു കേടുകൂടാതെ.

നിങ്ങളുടെ ബാക്ക്എൻഡിലേക്ക് അവരെ അയയ്ക്കുന്നു

HttpConfig.syncTelematics: true സജ്ജീകരിക്കുക, സമന്വയിപ്പിക്കാത്ത ഇവൻ്റുകൾ നിങ്ങളുടെ സാധാരണ റൈഡ് ചെയ്യുക ലൊക്കേഷൻ സമന്വയം - ഒരേ പോസ്‌റ്റിൽ അല്ലെങ്കിൽ അവരുടേതായ ഒരു റൂട്ട്-ലെവൽ telematics അറേ നിങ്ങൾ HttpConfig.telematicsUrl സജ്ജീകരിക്കുമ്പോൾ അഭ്യർത്ഥിക്കുക. പരാജയപ്പെട്ട അപ്‌ലോഡുകൾ ഇവൻ്റുകൾ നിലനിർത്തുന്നു അവരെ വീഴ്ത്തുന്നതിനുപകരം ക്യൂവിൽ. വയർ സ്കീമയ്ക്ക്, ബാച്ചിംഗ് ബൗണ്ടുകൾ കൂടാതെ പ്രത്യേക-അവസാന പോയിൻ്റ് ട്രേഡ്-ഓഫ്, കാണുക ടെലിമാറ്റിക്സ് സമന്വയം 📖.

ഇവൻ്റുകൾ അനുകരിക്കുന്നു

നിങ്ങൾക്ക് മോക്ക് ടെലിമാറ്റിക്സ് ഇവൻ്റുകൾ നേറ്റീവ് ട്രാക്കിംഗ് എഞ്ചിനുകളിലേക്ക് നേരിട്ട് കുത്തിവയ്ക്കാൻ കഴിയും. നിങ്ങളുടെ ആപ്പിൻ്റെ പ്രതികരണം (ക്രാഷിൽ ഒരു SOS സ്‌ക്രീൻ കാണിക്കുന്നത് പോലെ) അല്ലെങ്കിൽ നിങ്ങളുടെ UI ഘടകങ്ങൾ പരിശോധിക്കുന്നതിന് ഇത് അനുയോജ്യമാണ്. ബട്ടണുകൾ വഴി ഇവൻ്റുകൾ ട്രിഗർ ചെയ്യാൻ ഡവലപ്പർമാരെ അനുവദിക്കുന്നതിന് ഉദാഹരണ ആപ്പിൻ്റെ ഡ്രൈവിംഗും സുരക്ഷയും പേജും ട്രേസ്‌ലെറ്റ് ഡോക്ടർ ഓവർലേയും ഈ API ഉപയോഗിക്കുന്നു.

// Simulate a harsh braking event (named arguments) await Tracelet.simulateTelematicsEvent( eventType: 'harsh_braking', severity: 0.85, // 0.0 to 1.0 latitude: 37.422, longitude: -122.084, );

ഡാറ്റാബേസ് മായ്ക്കുന്നു

നിങ്ങൾക്ക് ഡയഗ്നോസ്റ്റിക് നില പുനഃസജ്ജമാക്കുകയോ പ്രാദേശിക ഡാറ്റാബേസിൽ നിന്ന് ടെലിമാറ്റിക്സ് ഇവൻ്റുകളുടെ ചരിത്രം മായ്‌ക്കുകയോ ചെയ്യണമെങ്കിൽ, നിങ്ങൾക്ക് ക്യൂ ശുദ്ധീകരിക്കാൻ കഴിയും:

await Tracelet.destroyTelematicsEvents();

ഓട്ടോമേറ്റഡ് ടെസ്റ്റുകളിൽ, നിങ്ങൾക്ക് ഡാർട്ടിൽ നിന്ന് നേരിട്ട് എഞ്ചിനുകൾ ഓടിക്കാനും കഴിയും (അവ flutter_rust_bridge വഴി തുറന്നുകാട്ടപ്പെടുന്നു) — example/integration_test/behavior_simulation_test.dart കാണുക.


അനുമതികൾ

  • ഡ്രൈവിംഗ് ഇവൻ്റുകൾ നിങ്ങൾ ഇതിനകം ഉപയോഗിക്കുന്ന ലൊക്കേഷൻ അനുമതി മാത്രമേ ആവശ്യമുള്ളൂ ട്രാക്കിംഗ് - അധികമായി ഒന്നുമില്ല.
  • ട്രാൻസ്‌പോർട്ട് മോഡ്, ക്രാഷ്/ഫാൾ എന്നിവ ആക്‌സിലറോമീറ്റർ ഉപയോഗിക്കുന്നു. ആൻഡ്രോയിഡിൽ അത് ചലനം കണ്ടെത്തുന്നതിനായി ഇതിനകം പ്രവർത്തിക്കുന്നു (പുതിയ അനുമതിയില്ല). iOS-ൽ, ചേർക്കുന്നു മോഷൻ & ഫിറ്റ്നസ് ഉപയോഗ വിവരണം കൃത്യത മെച്ചപ്പെടുത്തുന്നു. കാണുക iOS കൂടാതെ Android പേജുകൾ സജ്ജീകരിക്കുക.

അറിഞ്ഞത് നന്നായി

  • ഉപകരണത്തിൽ & ഡിറ്റർമിനിസ്റ്റിക് — എല്ലാ കണ്ടെത്തലും പങ്കിട്ട റസ്റ്റ് കോറിൽ പ്രവർത്തിക്കുന്നു. ഇല്ല നെറ്റ്‌വർക്ക്, ക്ലൗഡ് മോഡൽ ഇല്ല, Android-ലും iOS-ലും സമാന ഫലങ്ങൾ.
  • ഡ്രൈവിംഗ് ഇവൻ്റുകൾ വെബിലും പ്രവർത്തിക്കുന്നു (അവ GPS-ഉത്പന്നമാണ്).
  • സൈഡ്-ചാനൽ - ഈ ഇവൻ്റുകൾ നിങ്ങളുടെ സാധാരണയ്‌ക്കൊപ്പം* ഡെലിവർ ചെയ്യുന്നു onLocation സ്ട്രീം; അവർ ഒരിക്കലും നിങ്ങളുടെ ലൊക്കേഷനുകളോ ഓഡോമീറ്ററോ മാറ്റില്ല, അവർ syncTelematics ഉപയോഗിച്ച് നിങ്ങൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ മാത്രം നിങ്ങളുടെ സമന്വയ പേലോഡിൽ ചേരുക.