Moj prvi čebelnjak

Da ne boste rekli da samo gnijem za pisalno mizo in računalnikom, vam bom malo opisal moj hobi.

Že moj star ata je celo življenje čebelar in tako sem dostikrat pomagal točiti med in delati s čebelami. Sedaj ko nisem več doma v rodnih krajih, sem se odločil da naredim svoj čebelnjak, da tudi ohranim tradicijo, ter povečam število čebel v naših krajih.

Tast mi je že dal blagoslov za prostor v bližini hiše in se tudi ponudil za pomoč pri gradnji. Najrajši bi imel lesenega, morda pa tudi pozidanega s siporeksom (ytong) ter potem prevlečenega z bruno. Velik bo okoli 2×3m, panje pa dobim iz starega čebelnjaka od starega ata, ki je sedaj dobil novega, vendar ne bo imel toliko panjev in jih bo dal meni.
Potem pa jih samo še obnovim pa bo :D

Pa še en primer lepega čebelnjaka ki se ga nebi branil:

čebelnjak 1

ali

čebelnjak 2

Seveda takšen projekt zahteva kar nekaj denarja in vloženega truda, čeprav ga bomo sami delali, zna cena doseči par tisoč €. Tako da začnem varčevat, drugo leto pa že lahko začnemo delat… vas bom obveščal

  • Share/Bookmark

Dodaj komentar 23.07.2009

Java in serial port

Kako komunicirati z napravami preko serijskega porta ter USBja?

Najprej sem mal googlal, vendar nič pametnega… najdem java comm od sun-a, pridem lepo do downloada knjižnice – stran ne obstaja. Potem pa le najdem en forum, kjer predlagajo knjižnico RXTX, ki jo najdeš na http://users.frii.com/jarvi/rxtx/ oz download na http://rxtx.qbang.org/wiki.

Ko stvar preneseš, jo razpakiraš in dobiš knjižnice za win, linux, macos ter solaris + jar datoteka.

Jaz sem delal v win, tako da sem uporabil win dllje ter jar file. Prekopirat pa jih moraš v:

Installation of javax.comm on Linux

copy libLinuxSerialParallel.so to /usr/lib/
copy javax.comm.properties to [JDK-directory]/jre/lib/
copy comm.jar to [JDK-directory]/lib/

Installation of rxtxSerial (from www.rxtx.org) on Linux

copy librxtxSerial.so to /usr/lib
copy RXTXcomm.jar to [JDK-directory]/jre/lib/ext/

Installation of rxtxSerial (from www.rxtx.org) on Windows

copy rxtxSerial.dll to [JDK-directory]\jre\bin\rxtxSerial.dll
copy RXTXcomm.jar to [JDK-directory]\jre\lib\ext\RXTXcomm.jar

Ko imaš te knjižnice pa lahko začneš z delom. Jar file je potrebno še dodati v library v projektu v javi (jaz uporabljam eclipse). Potem pa lahko začnemo s kodo:

Main class:

private void connect(String portName) throws Exception {

try {
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()) {
System.out.println(“Error: Port is currently in use”);
} else {
CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);

if (commPort instanceof SerialPort) {
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

System.out.println(“Device connected…”);

InputStream in = serialPort.getInputStream();
SerialReader reader = new SerialReader(in);
reader.run();

OutputStream out3 = serialPort.getOutputStream();
SerialWriter writer = new SerialWriter(out3, serialPort);

writer.setCommand(“xxx”);
writer.run();

//close comport
try{
commPort.close();

}
catch (Exception e) {
System.out.println(“Close port error “+ e);
}
} else
System.out
.println(“Error: Only serial ports are handled by this example.”);
}

} catch (Exception conn) {
System.out.println(“Error connecting:”+conn);

}

}

Branje iz naprave:

import java.io.IOException;
import java.io.InputStream;

public class SerialReader implements Runnable
{
InputStream in;

public SerialReader ( InputStream in )
{
this.in = in;
}

public void run ()
{
byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
}
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}

Pisanje v napravo oz pošiljanje komand(class extends SerialPortEventListener):

V konstruktor damo:

try {
serialPort.addEventListener(this);
} catch (TooManyListenersException e) {}

// activate the DATA_AVAILABLE notifier
serialPort.notifyOnDataAvailable(true);

public void run ()
{
System.out.println("Insert command: ");

try {
serialPort.notifyOnOutputEmpty(true);
} catch (Exception e) {
System.out.println(“Error setting event notification”);
System.out.println(e.toString());
}

System.out.println(“Writing \”"+messageString+”\” to “+serialPort.getName());
try {
//write to serial port
out.write(messageString.getBytes());
out.close();

} catch (IOException e) {}
}

// LISTENING TO SERIALPORT EVENTS
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
// we get here if data has been received

byte[] buffer = new byte[1024];
int len = -1;
try
{
while ( ( len = this.in.read(buffer)) > -1 )
{
System.out.print(new String(buffer,0,len));
}
}
catch ( IOException e )
{
e.printStackTrace();
}

break;
}

}

  • Share/Bookmark

Dodaj komentar 22.07.2009

Inštalacija programov v Ubuntu preko terminala

Danes bom malo povzel, kako lahko enostavno inštaliramo programe v linux preko terminala.

Odpremo terminal… uporabljali bomo ukaz aptitude.
Npr da želimo inštalirati firefox…najprej izvedemo iskanje:

user@Rxx:~$ aptitude search firefox
i   firefox                         – meta package for the popular mozilla web b
i   firefox-3.0                     – safe and easy web browser from Mozilla
i   firefox-3.0-branding            – Package that ships the firefox branding
i   firefox-3.0-dev                 – Development files for Mozilla Firefox

Izpiše nam vse najdene zadetke… iz seznama lahko vidimo da bomo uporabili firefox-3.0

Sedaj sledi inštalacija:

user@Rxx:~$ aptitude install firefox-3.0
Branje seznama paketov… Narejeno
Gradnja drevesa odvisnosti
Reading state information… Narejeno
Reading extended state information
Initializing package states… Narejeno
E: Ni mogoče odprti zaklenjene datoteke /var/lib/dpkg/lock – open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
user@Rxx:~$

Kot vidite nimamo dostopa… to pomeni da moramo imeti pravice za inštalacijo… do te pa dostopamo kot administrator… v ta namen uporabimo pred ukazom niz: sudo, ki bo preko gesla inštaliral paket.

user@Rxx:~$ sudo aptitude install firefox-3.0
[sudo] password for user: *****
Branje seznama paketov… Narejeno
Gradnja drevesa odvisnosti
Reading state information… Narejeno
Reading extended state information
Initializing package states… Narejeno
Writing extended state information… Narejeno
Branje seznama paketov… Narejeno
Gradnja drevesa odvisnosti
Reading state information… Narejeno
Reading extended state information
Initializing package states… Narejeno

user@Rxx:~$

Tako… pa smo preko terminala inštalirali firefox… tako lahko hitro inštaliramo tudi druge programe.

  • Share/Bookmark

Dodaj komentar 14.07.2009

Programiranje dodatkov za Word

V tem članku bom na kratko opisal kako lahko v .net napišemo dodatek oz AddIn za Word. Podobno se naredijo dodatki tudi za ostale Microsoftove programe.

Za AddIn-e potrebujete 2 dodatka (prerequsites): Office 2003 PIAs in VSTO Runtime 2005SE
Ti so potrebni, da lahko uporabnik inštalira dodatek na svojem računalniku.

Najprej odprite Visual Studio. Jaz uporabljam 2008. Pojdite na File-> New-> Project. Potem pa na Visual C# -> Office ter izberiteWord 2003 Add-In.
Seveda lahko izberete tudi novejši addin če to želite.

Word AddIn projekt

v Solution Explorerju imam sedaj prikazan naš projekt:

Solution explorer

Izberemo ThisAddIn.cs in dobimo kodo:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}

V metodo Startup dodamo kodo, ki se izvede ob zagonu Add-Ina(npr. klik na gumb), Shutdown pa ko zaključimo.
Sedaj bomo naredili gumb za AddIn in ga dodali v File menu v Word. Čeprav je AddIn za Word 2003 deluje tudi v 2008.

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{

const MsoControlType menuItem = Office.MsoControlType.msoControlButton;
var mainMenuBar = Application.CommandBars.ActiveMenuBar;
mainMenuBar.Reset(); //reset menu bar

var myControl = (Office.CommandBarButton)Application.CommandBars["File"].Controls.Add
(menuItem, missing, missing, 1, true);

myControl.Style = Office.MsoButtonStyle.msoButtonCaption;
myControl.Caption = “My button”;
myControl.Tag = “mz button”;

//meotda gumba
myControl.Click +=
MyButtonMethod; //ob kliku na gumb se bo sprožila metoda  MyButtonMethod

}

private void MyButtonMethod(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)
{
MessageBox.Show(“To je moj AddIn!”);
}

Metoda nam bo ob klicu izpisala tekst… sedaj pritisnemo F5 oz debug in se nam mora odpreti Word.
Kliknemo na File in najti moramo My button.

My button

Kliknemo nanj in potem dobimo message box:

Message box

Sedaj lahko s tem dodatkom urejamo tekst, pošiljamo ali kopiramo dokument, ter še marsikaj.

Tako… to je bil na kratko od AddIn-ih za word. Če imate kakšna vprašanja pa kar komentirajte.

  • Share/Bookmark

Dodaj komentar 9.07.2009

Prejšnja objava


Kategorije

Povezave

Viri