ഡ്രൈവിംഗും സുരക്ഷയും
ട്രെയ്സ്ലെറ്റിന് അസംസ്കൃത ലൊക്കേഷൻ + ആക്സിലറോമീറ്റർ സ്ട്രീം ** അർത്ഥപൂർണമാക്കി മാറ്റാനാകും ഒരു ഉപകരണം എങ്ങനെ നീങ്ങുന്നു എന്നതിനെക്കുറിച്ചുള്ള ഇവൻ്റുകൾ** - പൂർണ്ണമായും ഉപകരണത്തിൽ, ക്ലൗഡ് ഇല്ലാതെ വിളിക്കുന്നു. 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-നും ഉണ്ട്:
| ഫീൽഡ് | അർത്ഥം |
|---|---|
kind | harsh_braking, harsh_acceleration, harsh_cornering, അല്ലെങ്കിൽ speeding |
severity | 0.0–1.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 | 0 (ഓഫ്) | വേഗത പരിധി; 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 |
വിശകലനം വേഴ്സസ് ഓവർറൈഡ്: സ്ഥിരസ്ഥിതിയായി ക്ലാസിഫയർ ഒരു രണ്ടാം അഭിപ്രായമാണ് — അത്
ഒരു മോഡ് റിപ്പോർട്ടുചെയ്യുന്നു, പക്ഷേ Tracelet GPS സാമ്പിളുകൾ എങ്ങനെ മാറ്റുന്നു എന്നതിൽ മാറ്റമില്ല. മിക്ക ആപ്പുകളും ഇത് ആഗ്രഹിക്കുന്നു.
നിങ്ങൾക്ക് പ്രത്യേകമായി ഫ്യൂസ്ഡ് വേണമെങ്കിൽ fusedClassifierAuthoritative: true സജ്ജീകരിക്കുക
ബാറ്ററി / സാമ്പിൾ പെരുമാറ്റം ഡ്രൈവ് ചെയ്യാനുള്ള ഫലം.
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.
}
});ഒഴുക്ക് എങ്ങനെ പ്രവർത്തിക്കുന്നു
- വേഗത്തിൽ നീങ്ങുമ്പോൾ കടുത്ത ആഘാതം → നിങ്ങൾക്ക് ഒരു
potential_crashഇവൻ്റ് ലഭിക്കും ഒരുconfirmDeadline. - ഒരു കൗണ്ട്ഡൗൺ യുഐ കാണിക്കുക. ഉപയോക്താവിന് റദ്ദാക്കാം (
cancelImpact) അല്ലെങ്കിൽ ഇപ്പോൾ സ്ഥിരീകരിക്കാം (വിവർത്തനം ചെയ്തിട്ടില്ല). - സമയപരിധിക്ക് മുമ്പ് അവർ ഒന്നും ചെയ്തില്ലെങ്കിൽ → സ്ഥിരീകരിച്ച
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 ഫ്ലോ ഇപ്പോഴും പ്രവർത്തിക്കുന്നു.
| പ്ലാറ്റ്ഫോം | മെക്കാനിസം |
|---|---|
| ആൻഡ്രോയിഡ് | ഒരു കൃത്യമായ 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}');
}ഇവൻ്റുകൾ അനുകരിക്കുന്നു
നിങ്ങൾക്ക് മോക്ക് ടെലിമാറ്റിക്സ് ഇവൻ്റുകൾ നേറ്റീവ് ട്രാക്കിംഗ് എഞ്ചിനുകളിലേക്ക് നേരിട്ട് കുത്തിവയ്ക്കാൻ കഴിയും. നിങ്ങളുടെ ആപ്പിൻ്റെ പ്രതികരണം (ക്രാഷിൽ ഒരു 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സ്ട്രീം; അവ ഒരിക്കലും നിങ്ങളുടെ ലൊക്കേഷനുകളോ ഓഡോമീറ്ററോ സമന്വയമോ മാറ്റില്ല.