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?