ESP32 softAP SSID sabit değil
Kurulumda () wifi SSID'yi ayarlayabilmek istiyorum, böylece onu MAC adresine veya benzer bir şeye göre özelleştirebilirim. (aynı SSID'ye sahip aynı koda sahip ESP'lerden kaçınmak). Ancak bir const gerektirdiği için mümkün görünmüyor veya bir şeyi mi kaçırıyorum?
Önemli olursa platformIO kullanıyorum ...
Yanıtlar
Bir constfonksiyonun parametresi neyin geçirilebileceğini tanımlamaz. Bunun yerine, işlev tarafından ilettiğiniz verileri değiştirmeyeceğine dair bir "sözdür".
C'de bir işleve bir "dize" (aslında bir karakter dizisi) ilettiğinizde, dizeyi (içerikte olduğu gibi) gerçekten iletmezsiniz. Sadece dizenin saklandığı bellekteki konuma bir işaretçi iletirsiniz.
Bir işlevin daha sonra, bellekteki orijinal verileri değiştirecek olan, geçirilen "dizge" üzerinde değişiklikler yapması tamamen mümkündür. Bu pek çok durumda gerçekten arzu edilen bir durum değildir.
Dolayısıyla const, derleyiciye "Şu andan itibaren bu değişken tarafından gösterilen veriler değiştirilmemelidir" dediğiniz gibi parametreyi işaretleyerek . Bu değişkeni kullanarak belleğe yazma girişimlerinin tümü derleyici tarafından engellenecektir.
Örneğin a char *ile a const char *arasında derleyicinin onlara yazma girişimlerini nasıl ele aldığından başka gerçek bir fark yoktur .
Bir işaretçi char *bekleyen bir işleve a const char *ilettiğinizde, bir sabit değerine "yükseltilir", böylece verileri değiştirme girişimlerine izin verilmez.
Eğer olamaz (veya gerekmeyen) denemek ve bir dönüştürme - tersi olsa izin verilmeyen const char *bir karşı char *(tek bir monolitik bellek adres alanına sahip "Princeton" mimarlık sistemleri) bazı sistemlerde olduğu gibi işaretçi depolanmış verilere işaret olabilir flash ve buna yazma girişimi açıkça başarısız olacaktır.
SSID'yi ayarlamak için aradığınız işlev, yalnızca ilettiğiniz verileri değiştirmeye çalışmayacağının sözünü veriyor. Sabit olup olmaması önemli değil - her ikisi de sabit olarak değerlendirilecek ve değiştirilmeyecek.
WifiManager kütüphanesi sizin için çalışabilir, wifi bağlantınızı anında yapılandırmak için tutsak bir portala sahiptir. İsteğinize göre şekillendirmek için epeyce yapılandırma seçenekleri var, yanılmıyorsam, umarım size iyi hizmet eder.