سبق 1ਸਟੈਟਿਕ ਸੰਦਰਭਾਂ ਲਈ ਕੋਲੀਜ਼ਨ ਸਟ੍ਰੈਟੇਜੀ ਚੁਣਨਾ: ਓਪਨ ਐਡ੍ਰੈਸਿੰਗ ਵਿਰੁੱਧ ਐਰੇਜ਼ ਨਾਲ ਸਟੈਟਿਕ ਸੈਪਰੇਟ ਚੇਨਿੰਗਫਿਕਸਡ-ਮੈਮਰੀ ਸਿਸਟਮਾਂ ਲਈ ਓਪਨ ਐਡ੍ਰੈਸਿੰਗ ਅਤੇ ਸਟੈਟਿਕ ਸੈਪਰੇਟ ਚੇਨਿੰਗ ਦੀ ਤੁਲਨਾ ਕਰਦਾ ਹੈ, ਕੈਸ਼ ਵਿਵਹਾਰ, ਫ੍ਰੈਗਮੈਂਟੇਸ਼ਨ, ਇੰਪਲੀਮੈਂਟੇਸ਼ਨ ਗੁੰਝਲਦਾਰਤਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ ਅਤੇ ਐੰਬੈਡਿਡ ਸੀ ਪ੍ਰੋਜੈਕਟਸ ਵਿੱਚ ਕੋਲੀਜ਼ਨ ਸਟ੍ਰੈਟੇਜੀ ਚੁਣਨ ਲਈ ਗਾਈਡਲਾਈਨਾਂ ਦਿੰਦਾ ਹੈ।
Review of open addressing propertiesReview of static separate chainingMemory layout and cache friendlinessComplexity and implementation effortGuidelines for strategy selectionسبق 2ਮੈਮਰੀ ਅਤੇ ਟਾਈਮ ਗੁੰਝਲਦਾਰਤਾ: ਵਰਸਟ ਅਤੇ ਅਪੇਕਸ਼ਿਤ ਪ੍ਰੋਬਸ ਦਸਤਾਵੇਜ਼ੀਕਰਨ, ਐੰਬੈਡਿਡ ਲਈ ਟੇਬਲ ਲੋਡ ਫੈਕਟਰ ਸਿਫਾਰਸ਼ਾਂਸਟੈਟਿਕ ਹੈਸ਼ ਟੇਬਲਾਂ ਦੀ ਮੈਮਰੀ ਅਤੇ ਟਾਈਮ ਗੁੰਝਲਦਾਰਤਾ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ, ਵਰਸਟ-ਕੇਸ ਅਤੇ ਅਪੇਕਸ਼ਿਤ ਪ੍ਰੋਬ ਕਾਊਂਟਸ ਦਸਤਾਵੇਜ਼ੀਕਰਦਾ ਹੈ, ਲੋਡ ਫੈਕਟਰ ਹੱਦਾਂ ਅਤੇ ਐੰਬੈਡਿਡ ਸੈਂਸਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਵਿਹਾਰਕ ਸਾਈਜ਼ਿੰਗ ਸਿਫਾਰਸ਼ਾਂ ਦਿੰਦਾ ਹੈ।
Worst-case probe length analysisExpected probes under random hashingImpact of load factor on performanceMemory footprint and table sizingEmbedded-specific tuning guidelinesسبق 3ਸੁਰੱਖਿਅਤ ਪੁਆਇੰਟਰ ਹੈਂਡਲਿੰਗ: ਪੁਆਇੰਟਰਾਂ ਦੀ ਬਜਾਏ ਇੰਡੈਕਸ਼ ਵਰਤੋਂ, ਬਾਊਂਡਸ ਚੈੱਕਸ ਅਤੇ ਨਲ ਡੀਰੈਫਰੈਂਸਿਸ ਤੋਂ ਬਚਾਉਣਾਸਟੈਟਿਕ ਹੈਸ਼ ਟੇਬਲਾਂ ਵਿੱਚ ਰਾਵ ਪੁਆਇੰਟਰਾਂ ਦੀ ਬਜਾਏ ਇੰਡੈਕਸ਼ ਵਰਤੋਂ ਨਾਲ ਸੁਰੱਖਿਅਤ ਪੁਆਇੰਟਰ ਹੈਂਡਲਿੰਗ ਕਵਰ ਕਰਦਾ ਹੈ, ਬਾਊਂਡਸ ਚੈੱਕਸ ਲਗਾਉਂਦਾ ਹੈ ਅਤੇ ਨਲ ਡੀਰੈਫਰੈਂਸਿਸ ਅਤੇ ਝੁਲਦੇ ਰੈਫਰੈਂਸਿਜ਼ ਰੋਕਣ ਵਾਲੇ ਏ ਪੀ ਆਈਜ਼ ਡਿਜ਼ਾਈਨ ਕਰਦਾ ਹੈ।
Indices vs pointers in static tablesImplementing robust bounds checkingAvoiding NULL and dangling referencesConverting indices to pointers safelyAPI patterns that enforce safetyسبق 4ਓਪਨ ਐਡ੍ਰੈਸਿੰਗ ਤਕਨੀਕਾਂ: ਲੀਨੀਅਰ ਪ੍ਰੋਬਿੰਗ, ਕਵਾਡ੍ਰੈਟਿਕ ਪ੍ਰੋਬਿੰਗ, ਟੌਮਬਸਟੋਨ ਅਤੇ ਡਾਇਨਾਮਿਕ ਮੈਮਰੀ ਤੋਂ ਬਿਨਾਂ ਡਿਲੀਸ਼ਨ ਸੈਮੈਂਟਿਕਸਸਟੈਟਿਕ ਟੇਬਲਾਂ ਵਿੱਚ ਓਪਨ ਐਡ੍ਰੈਸਿੰਗ ਦੇ ਵੇਰਵੇ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਲੀਨੀਅਰ ਅਤੇ ਕਵਾਡ੍ਰੈਟਿਕ ਪ੍ਰੋਬਿੰਗ, ਟੌਮਬਸਟੋਨ ਮਾਰਕਰ ਅਤੇ ਡਾਇਨਾਮਿਕ ਅਲਾਕੇਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਡਿਲੀਸ਼ਨ ਨਿਯਮ ਸ਼ਾਮਲ ਹਨ ਜੋ ਪ੍ਰੋਬ ਚੇਨਾਂ ਅਤੇ ਭਵਿੱਖੀਦਾਰ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਚਾਉਂਦੇ ਹਨ।
Linear probing: algorithm and trade-offsQuadratic probing: clustering behaviorDesigning and using tombstone markersDeletion semantics and probe chain repairDetecting full table and failure modesسبق 5ਸਰਕੂਲਰ ਬਫਰ ਨਾਲ ਇੰਟੀਗ੍ਰੇਸ਼ਨ: ਨਵੀਨਤਮ ਰੀਡਿੰਗ ਰੱਖਣਾ ਅਤੇ ਇਕਸਾਰਤਾ ਲਈ ਪਾਲਿਸੀਆਂ (ਲਿਖਣ-ਆਰਡਰ, ਟਾਈਮਸਟੈਂਪ)ਸਟੈਟਿਕ ਹੈਸ਼ ਟੇਬਲ ਦੇ ਸਰਕੂਲਰ ਬਫਰ ਨਾਲ ਸਹਿਯੋਗ ਨੂੰ ਖੋਜਦਾ ਹੈ ਤਾਂ ਜੋ ਨਵੀਨਤਮ ਸੈਂਸਰ ਰੀਡਿੰਗਜ਼ ਰੱਖੀਆਂ ਜਾਣ, ਲਿਖਣ ਆਰਡਰ ਵਿਵਹਾਰ ਕੀਤਾ ਜਾਵੇ, ਤਾਜ਼ਗੀ ਲਈ ਟਾਈਮਸਟੈਂਪ ਵਰਤੇ ਜਾਣ ਅਤੇ ਅਪਡੇਟਸ ਜਾਂ ਸਮਕਾਲੀ-ਵਰਗੀ ਪਹੁੰਚਾਂ ਵੇਲੇ ਇਕਸਾਰਤਾ ਬਣਾਈ ਰੱਖੀ ਜਾਵੇ।
Mapping sensor IDs to circular buffer slotsStoring only most recent reading per sensorTimestamp fields and monotonic orderingHandling overwrite and wrap-around casesConsistency rules for concurrent-style accessسبق 6ਇਨੀਟ_ਟੇਬਲ: ਖਾਲੀ ਮਾਰਕਰ ਸੈੱਟ ਕਰਨਾ, ਫ੍ਰੀ ਲਿਸਟਾਂ ਜਾਂ ਟੌਮਬਸਟੋਨ ਇਨੀਸ਼ੀਅਲਾਈਜ਼ ਕਰਨਾਇਨੀਟ_ਟੇਬਲ ਦੀਆਂ ਜ਼ਿੰਮੇਵਾਰੀਆਂ ਸਮਝਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਖਾਲੀ ਮਾਰਕਰ ਸੈੱਟ ਕਰਨਾ, ਫ੍ਰੀ ਲਿਸਟਾਂ ਜਾਂ ਟੌਮਬਸਟੋਨ ਇਨੀਸ਼ੀਅਲਾਈਜ਼ ਕਰਨਾ, ਮੈਟਾਡਾਟਾ ਕਲੀਅਰ ਕਰਨਾ ਅਤੇ ਪਹਿਲੀ ਵਰਤੋਂ ਤੋਂ ਪਹਿਲਾਂ ਟੇਬਲ ਨੂੰ ਇਕਸਾਰ ਅਤੇ ਵੈਰੀਫਾਈਏਬਲ ਹਾਲਤ ਵਿੱਚ ਸ਼ੁਰੂ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਣਾ।
Choosing and setting empty markersInitializing tombstone and state flagsBuilding initial free-list structuresZeroing or sanitizing table memoryValidation checks after initializationسبق 7ਇੰਸਰਟ_ਅਥਵਾ_ਅਪਡੇਟ_ਰੀਡਿੰਗ: ਇੰਸਰਟ, ਅਪਡੇਟ, ਫੁੱਲ ਟੇਬਲ ਹੈਂਡਲਿੰਗ ਅਤੇ ਰਿਟਰਨ ਕੋਡਸਇੰਸਰਟ_ਅਥਵਾ_ਅਪਡੇਟ_ਰੀਡਿੰਗ ਏ ਪੀ ਆਈ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਇੰਸਰਟਸ਼ਨ, ਇਨ-ਪਲੇਸ ਅਪਡੇਟ, ਫੁੱਲ ਟੇਬਲ ਹੈਂਡਲਿੰਗ, ਰਿਟਰਨ ਕੋਡਸ ਅਤੇ ਕੋਲੀਜ਼ਨ ਹੈਂਡਲਿੰਗ ਨੂੰ ਇੰਟੀਗ੍ਰੇਟ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ ਜਦੋਂ ਕਿ ਸੀ ਵਿੱਚ ਇੰਟਰਫੇਸ ਨੂੰ ਸਾਧਾਰਨ ਅਤੇ ਰੋਬੱਸਟ ਰੱਖਦੇ ਹੋਏ।
Function prototype and parameter choicesInsert path for new sensor IDsUpdate path for existing sensor IDsHandling full table and error returnsDesigning clear status and error codesسبق 8ਬਕਟ ਐਰੇ ਡਿਜ਼ਾਈਨ: ਟੇਬਲ ਸਾਈਜ਼ ਚੋਣ, ਪ੍ਰਾਈਮ ਸਾਈਜ਼ਿੰਗ ਅਤੇ ਕੰਪਾਈਲ-ਟਾਈਮ ਕਾਸਟੈਂਟਸਬਕਟ ਐਰੇ ਨੂੰ ਡਿਜ਼ਾਈਨ ਕਰਨ ਦੇ ਤਰੀਕੇ ਦੱਸਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਟੇਬਲ ਸਾਈਜ਼ ਚੁਣਨਾ, ਪ੍ਰਾਈਮ ਜਾਂ ਪਾਵਰ-ਅਫ-ਟੂ ਸਾਈਜ਼ਿੰਗ, ਕੰਪਾਈਲ-ਟਾਈਮ ਕਾਸਟੈਂਟਸ ਅਤੇ ਮੈਮਰੀ ਵਰਤੋਂ, ਸਪੀਡ ਅਤੇ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਸਾਧਾਰਨਤਾ ਵਿਚਕਾਰ ਟ੍ਰੇਡ-ਆਫਸ ਸ਼ਾਮਲ ਹਨ।
Prime vs power-of-two table sizesRelating table size to key capacityUsing compile-time constants in CBalancing memory and performancePlanning for future size adjustmentsسبق 9ਐਰੇਜ਼ ਨਾਲ ਸਟੈਟਿਕ ਚੇਨਿੰਗ: ਨੋਡ ਪੂਲ ਡਿਜ਼ਾਈਨ, ਨੈਕਸਟ ਇੰਡੈਕਸ਼ ਅਤੇ ਸਟੈਟਿਕ ਮੈਮਰੀ ਵਿੱਚ ਫ੍ਰੀ-ਲਿਸਟ ਮੈਨੇਜਮੈਂਟਐਰੇਜ਼ ਨਾਲ ਸਟੈਟਿਕ ਸੈਪਰੇਟ ਚੇਨਿੰਗ ਕਵਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਨੋਡ ਪੂਲ ਲੇਆਊਟ, ਨੈਕਸਟ ਇੰਡੈਕਸ਼ ਲਿੰਕਸ, ਫ੍ਰੀ-ਲਿਸਟ ਮੈਨੇਜਮੈਂਟ ਅਤੇ ਹੀਪ ਅਲਾਕੇਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਇੰਸਰਟਸ਼ਨ, ਡਿਲੀਸ਼ਨ ਅਤੇ ਟ੍ਰਾਵਰਸਲ ਇੰਪਲੀਮੈਂਟ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ।
Designing the node pool array layoutUsing next indexes instead of pointersManaging a free-list in static memoryInsertion and deletion in static chainsDetecting pool exhaustion and errorsسبق 10ਕੀ ਅਤੇ ਵੈਲਿਊ ਨੁਮਾਇੰਦਗੀ: ਯੂਆਈਐੱਨਟ8_ਟੀ ਸੈਂਸਰ ਆਈਡੀ ਅਤੇ ਸੈਂਸਰਰੀਡਿੰਗ ਕਾਪੀ ਸੈਮੈਂਟਿਕਸ ਵਰਤੋਂਯੂਆਈਐੱਨਟ8_ਟੀ ਸੈਂਸਰ ਆਈਡੀ ਅਤੇ ਸੈਂਸਰਰੀਡਿੰਗ ਕਾਪੀ ਸੈਮੈਂਟਿਕਸ ਨਾਲ ਕੀਜ਼ ਅਤੇ ਵੈਲਿਊਜ਼ ਨੂੰ ਨੁਮਾਇੰਦਗੀ ਕਰਨ ਦੇ ਤਰੀਕੇ ਸਮਝਾਉਂਦਾ ਹੈ, ਕਾਪੀ ਸੈਮੈਂਟਿਕਸ, ਅਲਾਈਨਮੈਂਟ, ਪੈਡਿੰਗ ਅਤੇ ਸਟੈਟਿਕ ਹੈਸ਼ ਟੇਬਲ ਵਿੱਚ ਏਲੀਆਸਿੰਗ ਜਾਂ ਲਾਈਫਟਾਈਮ ਇਸ਼ੂਜ਼ ਤੋਂ ਬਚਾਉਣ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਦੇ ਹੋਏ।
Choosing uint8_t for sensor ID keysDesigning the SensorReading structCopy semantics vs pointer semanticsAlignment, padding, and struct layoutValidating and normalizing sensor IDsسبق 11ਛੋਟੇ ਕੀਸਪੇਸ ਲਈ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਚੋਣਾਂ: ਆਈਡੈਂਟਿਟੀ, ਮਲਟੀਪਲਿਕੇਟਿਵ ਅਤੇ 0–255 ਆਈਡੀਆਂ ਲਈ ਮਾਸਕਿੰਗਛੋਟੇ ਯੂਆਈਐੱਨਟ8_ਟੀ ਕੀਸਪੇਸ ਲਈ ਹੈਸ਼ ਫੰਕਸ਼ਨਾਂ ਬਾਰੇ ਚਰਚਾ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਆਈਡੈਂਟਿਟੀ ਮੈਪਿੰਗ, ਮਲਟੀਪਲਿਕੇਟਿਵ ਹੈਸ਼ਿੰਗ, ਮਾਸਕਿੰਗ ਸ਼ਾਮਲ ਹੈ ਅਤੇ 0–255 ਸੈਂਸਰ ਆਈਡੀਆਂ ਲਈ ਸਾਧਾਰਨਤਾ, ਵੰਡ ਗੁਣਵੱਤਾ ਅਤੇ ਗਣਨਾਤਮਕ ਲਾਗਤ ਵਿਚਕਾਰ ਬੈਲੰਸ ਕਰਨਾ।
Identity hash for dense ID rangesMultiplicative hashing for uint8_t keysBit masking and table index derivationAvoiding systematic clustering patternsTesting distribution with sample dataسبق 12ਫਾਈਂਡ_ਰੀਡਿੰਗ_ਬਾਈ_ਆਈਡੀ: ਪ੍ਰੋਬ ਸੀਕੁਐਂਸਿਜ਼, ਨਾ-ਮਿਲਣ ਵਾਲੇ ਵਿਰੁੱਧ ਮਿਲਣ ਵਾਲੇ ਰਿਸਪਾਂਸ ਅਤੇ ਸੁਰੱਖਿਅਤ ਕਾਪੀ-ਆਊਟ ਪੈਟਰਨਫਾਈਂਡ_ਰੀਡਿੰਗ_ਬਾਈ_ਆਈਡੀ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਪ੍ਰੋਬ ਸੀਕੁਐਂਸਿਜ਼, ਨਾ-ਮਿਲਣ ਵਾਲੇ ਤੋਂ ਮਿਲਣ ਵਾਲੇ ਨੂੰ ਵੱਖ ਕਰਨਾ, ਟੇਬਲ ਤੋਂ ਸੈਂਸਰਰੀਡਿੰਗ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਾਪੀ-ਆਊਟ ਅਤੇ ਸੀ ਵਿੱਚ ਅਣਵਿਵਹਾਰਕ ਵਿਵਹਾਰ ਜਾਂ ਪੁਰਾਣੇ ਡਾਟਾ ਐਕਸਪੋਜ਼ਰ ਤੋਂ ਬਚਾਉਣਾ ਸ਼ਾਮਲ ਹੈ।
Function signature and return patternsImplementing probe sequences for lookupHandling not-found vs found resultsSafe copy-out of SensorReading valuesAvoiding stale or partially written data