emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Exporting to FreeMind - opened in FreeMind failed


From: Csanyi Pal
Subject: Re: [O] Exporting to FreeMind - opened in FreeMind failed
Date: Mon, 09 Jul 2012 17:55:22 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

Nick Dokos <address@hidden> writes:

[snip]

> Good: if you can reproduce the problem with emacs -Q, then it's probably
> a bug in org (presumably org-freemind.el in this case). In that case, the
> best thing you can do is to trim down your input file as far as possible
> while still reproducing the problem (that's what people refer to as an ECM
> around these parts) and post that on the list with a description of what
> needs to be done.

OK
I started emacs with the command 'emacs -Q' and did the followings:

Open the Test.org file in Org mode.
Export the tree into FreeMind format with the command:
C-c C-e m

Get the Test.mm file.

In the FreeMind when I open the Test.mm file, I get the following
message: 

Error while parsing file:freemind.main.XMLParseException: XML Parse
Exception during parsing of a map element at line 80: Expected: map 

What can I do further to solve this problem?

The attached files:

***** A program testének részei
****** Változók megadása
// a piezoelektromos kristály "hangszóró" a 9-ik
// digitális tűre van csatlakoztatva
int hangszoroTu = 9;

// a hangjegyek száma a dallamban
int ahangjegyekszama = 28;

// a dallam egy sorozatban vannak megadva
// a betűk a hangjegyeket, a végén a szóköz szünetet jelent
char hangjegysor[] = "cecegg cecegg Chagfa gfedcc ";

// az egymást követő hangok hossza egy sorozatban van megadva
int hanghossza[] = { 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 
1,1,1,1,2,1,1,1,1,1,1,2,1,4 };
int sebesseg = 300;

****** szolaHang függvény
// létrehozza a szolaHang függvényt, amely megszólaltatja a hangot
// a függvény két egész számú változót kér, melyek: hang és idotartam
// a hang változó a szolaHangjegyHangja függvényben kap értéket
// Itt rezegtetjük meg a membránt!
void szolaHang(int hang, int idotartam) {

  // alább egy ismétlődő rész következik:
  // tedd, míg i kisebb (időtartam x 1000L) értékénél
  // Mi az L? Válasz itt, az U & L formatters cím alatt:
  // http://arduino.cc/en/Reference/IntegerConstants
  // i értékét növeld minden lépésben a hang változó kétszeresével
  // i += hang * 2 jelentése: i = i + hang x 2
  for (long i = 0; i < idotartam * 1000L; i += hang * 2) {
    // 5 Voltot adunk a piezoelektromos kristálynak
    digitalWrite(hangszoroTu, HIGH);
    // legyen 5V a 'hang' értékének megfelelő időhosszig
    delayMicroseconds(hang);
    // 0 Voltot adunk a piezoelektromos kristálynak
    digitalWrite(hangszoroTu, LOW);
    // legyen 0V a 'hang' értékének megfelelő időhosszig
    delayMicroseconds(hang);
  }
}

****** szolaHangjegyHangja függvény
// létrehozza a szolaHangjegyHangja függvényt, amely
// kér egy betűjel (hangjegy), és egy egész számú (idotartam) változót,
// megadja a hangjegyek neveit és a nekik megfelelő hosszúságú időtartamot,
// ameddig majd kapják a szögletes hullám MAGAS értékét.
void szolaHangjegyHangja(char hangjegy, int idotartam) {
  char hangjegynevek[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'h', 'C' };
  int hangok[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

  // lejátssza a hangjegy nevének megfelelő hangot
  for (int i = 0; i < 8; i++) {
    // ha a hangjegyeknevek sorozatból az egyik elem
    // megfelel a hangjegy változó pillanatnyi értékének
    if (hangjegynevek[i] == hangjegy) {
      // akkor hívja a szolaHang függvényt a következő változókkal
      // hangok és időtartam; itt a hangok[i] értéke
      // lesz a hang változó értéke a szolaHang függvény számára
      szolaHang(hangok[i], idotartam);
   }
  }
}

****** Beállítások
// a digitális 9-ik tű kimenetre van beállítva
void setup() {
  pinMode(hangszoroTu, OUTPUT);
}

****** Hurok rész
// ezt ismételgeti, míg le nem játszotta
// a dallam összes hangját
void loop() {
  // amíg az i változó értéke nem lesz 28, addig ismétli
  // a lenti parancsokat, vagyis lejátssza egyenként
  // a dallam hangjait
  for (int i = 0; i < ahangjegyekszama; i++) {
    // ha a hangjegysor eleme szóköz,
    if (hangjegysor[i] == ' ') {
      // akkor szünet lesz egy darabig
      delay(hanghossza[i] * sebesseg); // ez a szünet
    } else {
      // máskülönben megszólal egy hang a hangjegysorból
      // hívjuk a szolaHangjegyHangja függvényt, megadva neki a
      // a hangjegysor egyik elemét, a hang hosszát szorozva a sebességgel
      szolaHangjegyHangja(hangjegysor[i], hanghossza[i] * sebesseg);
    }

    // szünet a dallam hangjai között
    delay(sebesseg / 2);
  }
}

Attachment: Test.mm
Description: Test.mm file

-- 
Regards from Pal

reply via email to

[Prev in Thread] Current Thread [Next in Thread]