Ben bu işlemleri otomatik hale getirmek için bash script geliştirdim. Bu şekilde 3-4 sn içinde ekran görüntüsü alıp, png'ye çevirip artık bmp dosyasını siliyorum.
Scriptin çalışması için cihazların IP adreslerinin sabit olması gerekiyor. Birde ben klasör olarak masaüstünde screenshot isimli bir klasörü kullanıyorum. Eğer klasör yoksa script bunu da otomatik oluşturuyor. Dolayısıyla işim bittiğinde temizlemek de kolay oluyor. Klasörü komple siliyorum.
Script'in bütün hali en altta var. Şimdi biraz da parça parça scripti açıklayayım.
Her şeyden önce klasör oluşturuyorum.
path="$HOME/Desktop/screenshot"
if [ ! -d "$path" ]; then
mkdir -p "$path"
fi
Daha sonra ağa bağlı cihazları listeliyorum ve kullanıcının bir cihaz seçmesini bekliyorum. IP adreslerini değiştirmeyi unutmayın.
echo "Lütfen bir cihaz seçin:"
echo "1. Siglent SDS 1000X/2000X series oscilloscope"
echo "2. Siglent SDM 3000/3000X series digital multimeter"
echo "3. Siglent SDG 1000X/2000X/6000X series waveform generator"
echo "4. Rigol DL3000 Series Programmable DC Electronic Load"
echo "5. Rigol DP 800 series power supply"
read -p "Seçiminizi yapın (1-5 arası bir sayı girin): " choice
Kullanıcı bir giriş yaptıktan sonra seçime uygun şekilde değişkenleri tanımlıyorum.
case "$choice" in
1)
device_name="SDS2504X_Plus"
plugin_name="siglent-sds"
ip_address="XX.XX.XX.X1"
;;
2)
device_name="SDM3065X"
plugin_name="siglent-sdm3000"
ip_address="XX.XX.XX.X2"
;;
3)
device_name="SDG2122X"
plugin_name="siglent-sdg"
ip_address="XX.XX.XX.X3"
;;
4)
device_name="DL3031A"
plugin_name="rigol-dl3000"
ip_address="XX.XX.XX.X4"
;;
5)
device_name="DP832A"
plugin_name="rigol-dp800"
ip_address="XX.XX.XX.X5"
;;
*)
echo "Geçersiz seçim! Lütfen 1 ile 5 arası bir sayı girin."
exit 1
;;
esac
Henüz ne işe yaradığını bilmiyorum ama LXI komutunu --help ile dökümanlarına baktığımda screenshot için plugin desteği olduğunu söylüyor. Bendeki bütün cihazların plugin desteği olduğu için plugin_name olarak hepsini yazdım ve ilerleyen komutlarda yer verdim. Kullandığınız cihazın desteği olup olmadığına lxi -l komutu ile bakabilirsiniz.
Şimdi dosya ismi oluşturuyorum
filename="$path/${device_name}_$(date +"%Y%m%d_%H%M%S")"
Artık sırası ile ilgili komutları işliyorum. Birinci satır ekran görüntüsü alıyor, ikinci satır bunu png'ye çeviriyor. Son satırda ise bmp dosyasını siliyorum.
lxi screenshot -a "$ip_address" -p "$plugin_name" "$filename.bmp"
convert "$filename.bmp" "$filename.png"
rm "$filename.bmp"
İşlem tamamladı kullanıcıya bilig verip 2 saniye sonra pencereyi kapatıyorum.
echo "İşlem tamamlandı: $filename.png oluşturuldu."
sleep 2
exit 0
Yukarıda açıkladığım bash'in tamamını da ekliyorum. İyileştirme, hata düzeltme vb katkılarınız olursa bilmek isterim.
#!/bin/bash
path="$HOME/Desktop/screenshot"
if [ ! -d "$path" ]; then
mkdir -p "$path"
fi
echo "Lütfen bir cihaz seçin:"
echo "1. Siglent SDS 1000X/2000X series oscilloscope"
echo "2. Siglent SDM 3000/3000X series digital multimeter"
echo "3. Siglent SDG 1000X/2000X/6000X series waveform generator"
echo "4. Rigol DL3000 Series Programmable DC Electronic Load"
echo "5. Rigol DP 800 series power supply"
read -p "Seçiminizi yapın (1-5 arası bir sayı girin): " choice
case "$choice" in
1)
device_name="SDS2504X_Plus"
plugin_name="siglent-sds"
ip_address="XX.XX.XX.X1"
;;
2)
device_name="SDM3065X"
plugin_name="siglent-sdm3000"
ip_address="XX.XX.XX.X2"
;;
3)
device_name="SDG2122X"
plugin_name="siglent-sdg"
ip_address="XX.XX.XX.X3"
;;
4)
device_name="DL3031A"
plugin_name="rigol-dl3000"
ip_address="XX.XX.XX.X4"
;;
5)
device_name="DP832A"
plugin_name="rigol-dp800"
ip_address="XX.XX.XX.X5"
;;
*)
echo "Geçersiz seçim! Lütfen 1 ile 5 arası bir sayı girin."
exit 1
;;
esac
lxi screenshot -a "$ip_address" -p "$plugin_name" "$filename.bmp"
convert "$filename.bmp" "$filename.png"
rm "$filename.bmp"
echo "İşlem tamamlandı: $filename.png oluşturuldu."
sleep 2
exit 0