pondělí 28. března 2016

Nastavení rozlyšení MediaCapture

MediaCapture resolution


var mediaCapture = new MediaCapture();
// initialization here
await mediaCapture.InitializeAsync();

// get available resolutions
var resolutions = mediaCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.VideoPreview).ToList();

int i = 0;
foreach (var res in resolutions)
{
   log.Info(string.Format(
      "Resolution [{0}] -  {1}x{2}", 
      i++, 
      (res as VideoEncodingProperties).Width, 
      (res as VideoEncodingProperties).Height)
   );
}

// set used resolution
await mediaCapture.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.VideoPreview, resolutions[7]);



Zdroj:
[1] http://stackoverflow.com/questions/35261485/how-to-change-media-capture-photo-resolution-for-uwp
[2] https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.devices.videodevicecontroller.getavailablemediastreamproperties.aspx
[3] http://stackoverflow.com/questions/15412772/take-photo-with-custom-resolution-from-captureelement-with-mediacapture

úterý 22. března 2016

SNMP pro tiskárnu

Některé tiskárny podporují získávání stavu pomocí protokolu SNMP (Simple Network Management Protocol)
Protokol běží na UDP a má 3 verze. Druhá verze má přihlašování a třetí šifrování.

Obecné hodnoty
.iso.org.dod.internet.mgmt.mib-2.system.sysName.0 = LaserJetM1120n
.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0 = 3 hours, 9 minutes, 5 seconds.

[1]
.1.3.6.1.4.1.11.2.3.9.4.2.1.4.1.2.34.0 = 20 [%] procentuelní stav toneru
.1.3.6.1.2.1.43.10.2.1.4.1.1 = počet vytisknutých stránek.1.3.6.1.2.1.43.11.1.1.6.1.1 = Black Cartridge CB436A

HP [2]
HP Toner Cur: 1.3.6.1.2.1.43.11.1.1.9.1.1  (např. 176)
HP Toner Max: 1.3.6.1.2.1.43.11.1.1.8.1.1 (např. 884)
level = (100*176)/884 = 19,90950226244344 % (administrace tiskárny ukazuje 20%)


Zdroje: 
[1] https://exchange.nagios.org/directory/Plugins/Hardware/Printers/SNMP-Printer-Check/reviews2
[2] https://www.sysaid.com/Sysforums/posts/list/8717.page
[3] https://cs.wikipedia.org/wiki/Simple_Network_Management_Protocol
[4] http://www.mibdepot.com/cgi-bin/getmib3.cgi?win=mib_a&r=hp&f=lj3300_snmp.mib&v=v1&t=tree

PHP ukázka kódu
$buff .= '<h2><a href="http://192.168.2.3/">Stav toneru v tiskarne</a></h2>';
snmp_set_quick_print(0);
$level = snmpget("192.168.2.3", "public", ".1.3.6.1.2.1.43.11.1.1.9.1.1");
$max = snmpget("192.168.2.3", "public", ".1.3.6.1.2.1.43.11.1.1.8.1.1");
$buff .= $level .'/'. $max .'&nbsp;-&nbsp;'. (int)($level*100/$max) .'% ' ."<br />\n";

pondělí 21. března 2016

UWP - Ukládání souborů


Zdroj:
http://stackoverflow.com/questions/33199792/how-can-i-handle-custom-app-settings-windows-10-uwp-c-sharp

Tisk obálek ve Wordu

Nastavení velikosti obálky
Rozložení stránky / Velikost / Další velikosti papíru /
Šířka: 16.2 cm
Výška: 11,4 cm

Připojení seznamu příjemců
Vybrat příjemce / Použít existující seznam
Vybrat *.txt (nebo *.CSV) soubor

Vložení pole ze seznamu
Korespondence / Vložit slučovací pole
Vybrat pole se jménem

Rozměry obálek
http://ciselnik.artega.cz/rozmery_obalek_DL_C6_C5_B6_B5.php

pátek 18. března 2016

Raspberry Pi 2 a WordPress

K Vánocům jsem dostal Raspberry Pi 2 a chtěl bych si na něm rozjed Web server s Wordpressem.
Jen tak for fun. Jelikož ale s Linuxem nejsem moc kamarád tak jsem zvědavý kolik času mi to zabere.


Zdroj:
http://projpi.com/diy-home-projects-with-a-raspberry-pi/host-your-own-wordpress-blog-using-raspberry-pi-2/
https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/

neděle 13. března 2016

Raspberry Pi 2 B+ - výstup na televizi

3,5 Jack konektor na Raspberry Pi 2 kromě stereo audia obsahuje i video. Jedná se o náhradu žlutého konektrou na předchozí verzi. Barvy ale nemusí ladit. Když jsem připojil žlutý konektor z RPI do žlutého vstupu na televizi tak se nic nezobrazilo. Musel jsem postpně zkusit všechny a s červeným to fungovalo. Pokud zapojíte všechny konektory a video zapojíte do vstupu zvuku, uslyšíte video v reporodukrotu televize (žádná příjemná hudba).

Raspberry Pi 2 - Win 10 IoT Core

Připojení na Webové rozhraní RaspberryPi
http://minwinpc:8080/ nebo http://192.168.0.19:8080/default.htm podle toho jakou adresu dostane RPi přiřazeno od routeru.
Uživatelské jméno: Administrator
Heslo: p@ssw0rd

Sdílení souborů a získání dat z Rpi
Služba pro sdílení souborů je, ve výchozím stavu, po startu systému spuštěna.
(Win + E) spustí průzkumník souborů
192.168.0.19 je IP adresa Rpi a použijese při přihlášní jako doména.
\\192.168.0.19\c$
Uživatelské jméno: 192.168.0.19\Administrator
Heslo: p@ssw0rd

Další způsob je použít jako doménu název RPi
//MinWinPc/c$
Uživatelské jméno: MinWinPc\Administrator
Heslo: p@ssw0rd

Uložené soubory jsou pak třeba ve složce:
\\192.168.0.19\c$\Data\Users\DefaultAccount\Pictures

Deploy
Aplikace se z VisualStudia nahrávají do složky
\\192.168.0.25\c$\Data\Users\DefaultAccount\AppxLayouts\

Zdroj:
https://ms-iot.github.io/content/en-US/win10/samples/SMB.htm

středa 2. března 2016

XML serializace a atributy

Serializace třídy do XML
Zdroj:
https://msdn.microsoft.com/en-us/library/58a18dwa(v=vs.110).aspx

XmlIgnore
[XmlIgnore]
public int PropertyName{get; set;}

XmlRoot
[XmlRoot("korenovy_tag")]
public class XmlRootElement {get; set;}
<korenovy_tag>
...
</korenovy_tag>

XmlText
Zdroj:
http://stackoverflow.com/questions/3638113/using-xml-class-attributes-how-to-represent-an-xml-tag-with-both-inner-text-and
[XmlText()]
public string Text {get; set;}
<tag>text</tag>
Poznámka: Pokud nemá property setter tak se hodnota do XML při serializaci nezapíše.

XmlAttribute
Zdroj:
http://stackoverflow.com/questions/3638113/using-xml-class-attributes-how-to-represent-an-xml-tag-with-both-inner-text-and
[XmlAttribute("skutecny_nazev_tagu")]
public string NazevProperty {get; set;}
<tag skutecny_nazev_tagu="hodnota">

XmlElement
[XmlElement("skutecny_nazev_tagu")]
public int Value {get; set;}
<skutecny_nazev_tagu>1</skutecny_nazev_tagu>

XmlArray a XmlArrayItem
[XmlArray("collection_name")]
[XmlArrayItem("collection_item_name")]
public List<ItemType> Items { get; set; }
<colection_name>
<collection_item_name Id="1" />
<collection_item_name Id="2"/>
....
</colection_name>

Vynechat prázdné hodnoty
Zdroj:
http://stackoverflow.com/questions/5818513/xml-serialization-hide-null-values
Property s názvem ShouldSerialize{PropertyName} kde PropertyName je název property která by se měla nebo neměla serializovat.

public bool ShouldSerializeMyNullableInt() 
{
  return MyNullableInt.HasValue;
}
nebo
{PropertyName}Specified

Serializace bez Namespace
Zdroje:
http://stackoverflow.com/questions/8061106/xml-serialization-remove-namespace

var xns = new XmlSerializerNamespaces();
var serializer = new XmlSerializer(users.GetType());
xns.Add(string.Empty, string.Empty);
//...
serializer.Serialize(stream, users, xns);