Project R/C Projectile Launcher – Motoren

Hi,

Ziel des Projektes ist es ein Ferngesteuerten Projektilwerfer zu Entwickeln. Der Projektilwerfer soll in alle Himmelsrichtungen gedreht werden und Gummigeschosse abfeuern können. Am Ende möchte ich gerne mit meinem Handy via Bluetooth oder W-LAN Befehle an ein BaegleBone geben, um den Projektilwerfer zu steuern. In Teil 1 geht es um die Motoren die ich verwenden möchte.

Continue reading

Windows Setup Mit OpenSource Tools

Vor kurzem hab ich im Büro ein kleines Tool geschrieben um binär serialisierte Protobuf Dateien von einem Gerät zu de-serialisieren. Schlussendlich wird das Tool dazu genutzt um Prüfdaten von einem Gerät in eine Textdatei zu schreiben.

Long story short: Das Tool sollte so schnell wie möglich an Kunden ausgeliefert werden, am besten als One-Click-No-Brain Download. Leider war unser InstallShield X was ich sonst für diverse Setups verwende aus Lizenzproblemen nicht verfügbar.

Ich hab mich dann kurzerhand für diverse OpenSource Software entschieden, um das Setup schnellst möglich liefern zu können

Letztendlich ist es mir gelungen ohne das ich die Tools vorher kannte relativ zügig ein kleines Setup mit Hilfe von Eclipse und NSIS zusammen zustellen. Gut ok … kleines bissl Hintergrundwissen von InstallShield – Aber an sich ist NSIS recht angenehm zu handeln.

Ich hab in meinen Installer noch eine Funktion eingebaut die das OS auf  vorhandene .NET Versionen überprüft – Das Tool das installiert werden sollte benötigt .NET 4. Falls .NET 4 nicht mindestens in der entsprechenden Version auf dem OS vorhanden ist, wird es vom Setup installiert.

Vollständiges NSIS Template:

[code lang=”c” collapse=”true”]
# NSIS Installer Script
# Template by nschoenberg 09.11.2012 07:20:15

Name "Your Product Name"

# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
!define VERSION 1.0.0.4
!define COMPANY "Your company"
!define URL http://blog.grrbrr.de

# MUI Symbol Definitions
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "MSA"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE

# .NET requirements
# Change this values for the desired .Net Version
!define DOT_MAJOR "4"
!define DOT_MINOR "0"
!define DOT_MINOR_MINOR "30319"

# Included files
!include Sections.nsh
!include MUI2.nsh

# Reserved Files
ReserveFile "${NSISDIR}\Plugins\AdvSplash.dll"

# Variables
Var StartMenuGroup

# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

# Installer languages
!insertmacro MUI_LANGUAGE English

# Installer attributes
OutFile setup.exe
InstallDir "$PROGRAMFILES\YourProductInstallationPath\"
CRCCheck on
XPStyle on
ShowInstDetails show
VIProductVersion 1.0.0.4
VIAddVersionKey ProductName "My awesome Product"
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
VIAddVersionKey CompanyWebsite "${URL}"
VIAddVersionKey FileVersion "${VERSION}"
VIAddVersionKey FileDescription ""
VIAddVersionKey LegalCopyright ""
InstallDirRegKey HKLM "${REGKEY}" Path
ShowUninstDetails show

# Installer sections
Section -Main SEC0000
SetOutPath $INSTDIR
SetOverwrite on
# Add all your files you want to install here
File "path to file\your_file.exe"
File "path to file\ico.ico"

WriteRegStr HKLM "${REGKEY}\Components" Main 1

SectionEnd

Section -post SEC0001
WriteRegStr HKLM "${REGKEY}" Path $INSTDIR
SetOutPath $INSTDIR
WriteUninstaller $INSTDIR\uninstall.exe
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateShortCut "$DESKTOP\My Shortcut.lnk" "$INSTDIR\file.exe" "" "$INSTDIR\icon.ico"
CreateDirectory "$SMPROGRAMS\$StartMenuGroup\My Awesome Product"
CreateShortCut "$SMPROGRAMS\$StartMenuGroup\My Awesome Product\My Shortuct.lnk" "$INSTDIR\file.exe" "" "$INSTDIR\icon.ico"
!insertmacro MUI_STARTMENU_WRITE_END
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
SectionEnd

# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
Push $R0
ReadRegStr $R0 HKLM "${REGKEY}\Components" "${SECTION_NAME}"
StrCmp $R0 1 0 next${UNSECTION_ID}
!insertmacro SelectSection "${UNSECTION_ID}"
GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
!insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
Pop $R0
!macroend

# Uninstaller sections
Section /o -un.Main UNSEC0000
# delete all your installed files here
Delete "path to file\your_file.exe"
Delete "path to file\ico.ico"

!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
Delete "$SMPROGRAMS\$StartMenuGroup\Galaxy Gx2 Sd Card Reader\Galaxy Gx2 Sd Card Reader.lnk"
RMDir "$SMPROGRAMS\$StartMenuGroup\Galaxy Gx2 Sd Card Reader"
Delete "$DESKTOP\Galaxy Gx2 Sd Card Reader.lnk"
DeleteRegValue HKLM "${REGKEY}\Components" Main
SectionEnd

Section -un.post UNSEC0001
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
Delete /REBOOTOK $INSTDIR\uninstall.exe
DeleteRegValue HKLM "${REGKEY}" StartMenuGroup
DeleteRegValue HKLM "${REGKEY}" Path
DeleteRegKey /IfEmpty HKLM "${REGKEY}\Components"
DeleteRegKey /IfEmpty HKLM "${REGKEY}"
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
RmDir /REBOOTOK $INSTDIR
Push $R0
StrCpy $R0 $StartMenuGroup 1
StrCmp $R0 ">" no_smgroup
no_smgroup:
Pop $R0
SectionEnd

# Installer functions

; Usage
; Define in your script two constants:
; DOT_MAJOR "(Major framework version)"
; DOT_MINOR "{Minor framework version)"
; DOT_MINOR_MINOR "{Minor framework version – last number after the second dot)"
;
; Call IsDotNetInstalledAdv
; This function will abort the installation if the required version
; or higher version of the .NET Framework is not installed. Place it in
; either your .onInit function or your first install section before
; other code.
Function IsDotNetInstalledAdv
Push $0
Push $1
Push $2
Push $3
Push $4
Push $5

StrCpy $0 "0"
StrCpy $1 "SOFTWARE\Microsoft\.NETFramework" ;registry entry to look in.
StrCpy $2 0

StartEnum:
;Enumerate the versions installed.
EnumRegKey $3 HKLM "$1\policy" $2

;If we don’t find any versions installed, it’s not here.
StrCmp $3 "" noDotNet notEmpty

;We found something.
notEmpty:
;Find out if the RegKey starts with ‘v’.
;If it doesn’t, goto the next key.
StrCpy $4 $3 1 0
StrCmp $4 "v" +1 goNext
StrCpy $4 $3 1 1

;It starts with ‘v’. Now check to see how the installed major version
;relates to our required major version.
;If it’s equal check the minor version, if it’s greater,
;we found a good RegKey.
IntCmp $4 ${DOT_MAJOR} +1 goNext yesDotNetReg
;Check the minor version. If it’s equal or greater to our requested
;version then we’re good.
StrCpy $4 $3 1 3
IntCmp $4 ${DOT_MINOR} +1 goNext yesDotNetReg

;detect sub-version – e.g. 2.0.50727
;takes a value of the registry subkey – it contains the small version number
EnumRegValue $5 HKLM "$1\policy\$3" 0

IntCmpU $5 ${DOT_MINOR_MINOR} yesDotNetReg goNext yesDotNetReg

goNext:
;Go to the next RegKey.
IntOp $2 $2 + 1
goto StartEnum

yesDotNetReg:
;Now that we’ve found a good RegKey, let’s make sure it’s actually
;installed by getting the install path and checking to see if the
;mscorlib.dll exists.
EnumRegValue $2 HKLM "$1\policy\$3" 0
;$2 should equal whatever comes after the major and minor versions
;(ie, v1.1.4322)
StrCmp $2 "" noDotNet
ReadRegStr $4 HKLM $1 "InstallRoot"
;Hopefully the install root isn’t empty.
StrCmp $4 "" noDotNet
;build the actuall directory path to mscorlib.dll.
StrCpy $4 "$4$3.$2\mscorlib.dll"
IfFileExists $4 yesDotNet noDotNet

noDotNet:
;Nope, something went wrong along the way. Looks like the
;proper .NET Framework isn’t installed.

;Uncomment the following line to make this function throw a message box right away
; MessageBox MB_OK "You must have v${DOT_MAJOR}.${DOT_MINOR}.${DOT_MINOR_MINOR} or greater of the .NET Framework installed. Aborting!"
; Abort
StrCpy $0 0
Goto done

yesDotNet:
;Everything checks out. Go on with the rest of the installation.
StrCpy $0 1

done:
Pop $4
Pop $3
Pop $2
Pop $1
Exch $0
FunctionEnd

Function .onInit
InitPluginsDir
Push $R1

File /oname=$PLUGINSDIR\spltmp.bmp images\logo.bmp
advsplash::show 1000 600 400 -1 $PLUGINSDIR\spltmp
call IsDotNetInstalledAdv
Pop $0

IntCmp $0 1 goOnWithSetup askDoInstallnet
askDoInstallnet:
${If} ${Cmd} ‘MessageBox MB_YESNO "You must have v${DOT_MAJOR}.${DOT_MINOR}.${DOT_MINOR_MINOR} or greater of the .NET Framework installed to proceed with the Setup. Do you want to install it now?" IDYES’
goto doInstallNet
${Else}
Abort
${EndIf}
doInstallNet:
ExecWait "$EXEDIR\net40\dotNetFx40_Full_x86_x64.exe"
goto goOnWithSetup
goOnWithSetup:
Pop $R1
Pop $R1
FunctionEnd

# Uninstaller functions
Function un.onInit
ReadRegStr $INSTDIR HKLM "${REGKEY}" Path
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
!insertmacro SELECT_UNSECTION Main ${UNSEC0000}
FunctionEnd
[/code]

Nachdem das Setup fertig war, habe ich mit Hilfe von 7-Zip und 7 zip Sfx maker ein Selbstextrahierendes-Archiv erstellt das nachdem entpacken automatisch das Setup startet.

Im Prinzip braucht man den 7 Zip Sfx Maker nicht, da einfach 7-Zip mit bestimmten Parametern aufgerufen wird. Aber wenn man Faul ist oder Zeitdruck hat kann ich den 7 Zip Sfx Maker nur empfehlen. Einfach vom gewünschten Inhalt (In meinem Fall das komplette Setup und dazugehörige Dateien) als 7Zip-Archiv komprimieren, in den 7 Zip Sfx Maker reinladen und fertig.

Mass Loot Provided by Bandit :D

Oh man – The War Z ist echt der Hammer ^^ Entweder jemand wollte mir eine Falle stellen oder es war Zufall das in dem Moment wo ich diesen riesigen Berg loot einsammeln wollte jemand von hinten kam. Zum Glück habe ich ihn gehört und mit der Shotgun ins Gesicht geschossen 😀 Schaut euch mein Inventar an, geil 😀 Mehr konnte ich leider nicht mitnehmen. Da lag so viel … kann eigentlich kein Zufall gewesen sein.

– 3x Large Backpack
– 1x M16
– 3x Shotgun
– 2x 9mm Magazin
– 2x B93R
– paar Heal items …

Screen_03102012_170131.jpg

Screen_03102012_171047.jpg

Windows 8 Pro Upgrade Unboxed

Mal sehen wie lange es dauert bis ich den kauf bereue – Normal heißt es ja das nur jede 2. Windows Version gut ist … bei der aktuellen Preislage von 50 € bei Mediamarkt oder 30 € direkt bei Microsoft als Download kann man aber eigentlich nicht viel falsch machen. Ich habe mir eine DVD Version bei Mediamarkt besorgt, keine Lust auf runterladen und selber brennen 🙂 Es handelt sich dabei um eine Upgrade Version von Xp / Vista / W7 zu Win8 Pro. Es gibt allerdings bereits Anleitungen wie mit der Upgrade Version eine clean Installation gemacht werden kann ( Sonst hätte ich sie wohl auch nicht gekauft, bin kein Fan von windows upgrades).

Die Box entählt die x86 sowie die x64 Version – Endlich können die weniger erfahrenen keinen Fehlkauf mehr starten … 🙂 Der kleine Schlüssel auf dem zweiten Bild ist übriegens eine kleine Pappkarte zum herausziehen … auf ihr steht der Lizenzschlüssel. *wow*

Link: How To Clean Install Windows 8 Pro Upgrade
Link: Versionsunterschiede Windows 8
Link: Windows 8 Pro Upgrade bei Microsoft für 30 € kaufen

image

image

Push your hips forward, keep your arms straight, and go as low

migrants cashing in on wild berry harvest

cash advance online Most people know that taking in protein after a workout will help to build muscles and burn fat, but the same is true for carbs. During a workout, your muscles rely on glycogen (stored carbohydrates) to fuel and power your movements, and that glycogen needs to be replenished after a workout. North Carolina State Wolfpack Jerseys “Without carbs in the equation, your body would instead break down protein and hinder muscle recovery to get that glycogen,” says Gorin. cash advance online

online payday loans The Deer Abby works well with the current vogue of casual “from the trailhead to the coffeeshop” style payday loans online, and got lots of compliments on the trail. This henley inspired women’s riding jersey has a flattering form fit cut, shorter cap style sleeves, and subtle rouching details that provide some stretch around the waist. Two small pockets in the rear can hold very small items like a bar or a phone, and display a nice pop of color contrasting inside the pocket. Maglie NBA a Poco Prezzo online payday loans

payday loans Pale skin and feelings of nausea. If things don improve, you throw up. Once you feel the symptoms coming on, motion sickness can be very difficult to stop, especially if you reached your particular point of no return once nausea sets in. “Underground Tunnels and Bases” is a book that gives some idea of the scope of the REX 84 above and underground FEMA camps for selected detainees. The facility under Denver Airport is a third the size of the Panama Canal. The murals on the walls of the Denver Airport give a hint at what is coming: dead Christians with Bibles lying on the ground with ominous looking soldiers with a sword of Omar and a Chinese machine gun standing over the dead.. nike air max pas cher payday loans

online payday loan The art here is to let the client point out the problems ones which you already know exist, and then to be ready with practical solutions. Don’t always put a price tag on your advice when new issues arise, even when that advice is outside of the scope of your current engagement. After all, your greatest value to a long standing relationship with a client, and for you is transforming a business relationship to a trust based relationship.. online payday loan

payday loans online Little used to bike commute to her job, but hadn’t ridden regularly for six years. So she found some open, quiet roads around Seattle’s Seward Park and started riding four to six days a week, building up to 4 hour long outings. A month later while walking her dog, she noticed that both of her arms were swinging freely, her head was fully rotating, and she wasn’t shuffling anymore both of which seemed impossible just 30 days prior. payday loans online

cash advance The same thing applies to children of parents who have depression or any other condition with a heritable component. “Twenty percent of these kids may develop the same disorder as their parents,” says Merikangas. So you have to be proactive. fjallraven occasion The 10 countable steps that follow will add up to victory over unwanted pounds. But don’t try them all at once.

  • Nike Air Max 2017 Dames roze
  • “It’s like renovating a house; most people do better taking one room at a time https://www.paydayloans16.com/paydayloans/,” says John Jakicic, PhD, director of the Physical Activity and Weight Management Research Center at the University of Pittsburgh. cash advance

    online loans With the popularity of smart phones and tablets, the need expanded storage to house numerous large media files has increased. A big problem is, many tablets and phones (Apple devices in particular) lack the functionality to add additional capacity via media cards, etc. And upgrading to larger capacities is very expensive as compared to adding external storage. online loans

    payday advance Get on your knees and grab a barbell with 45 lb. Canotte Denver Nuggets Plates. Maglie Orlando Magic Push your hips forward, keep your arms straight, and go as low as you can without letting your ribcage flare out keep your hips straight and squeeze your glutes the entire time. Doing walking lunges across your gym floor is next to impossible. There’s never enough room, and that girl on her cell phone has zero clue she’s standing right in your way. Nike Air Max Performing them on a treadmill removes the obstacles so that you can focus on the move and get the most from every leg burning lunge payday advance.