Audio abspielen in Cpp

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!

Audio abspielen in Cpp

Beitragvon RoboShowcase » 16 Aug 2019, 08:28

Hallo

habe mir über das offizielle Fischertechnik-Repo die TXT C-Download Beispielprojekte angesehen.


https://github.com/fischertechnik/txt_demo_c_download

Soweit funktionieren die Programme auch (Motoransteuerung). Ein Problem habe ich nun aber beim Abspielen von Audiodateien (Standard 01-Airplane Datei). Beim Ausführen des unten aufgeführten Code-Beispiels wird zunächst die Zeile
Code: Alles auswählen
"**PlaySound Action:1, Nr:1 Rep:1 Cmd: 1"
PlaySound: Sound Start
auf die Konsole geschrieben, dann erhalte ich jedoch einen Segmentation Fault.

Code: Alles auswählen
#include <stdio.h>          // for printf()
#include <unistd.h>         // for sleep()
#include <iostream>

#include "KeLibTxtDl.h"     // TXT Lib
#include "FtShmem.h"        // TXT Transfer Area

// Common debugging stuff for RoboProLib
unsigned int DebugFlags;
FILE *DebugFile;
FISH_X1_TRANSFER    *pTArea;

int main(void)
{
   if (StartTxtDownloadProg() == KELIB_ERROR_NONE)
   {
      pTArea = GetKeLibTransferAreaMainAddress();
      if (pTArea)
      {


            pTArea->sTxtOutputs.u16SoundIndex = 1;
            pTArea->sTxtOutputs.u16SoundRepeat = 1;
            pTArea->sTxtOutputs.u16SoundCmdId++;

      }
      StopTxtDownloadProg();
   }
   return 0;
}


Habe bereits verschiedene Indizes ausprobiert. Leider ohne Erfolg. Habe aktuell Firmware 4.4.4.0. Der Onlinemodus über die ROBO Pro-Umgebung funktioniert.

Hat das schon jemand hinbekommen oder kennt vielleicht eine bessere Doku als die Readme im Git?
Danke für jeden Hinweis.
RoboShowcase
 
Beiträge: 2
Registriert: 16 Aug 2019, 08:11

Re: Audio abspielen in Cpp

Beitragvon vleeuwen » 16 Aug 2019, 11:09

Hi,
I can help you with this but today I am rather busy.
Can you contact my privately?
Kind regards,
Carel
vleeuwen
 
Beiträge: 1055
Registriert: 31 Okt 2010, 23:23

Re: Audio abspielen in Cpp

Beitragvon vleeuwen » 16 Aug 2019, 23:57

My first impression is the next:
I did not test my remarks but these are my first thoughts about your code.
I will give my thoughts in the form of some questions, this to give you a main structure to discover errors and programming mistakes in the futur.

There is a big difference beween your program and the example.
The main methode is not an event handler, it is the main program that do the work and when it terminates, its roll will be over.

What is the roll of StopTxtDownloadProg?
Does the program stops and will it set the TXT back in initial state?

What is the roll of the "sleep" methodes?
What is happening when you change the parameter of the sleep methode in, for example: 4?
What is happening when the third "sleep" methode has been removed?

What will happen when you add a sleep(5) in your program after the change instruction for the TA?
Code: Alles auswählen
FISH_X1_TRANSFER    *pTArea;
   if (StartTxtDownloadProg() == KELIB_ERROR_NONE)
   {
      pTArea = GetKeLibTransferAreaMainAddress();
      if (pTArea)
      {
         for(int i = 0; i < 10; i++)
         {
            pTArea->ftX1out.duty[0] = 512;                      // Switch Motor 1 ( O1 [0] ) on with PWM Value 512 (= max power)
            [b]sleep(1);[/b]
            pTArea->ftX1out.duty[0] = 0;                         // Switch Motor 1 ( O1 [0] ) on with PWM Value 0 (= no power)
            [b]sleep(1); [/b]
            pTArea->ftX1out.duty[1] = 512;                      // Switch Motor 1 ( O1 [1] ) on with PWM Value 512 (= max power)
            [b]sleep(1); [/b]
         }
      }
      StopTxtDownloadProg();
   }
   return false;


Let me know what your findings are.
vleeuwen
 
Beiträge: 1055
Registriert: 31 Okt 2010, 23:23

Re: Audio abspielen in Cpp

Beitragvon vleeuwen » 18 Aug 2019, 01:34

Hi
This evening I perform some simple tests and my first impression is that the sound is not working.
I need to do some more tests to isolate the problem.
================================================================
The same program line is the on-line mode are working fine.

I look like that the sound thread is terminating the program unexpectedly direct after receiving the TA start sound command.
vleeuwen
 
Beiträge: 1055
Registriert: 31 Okt 2010, 23:23

Re: Audio abspielen in Cpp

Beitragvon RoboShowcase » 19 Aug 2019, 10:09

Ok thanks for the answer. The StopTxtDownloadProg remains from the example.

The sleep methods serve as the duration the engine is running till I change the signal. Besides I used them to test some functionality. For exmaple what if the programm sleeps after the audio method is called (to keep the main method alive).

At the moment I switched to the community firmware to use python, with wich the audio file is playing.
RoboShowcase
 
Beiträge: 2
Registriert: 16 Aug 2019, 08:11


Zurück zu Robo Pro / Computing / Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste