Archiv für den Monat: Juli 2012

RingtonePlayer

Viele von Euch kennen bestimmt noch die Nokia Klingeltöne von früher. Mit einem Mono-Lautsprecher (Piezo) werden durch modulation von Frequenz und Dauer, verschiedene Töne ausgegeben. Dies sind sogenannte RTTTL Klingeltöne.

Ich habe für den Gadgeteer einen kleinen Treiber geschrieben um Töne, Titel, Playlisten abzuspielen. Das ganze untermalt mit RGB-LEDs und dem LED7R.

Die RGB-LEDs kennzeichnen Ton (grün) und Pausen (rot). Zusätzlich ist der Farbwechsel unterschiedlich (Playlist/Titel).

Das LED7R ist eine Art Ladebalken für die Dauer des Tons. Hier wird bei einer Pause auch die mittlere (rote) LED geschalten.

 

Zur Projektseite…

Von |2018-05-25T14:14:42+02:002012-07-13|Gadgeteer, NETMF, Projekte|

Music Box

Eine neue Kategorie ist geboren…

Aber was ist eine Music Box und was hat es mit Programmieren zu tun?

Eine Music Box ist eine kleine Drehorgel. Zu der kleinen Music Box gibt es auch eine Stanze mit der man aus (beiliegenden) Streifen, selbst Musik komponieren kann.

Der große Hype in der Internetgemeinde kam wohl als der bekannte Nerd-Shop ThinkGeek ein Set anbot.

Da der Versand aus Amerika mir aber zu teuer war, hab ich mir eine andere bei Amazon gekauft. Gefällt mir auch viel besser, da in einer Holzbox verbaut. Die Qualität ist sehr gut. Leider sehe ich gerade dass nur die gelbe Version vorrätig ist.

Das Set besteht aus:

  • Music Box
  • Locher
  • 10 Streifen Notenblätter
  • Vorgelochte Version von Happy Birthday

Für knapp 30€ ist das ganze für ein Spielzeug nicht ganz billig, aber es macht Spaß!

Als Langhaariger ist es mir des öfteren passiert dass mir Leute eine Gitarre in die Hand drücken und ich nicht spielen kann (ok, Smoke On The Water geht  :silly: ).

Nun habe ich mein Instrument gefunden und versuche öfters darüber zu bloggen und auch Notenblätter Lochstreifen online zu stellen.

Mit programmieren hat es auch bisl was zu tun. Es sind zwar 15bit (Ton) zur Verfügung aber man kommt damit zu recht :biggrin:

Von |2012-07-05T21:31:14+02:002012-07-05|Music Box|

PagePdf

Das Script fügt einen Menüpunkt im Seitennavigator hinzu. Mit dieser Action könnt ihr ein PDF von einer oder mehrer Seiten erstellen. Alle einzelnen PDFs werden im Zielordner gespeichert. Es werden auch Ordner für Strukturkennzeichen erzeugt.

 

PagePdf (1481 Downloads )

 

using System.Diagnostics;
using System.Windows.Forms;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;

public class PagePdf
{
    [DeclareMenu]
    public void MenuFunction()
    {
        Eplan.EplApi.Gui.ContextMenu oMenu =
            new Eplan.EplApi.Gui.ContextMenu();

        Eplan.EplApi.Gui.ContextMenuLocation oLocation =
            new Eplan.EplApi.Gui.ContextMenuLocation(
                "PmPageObjectTreeDialog",
                "1007"
                );

        oMenu.AddMenuItem(
            oLocation,
            "PDF erstellen",
            "PagePdf",
            true,
            false
            );
    }

    [DeclareAction("PagePdf")]
    public void PagePdfVoid()
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();
        CommandLineInterpreter oCLI = new CommandLineInterpreter();
        ActionCallingContext acc = new ActionCallingContext();

        if (fbd.ShowDialog() != DialogResult.OK)
        {
            return;
        }

        Progress oProgress = new Progress("SimpleProgress");
        oProgress.SetAllowCancel(true);
        oProgress.SetAskOnCancel(true);
        oProgress.BeginPart(100, "");
        oProgress.ShowImmediately();

        try
        {
            string strPages = string.Empty;
            acc.AddParameter("TYPE", "PAGES");
            oCLI.Execute("selectionset", acc);
            acc.GetParameter("PAGES", ref strPages);

            foreach (string CurrentPage in strPages.Split(';'))
            {
                if (!oProgress.Canceled())
                {
                    acc.AddParameter("TYPE", "PDFPAGESSCHEME");
                    acc.AddParameter("PAGENAME", CurrentPage);
                    acc.AddParameter("EXPORTFILE", fbd.SelectedPath + @"\" + CurrentPage);
                    acc.AddParameter("EXPORTSCHEME", "EPLAN_default_value");
                    oCLI.Execute("export", acc);
                }
                else
                {
                    oProgress.EndPart(true);
                    return;
                }
            }
            Process.Start(fbd.SelectedPath);
            oProgress.EndPart(true);
        }
        catch (System.Exception ex)
        {
            oProgress.EndPart(true);
            MessageBox.Show("Error", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }

}

 

Von |2017-11-09T12:23:47+01:002012-07-03|EPLAN, EPLAN-Scripts|
Nach oben