Korzystając ze środowiska Arduino, jak rozumiem, nie można uzyskać dostępu do własnej biblioteki z innej własnej biblioteki. Nie ma sposobu na dodanie ścieżek, więc po prostu nie ma sposobu, aby kompilator znalazł kod. Utrudnia to pisanie bibliotek korzystających z kodu w innej bibliotece. Moje badania internetowe wskazują, że był to problem od lat, ale moja wiedza nie została rozwiązana. Podejrzewam, że są trudności w szczegółach implementacji lub może chęć utrzymania systemu w prosty sposób kosztem możliwości.
Oczywiście zawsze można wyciąć i wkleić kod do każdej nowej biblioteki, ale jest to niezmiernie nieoptymalne. Możesz również napisać jedną ogromną bibliotekę z całym kodem w jednej parze plików .h i .cpp. To też nie jest zbyt satysfakcjonujące, ale robię to z okazji.
Istnieje jednak pewna praca przy użyciu standardowych bibliotek Arduino we własnej bibliotece, które umieszczasz w katalogu ze szkicownikami/bibliotekami. Ponieważ szkice zawierają ścieżki do standardowych lokalizacji bibliotek i łączą standardowy kod biblioteki, możesz dołączyć do szkicu plik nagłówkowy standardowej biblioteki interesującej. Poniżej, także w szkicu, umieść swój własny plik nagłówkowy biblioteki. Standardowa biblioteka stanie się dostępna zarówno w twojej bibliotece, jak iw twoim szkicu.
To może wydawać się hakerem, ale jest zgodne z całym paradygmatem przetwarzania. Zasadniczo szkic jest czymś, co służy do łączenia wszystkich elementów roboczych, dlatego zapewnienie odpowiedniej logiki kleju w szkicu jest bardzo odpowiednie. – SRM
To jest "zło". Ideą biblioteki jest abstrakcyjna funkcjonalność i zapewnienie zwięzłego API do użycia. '#include" lib.h "' powinno być wszystkim, czego potrzeba, aby uzyskać bibliotekę (zakładając, że jest w ścieżce ładowania). Wymaganie, aby klient biblioteki wiedział o wewnętrznych działaniach biblioteki, jest po prostu błędne. –
Istnieje dyskusja, która mówi, że użytkownik musi uwzględnić wszystkie biblioteki odniesienia w szkicu głównym. Jednak nawet zrobienie tego wydaje się powodować błędy wielu definicji dla makr lub tablic, które są zdefiniowane w zależnym nagłówku biblioteki, a wykluczenie nagłówka w zależnym pliku źródłowym powoduje, że nie można znaleźć tych samych symboli. Jedynym sposobem na zaspokojenie zależności między bibliotekami jest uwzględnienie wszystkich nagłówków i źródeł w tym samym katalogu (lub uruchamianie wszystkich instrukcji include i zmiana ścieżki na względną, ogromny problem podczas pakowania biblioteki innej firmy i mało przenośny). –