REVLib Değişiklik Günlüğü
Sürüm2024.2.4
C++ ve Java'daki Değişiklikler
Periyodik bir durumu beklemek için varsayılan zaman aşımını 2*framePeriodMs'den 500ms'ye yükseltir.
Durum çerçevelerinden veri alınırken verilerde büyük, hatalı sıçramalar meydana gelme olasılığını azaltır.
Sürücü istasyonundaki “periyodik durum X beklenirken zaman aşımına uğradı” hatalarının miktarını azaltır.
Periyodik durum çerçeveleri için CAN zaman aşımını yapılandırmak üzere setPeriodicFrameTimeout() ekler See code docs for more information.
Parametrelerin ayarlanması ve cihazdan yanıt bekleyen diğer komutlar gibi RTR CAN çerçevelerinin güvenilirliğini artırır.
İstek gönderme veya yanıt alma başarısız olursa istekleri yeniden denemek için mekanizma ekler. Maksimum yeniden deneme sayısı için varsayılan değer 5'tir.
Maksimum yeniden deneme sayısı değerini yapılandırmak için setCANMaxRetries() işlevini ekler See code docs for more information.
SPARK motor denetleyicisi bilgileri başlatma sırasında alınamadığında tanımlanmamış davranışı düzeltir.
Sürüm 2024.2.3
Java'daki Değişiklikler
v2024.2.2'de getEncoder() işlevinin birden fazla kez çağrılmasının belirli durumlarda ölümcül bir istisnaya neden olabileceği sorunu giderir.
C++ ve Java'daki değişiklikler
getEncoder() çağrılırken SPARK modeli için dinamik kontrolü kaldırır, bu da gereksiz CAN trafiğine neden olur.
Varsayılan kodlayıcı değerlerini belirlemek için sıfır bağımsız değişken CANSparkBase.getEncoder()'ı CANSparkMax ve CANSparkFlex alt sınıflarına taşır.
Sürüm 2024.2.2
C++ ve Java'daki değişiklikler
SPARK Flex'in varsayılan göreli kodlayıcısı için hız filtresinin yapılandırılmasının doğru parametreleri ayarlamamasına neden olan sorun giderildi.
Java'da yapılan değişiklikler
Bellek ayırma performansını iyileştirir.
Sürüm 2024.2.1
C++ ve Java'da yapılan değişiklikler
SPARK Flex ve MAX başlatma hatalarının davranışını, robot programını sonlandırmak yerine istisnalar atacak şekilde değiştirir.
Cihazın CAN veri yolu bağlantısı kesilmişken bir SPARK Flex veya MAX'in fırçalı modda başlatılmasının robot programının sonlanmasına neden olması sorunu giderildi.
Bir SPARK Flex veya MAX'in fırçalı modda başlatılmasının robot simülasyonunun sonlanmasına neden olması sorunu giderildi.
Robot simülasyonu sırasında bir SPARK Flex veya MAX için yanlış sınıfın kullanılmasıyla ilgili uyarıyı düzeltir.
C++'daki Değişiklikler
GetAnalogSensor() çağrılırken hiçbir parametre verilmediğinde oluşan belirsiz aşırı yük hatası düzeltildi.
GetEncoder() çağrılırken hiçbir parametre sağlanmadığında oluşan belirsiz aşırı yük hatası düzeltildi.
Sürüm 2024.2.0
SPARK Flex için tam destek ile REVLib için resmi 2024 FRC başlangıç sürümü. WPILib 2024 ve SPARK Flex/SPARK MAX ürün yazılımı 24.x.x gerektirir.
C++, Java ve LabVIEW'de yapılan değişiklikler
Ürün yazılımı sürümü 24.0.0'dan düşükse hata verir
SPARK Flex Dock bağlı değilken motor tipi SPARK Flex üzerinde Fırçalı olarak ayarlanırsa hata verir
Ana enkoder konumunu gelişmiş hassasiyetle alır
C++ ve Java'daki Değişiklikler
Bağlı olan SPARK tipi için yanlış sınıf kullanılırsa Sürücü İstasyonuna bir uyarı gönderir
Hem SPARK MAX hem de SPARK Flex için ortak olan işlevselliği ortaya çıkaran CanSparkBase sınıfını ekler
SPARK Flex'in tüm işlevlerini ortaya çıkaran CanSparkFlex sınıfını ekler
CanSparkFlex, SparkMaxAlternateEncoder döndüren getAlternateEncoder() yöntemi yerine SparkFlexExternalEncoder döndüren getExternalEncoder() yöntemine sahiptir.
Bunun nedeni, Alternatif Kodlayıcı Modunun SPARK Flex için gerekli olmaması ve Harici Kodlayıcı Veri Bağlantı Noktası özelliği ile değiştirilmiş olmasıdır:
NEO sınıfı motorlardaki dahili kodlayıcılarla aynı anda kullanılabilir
Mutlak enkoder ve limit anahtarları ile aynı anda kullanılabilir
Neredeyse hiç RPM sınırı yok
Özel yapılandırma yok
Aşağıdaki öğeler yeni eşdeğerleri lehine kullanımdan kaldırılmıştır:
CANSparkMaxLowLevel yerine CANSparkLowLevel kullanın
SparkMaxAbsoluteEncoder yerine SparkAbsoluteEncoder kullanın
SparkMaxAnalogSensor yerine SparkAnalogSensor kullanın
SparkMaxLimitSwitch yerine SparkLimitSwitch kullanın
SparkMaxPIDController yerine SparkPIDController kullanın
SparkMaxRelativeEncoder yerine SparkRelativeEncoder kullanın
ExternalFollower.kFollowerSparkMax yerine ExternalFollower.kFollowerSpark kullanın ExternalFollower enum'una CANSparkMax.ExternalFollower, CANSparkFlex.ExternalFollower veya CANSparkBase.
ExternalFollower adresinden erişilebilir SparkModel enum'u döndüren bir CANSparkBase.getSparkModel() yöntemi ekler
LabVIEW'deki Değişiklikler
Ön eki “Spark MAX” olan eski VI'ları kullanımdan kaldırır ve bunları ön eki “SPARK” olan VI'larla değiştirir
Kullanımdan kaldırılan simgeler “grileştirilir”
Kullanımdan kaldırılan VI'lar için yardım bağlamı (dokümantasyon) kullanıcıyı eşdeğer yeni VI'ya yönlendirir
Yeni simgelerde “REV MAX” yerine “SPARK” yazıyor
SPARK Get Model.vi dosyasını ekler
SPARK Flex ile kullanıldığında SPARK Get Analog Sensor Voltage.vi düzeltildi
SPARK Get I Accum.vi dosyasını durum 2 yerine durum 7'den
Accum almak için günceller “Alternatif Kodlayıcı” VI'larını ‘Alternatif veya Harici Kodlayıcı’ olarak günceller
Veri portu yapılandırma uyarılarını yalnızca cihaz bir SPARK MAX olduğunda atın
Sürüm 2023.1.3
REVLib'in bu sürümü SPARK MAX Firmware v1.6.3 gerektirir. Lütfen SPARK MAX'ınızı REV Donanım İstemcisi aracılığıyla güncelleyin.
Absolute Encoder nesneleri üzerindeki setZeroOffset() ve getZeroOffset() yöntemleri için dokümantasyon geliştirildi
Mutlak kodlayıcının sıfır ofsetinin okunmasının belirli koşullarda yanlış bir değer döndürmesine neden olan sorunu düzeltir
Sürüm 2023.1.2
REVLib'in bu sürümü SPARK MAX Firmware v1.6.2 gerektirir. Lütfen SPARK MAX'ınızı REV Donanım İstemcisi aracılığıyla güncelleyin.
Hall sensörünün hız ölçümünü yapılandırmak için destek ekler
C++/Java: SparkMaxRelativeEncoder sınıfındaki SetMeasurementPeriod() ve SetAverageDepth() işlevlerini, göreli kodlayıcı kHallSensor tipinde yapılandırıldığında kullanılmak üzere günceller.
LabVIEW: Hall sensörünün ölçüm periyodunu ve ortalama derinliğini ayarlamak ve almak için SPARK MAX Configure Hall Sensor.vi ve SPARK MAX Get Hall Sensor Config.vi ekler.
Sürüm 2023.1.1
WPILib 2023 için destek ekler
SPARK MAX için bir geri besleme cihazı olarak bir görev döngüsü mutlak kodlayıcı kullanma desteği ekler
C++/Java: SparkMaxAbsoluteEncoder sınıfını ekler
LabVIEW: Bir görev döngüsü mutlak kodlayıcıyı yapılandırmak ve değerlerini almak için VI'lar ekler
SPARK MAX PID kontrolörü için sürekli girişe izin vermek üzere Pozisyon PID Sarma ekler
C++/Java: SparkMaxPIDController sınıfına PositionPIDWrapping yöntemleri ekler
LabVIEW: Pozisyon PID Sarma yapılandırmasını ayarlamak ve almak için VI'lar ekler
Durum çerçeveleri için periyodik çerçeve hızlarının yapılandırılmasını sağlar 4-6
Sürüm 2022.1.2
Kırılan Değişiklikler
LabVIEW: FRC LabVIEW çevrimdışı yükleyicisi ile birlikte gelen NI Paket Yöneticisi sürümü, REVLib paketini yüklerken artık çalışmayacaktır. LabVIEW için REVLib paketini yükleyebilmek için NIPM en son sürüme güncellenmeli veya FRC LabVIEW çevrimiçi yükleyicisinden yüklenmelidir
Sürüm 2022.0.0
Kırılan değişiklikler
C++/Java: CANError'ın adı REVLibError olarak değiştirildi.
Java: ColorMatch.makeColor() ve ColorShim sınıfı kaldırıldı. Bunun yerine WPILib Color sınıfını kullanın.
C++/Java: Kullanımdan kaldırılan kurucular, yöntemler ve tipler silindi
Kullanımdan kaldırılan kurucuları CANSparkMax.getX() işlevleriyle değiştirin.
CANEncoder.getCPR() fonksiyonunu getCountsPerRevolution() ile değiştirin.
CANDigitalInput.LimitSwitch'in tüm kullanımlarını kaldırın.
CANSparkMax.getAlternateEncoder() işlevini CANSparkMax.getAlternateEncoder(int countsPerRev) ile değiştirin.
CANSparkMax.setMotorType() işlevinin tüm kullanımlarını kaldırın. Artık motor türünü yalnızca kurucuda ayarlayabilirsiniz.
SparkMax'i WPILib'de yerleşik olan PWMSparkMax ile değiştirin.
Java: CANSparkMax.get() artık WPILib MotorController API sözleşmesine uygun olarak gerçek hız yerine set(double speed) tarafından ayarlanan hız ayar noktasını döndürür.
C++/Java: CANPIDController.getSmartMotionAccelStrategy() artık SparkMaxPIDController.AccelStrategy döndürüyor.
C++/Java: Aşağıdaki şeyleri yapmaya çalışmak artık bir istisna oluşturacaktır:
Zaten bir tane olan bir cihaz için bir CANSparkMax nesnesi oluşturmak
NEO hall sensörü için yanlış bir countsPerRev değeri belirtme
Java: CANSparkMax.getX() yönteminin programda daha önce kullanılandan farklı ayarlar kullanılarak çağrılması
Java: close() çağrıldıktan sonra bir CANSparkMax (veya ondan alınan başka bir nesne) kullanmaya çalışmak
C++: Bir CANSparkMax.getX() yönteminin tek bir cihaz için birden fazla kez çağrılması
C++/Java: Yeniden adlandırılmış sürümler lehine kullanımdan kaldırılan sınıflar
C++ kullanıcıları, nesne bildirimlerini yeni sınıflar için olanlarla değiştirene kadar soyut tipte alan bildirememe hatası alacaklardır. Java kullanıcıları 2022 sezonu boyunca eski sınıfları kullanmaya devam edebilecekler.
AlternateEncoderType, SparkMaxAlternateEncoder.Type ile değiştirilmiştir.
CANAnalog, SparkMaxAnalogSensor ile değiştirilmiştir.
CANDigitalInput, SparkMaxLimitSwitch ile değiştirilmiştir.
Java: CANEncoder, RelativeEncoder ile değiştirildi. C++: CANEncoder, SparkMaxRelativeEncoder veSparkMaxAlternateEncoder` ile değiştirilmiştir.
CANPIDController, SparkMaxPIDController ile değiştirilmiştir.
CANSensor, MotorFeedbackSensor ile değiştirilir.
ControlType, CANSparkMax.ControlType ile değiştirilmiştir.
EncoderType, SparkMaxRelativeEncoder.Type ile değiştirilmiştir.
Geliştirmeler:
C++/Java: Periyodik kare hızını ayarlama özelliği eklendi 3
Düzeltmeler:
C++/Java: CANSparkMax.getMotorType() artık Get Parameter API'sini kullanmıyor, bu da sık sık çağırmanın güvenli olduğu anlamına geliyor
Java: CANSparkMax.getX() yöntemleri artık her çağrıda yeni bir nesne oluşturmuyor
Bilinen sorunlar:
SparkMaxPIDController.setIAccum() sadece kontrol modu aktifken çalışır
Last updated
Was this helpful?