RasPiCar Projekt Forum

Normale Version: DABPI Plugins [beta]
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Ich habe zwar ein Polin Display aber wo kann ich da den Sound abgreifen?
Ich glaube es handelt sich um dieses Display:
http://www.pollin.de/shop/dt/NzUwOTc4OTk..._CVBS.html
@Tauri: Neue Version vom carpc-controller online. Kannst du den mal bzgl. des TDA testen? am besten per SSH o.ä. und die Konsolenausgaben posten.
Hi E-B,

super jetzt funktioniert die Initialisierung!
Die einzelnen Lautsprecherausgänge (Balance / Fader) stehen wohl beim Initialisieren auf 0, da der Ton sehr leise ist.
Ich initialisiere dann die Ausgänge mit " sudo i2cset -y 1 0x44 0x80, 0xa0, 0xe0 und 0xc0" dann ist der Ton da.
Der Eingang Input2 funktioniert beim start, schaltet auf Input2 (DABPI), nun habe ich 2 Drehencoder, auf die button eben input1 und input2 gelegt, das funktioniert leider nicht.

Hier die Ausgabe des carpc-controller:

Code:
pi@raspberrypi ~ $ Starting Events Module
init ok 5
 TDA: Initialization at:  68
TDA: No previous settings found
TDA: Volume: 20
TDA: Input: 1
DABPI: Should be there -> initializing SPI

INIT DAB
SI4688: si4688_init_mode_dab()
/opt/carpc/firmware/rom00_patch.016.bin
/opt/carpc/firmware/dab_radio_3_2_7.bif
get_sys_state answer: 0x808000c002ff
Current mode:
DAB is active
get_part_info answer: 0x808000c0000000005012000000005012000000000100
si4688_set_property(0xB501,0x00)
0x808000c0
si4688_set_property(0xB505,0x00)
0x808000c0
si4688_set_property(0xB400,0x00)
0x808000c0
si4688_set_property(0x8100,0x01)
0x808000c0
si4688_set_property(0x1712,0x01)
0x808000c0
si4688_set_property(0x1710,0x1710)
0x808000c0
si4688_set_property(0x1711,0x1711)
0x808000c0
si4688_set_property(0x800,0x03)
0x808000c0
si4688_set_property(0x300,0x3F)
0x808000c0

SET FREQ LIST
SI4688: si46xx_dab_set_freq_list(): 0x808000c0

SCAN FREQ LIST
SI4688: si4688_dab_tune_freq(0): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 0: ACQ: 1 RSSI: 47 SNR: -10        Name: DR Deutschland
SI4688: si4688_dab_tune_freq(1): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 1: ACQ: 0 RSSI: 28 SNR: -10
SI4688: si4688_dab_tune_freq(2): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 2: ACQ: 0 RSSI: 27 SNR: -10
SI4688: si4688_dab_tune_freq(3): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 3: ACQ: 0 RSSI: 27 SNR: 0
SI4688: si4688_dab_tune_freq(4): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 4: ACQ: 1 RSSI: 46 SNR: -10        Name: hr Radio
SI4688: si4688_dab_tune_freq(5): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 5: ACQ: 0 RSSI: 25 SNR: -10
SI4688: si4688_dab_tune_freq(6): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 6: ACQ: 0 RSSI: 25 SNR: 0
SI4688: si4688_dab_tune_freq(7): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 7: ACQ: 0 RSSI: 25 SNR: 0
SI4688: si4688_dab_tune_freq(8): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 8: ACQ: 0 RSSI: 23 SNR: 0
SI4688: si4688_dab_tune_freq(9): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 9: ACQ: 0 RSSI: 23 SNR: 0
SI4688: si4688_dab_tune_freq(10): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 10: ACQ: 1 RSSI: 33 SNR: -10        Name: SWR BW N
SI4688: si4688_dab_tune_freq(11): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 11: ACQ: 0 RSSI: 27 SNR: 0
SI4688: si4688_dab_tune_freq(12): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 12: ACQ: 0 RSSI: 27 SNR: 0
SI4688: si4688_dab_tune_freq(13): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 13: ACQ: 1 RSSI: 49 SNR: -10        Name: SWR RP
SI4688: si4688_dab_tune_freq(14): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 14: ACQ: 1 RSSI: 37 SNR: -10        Name: DRS BW
SI4688: si4688_dab_tune_freq(15): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 15: ACQ: 1 RSSI: 38 SNR: -10        Name: DR HESSEN
SI4688: si4688_dab_tune_freq(16): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 16: ACQ: 0 RSSI: 29 SNR: -10
SI4688: si4688_dab_tune_freq(17): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 17: ACQ: 0 RSSI: 38 SNR: -10
SI4688: si4688_dab_tune_freq(18): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 18: ACQ: 0 RSSI: 31 SNR: 0
SI4688: si4688_dab_tune_freq(19): 0x818000c0
SI4688: si4688_dab_digrad_status():
      Channel 19: ACQ: 0 RSSI: 29 SNR: 0
TestEnsemble Name: DR Deutschland
TestEnsemble ID: 0

PUSH ENSEMBLES
RADIO: Push Ensembles
RADIO: Number of Ensembles: SetProperty(DAB.Ensembles,6,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_0,DR Deutschland  ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_0,47,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_1,hr Radio        ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_1,46,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_2,SWR BW N        ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_2,33,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_3,SWR RP          ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_3,49,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_4,DRS BW          ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_4,37,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_5,DR HESSEN       ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_5,38,10000)
RADIO: ScanReady: SetProperty(DAB.ScanReady,1,10000)

TUNE FREQ
SI4688: si4688_dab_tune_freq(0): 0x818000c0

GET & PRINT SERVICE LIST
SI4688: si4688_dab_get_digital_service_list()
      List size:     513
      List version:  279
      Services:      18
      Num:  0  Service ID:     10c3  Service Name: SCHLAGERPARADIES  Component ID: 20
      Num:  1  Service ID:     15dc  Service Name: sunshine live     Component ID: 21
      Num:  2  Service ID:     15dd  Service Name: RADIO BOB!        Component ID: 22
      Num:  3  Service ID:     17fa  Service Name: Absolut relax     Component ID: 3
      Num:  4  Service ID:     1a45  Service Name: ENERGY            Component ID: 4
      Num:  5  Service ID:     1a64  Service Name: ERF Plus          Component ID: 2
      Num:  6  Service ID:     d01c  Service Name: Radio Horeb       Component ID: 5
      Num:  7  Service ID:     d210  Service Name: Deutschlandfunk   Component ID: 10
      Num:  8  Service ID:     d220  Service Name:   Component ID: 11
      Num:  9  Service ID:     d230  Service Name: DWissen           Component ID: 12
      Num: 10  Service ID:     d240  Service Name: DRadio DokDeb     Component ID: 13
      Num: 11  Service ID:     d75b  Service Name: KLASSIK RADIO     Component ID: 6
      Num: 12  Service ID: e0d00250  Service Name: DRadio Daten      Component ID: 49153
      Num: 13  Service ID: e0d010bc  Service Name: TPE  Component ID: 36864
      Num: 14  Service ID: e0d110bc  Service Name: EPG Deutschland   Component ID: 49188
      Num: 15  Service ID: e0d210bc  Service Name: MB Datacast       Component ID: 49186
      Num: 16  Service ID: e0d310bc  Service Name: TPEG_MM           Component ID: 49185
      Num: 17  Service ID: e0d410bc  Service Name: ECODyNIS Test     Component ID: 49184

PUSH SERVICE LIST
RADIO: Push Servicelist
RADIO: Number of Services: SetProperty(DAB.Services,18,10000)
RADIO: Service: SetProperty(DAB.Service_0,SCHLAGERPARADIES,10000)
RADIO: Service: SetProperty(DAB.Service_1,sunshine live   ,10000)
RADIO: Service: SetProperty(DAB.Service_2,RADIO BOB!      ,10000)
RADIO: Service: SetProperty(DAB.Service_3,Absolut relax   ,10000)
RADIO: Service: SetProperty(DAB.Service_4,ENERGY          ,10000)
RADIO: Service: SetProperty(DAB.Service_5,ERF Plus        ,10000)
RADIO: Service: SetProperty(DAB.Service_6,Radio Horeb     ,10000)
RADIO: Service: SetProperty(DAB.Service_7,Deutschlandfunk ,10000)
RADIO: Service: SetProperty(DAB.Service_8,,10000)
RADIO: Service: SetProperty(DAB.Service_9,DWissen         ,10000)
RADIO: Service: SetProperty(DAB.Service_10,DRadio DokDeb   ,10000)
RADIO: Service: SetProperty(DAB.Service_11,KLASSIK RADIO   ,10000)
RADIO: Service: SetProperty(DAB.Service_12,DRadio Daten    ,10000)
RADIO: Service: SetProperty(DAB.Service_13,TPE,10000)
RADIO: Service: SetProperty(DAB.Service_14,EPG Deutschland ,10000)
RADIO: Service: SetProperty(DAB.Service_15,MB Datacast     ,10000)
RADIO: Service: SetProperty(DAB.Service_16,TPEG_MM         ,10000)
RADIO: Service: SetProperty(DAB.Service_17,ECODyNIS Test   ,10000)

START SERVICE 1
SID: 5596 ; CID: 21
SERVICE LINKING INFO
SI4688: si4688_dab_get_service_linking_info()

COMPONENT INFO
SI4688: si4688_dab_get_component_info()

SET SYSTEM TIME
      Date: 20.1.2016 ; Time: 6:46:34
      Epoch time stamp is: 1455947194
      Setting system time...
      Done
TDA: Input: 2
Lautstärke 20
TESTING FINISHED

Beim iCarus project habe ich was nettes gesehen, zur voreinstellung des Klang´s usw.

[attachment=94]

Hier noch die gpio_description:

Code:
# Raspberry PI GPIO XBMC Controller configuration file
# Ip address of the XBMC machine
[ip]:localhost


#tda address: 0 = not connected. 68

tda:68

# Radio volume and XBMC volume are unified
unified_volume:1


#dabpi connected = 1, else: 0

dabpi:1

# Debouncing settings
click_skip:1
click_hold:500000
encoder_hold:200000

# DO NOT USE:
# PIN   GPIO    FUNCTION
# 12     18      PCM_CLK
# 16     23      SI4688 Reset
# 19     10      SPI MOSI
# 21      9      SPI MISO
# 22     25      INT
# 23     11      SPICLK
# 24      8      SPI CE0_N
# 27             ID_SD
# 28             ID_SC
# 35     19      PCM_FS
# 38     20      PCM_DIN

# Left Control
button:4:tda_input_1
#button:4:xbmcbuiltin_PlayerControl(Play)
encoder:sl:2:sr:2:clk:17:dt:27:tda_volume_down:tda_volume_up
#encoder:sl:2:sr:2:clk:27:dt:17:tda_balance_left:tda_balance_right

# Right Control
button:16:tda_input_2
encoder:sl:2:sr:2:clk:12:dt:26:radio_seek_down:radio_seek_up
#button:22:radio_seek_down
#button:27:radio_seek_up


################################################################################
#########################  CLARIFICATION ON SETTINGS  ##########################
################################################################################
# 1. Debouncing Common Settings
# click_skip - How many button press events will be ignored until the user takes the finger out of the button
# click_hold - Ho many microseconds to hold after a button was pressed
# encoder_hold - How many microseconds to hold after an encoder has been turn

# 2. Encoder settings
# sl: How many times to skip an action for the left turn of the encoder
# sr: How many times to skip an action for the right turn of the encoder
# clk: The GPIO number where the CLK pin of the encoder is hooked up
# dt: The GPIO number where the DT pin of the encoder is hooked up

# 3. Radio Commands
# A radio module is needed and a radio UDP server runing.
# A Radio command should start with fm_
#     fm_init          -> initialize fm radio with last channel
#     fm_seek_up       -> seek for the next channel      //NOT WORKING
#     fm_seek_down     -> seek for the previous channel  //NOT WORKING
#     fm_tune_up       -> tune up 100kHz                 //NOT WORKING
#     fm_tune_down     -> tune down 100kHz               //NOT WORKING
#     fm_tune:x        -> set radio frequency to x kHz
#     fm_rds_update    -> updates rds to kodi

# 4. TDA Commands
# Commands start with tda_ and and finish with one of the following commands:
# volume_up/down       -> volume up or down
# bass_up/down         -> bass up/down
# treble_up/down       -> treble up/down
# fade_front/rear      -> fade front/rear
# input_1/2/3/4        -> choose between input 1-4 (1: RPi, 2: SI4688, 3: AUX, 4: not used)

# 5. XBMX/Kodi
# xbmcbuiltin_         -> finishes with one of the built-in functions
# KB_                  -> send keyboard press

# 5. DAB Radio
# commands start with dab_
# dab_init             -> initialize dab
# dab_scan             -> Scans the national frequency blocks of germany
# dab_scan_int         -> Scans all frequency blocks
# dab_ensemble:x       -> tunes to one of the reachable ensembles/frequency
# dab_start_service:x  -> starts a service
#
#

Gruß Tauri
@Tauri: Das Problem mit dem Umschalten der Inputs sollte behoben sein. Ich hatte in der gpio_description "tda_input_x" als Befehl angegeben, aber der Controller kannte nur "tda_inputx". Jetzt läuft beides über die Version mit Unterstrich.

Das mit dem Initialisieren von Balance und Fade muss ich wohl nochmal genauer testen, kann ich allerdings erst, wenn mein Basteltisch fertig ist. Ich habe da jetzt eine Initialisierung programmiert, aber weiß nicht ob die läuft.

Soweit ich das sehe, müsste ja dann bei dir auch ein DAB-Sender laufen wenn alles durch ist?


Zum Design: An sowas hatte ich von Anfang an gedacht, allerdings erfordert das ein wenig mehr Aufwand an der Plugin-Programmierung. Ich wollte zuerst nur die simpelsten Funktionen umsetzen. Problematisch werden auch die Schieberegler, ich weiß nicht ob und wie das in Kodi funktioniert.
Hi E-B,

die Inputs laufen jetzt, aber nur mit: tda_input1, habe bedes getestet, mit Unterstrich (tda_input_1) läuft nicht.

Das mit Balance und Fade ist in der Testphase erst mal kein Problem, stelle es von Hand ein. Habe im moment nicht gerade viel Zeit (wegen Hauskauf). Mach dir keinen Stress bau erst mal deinen Basteltisch um.

Ja, wenn der carpc-controller durch ist, läuft ein DAB-Sender.

Ein Design für das Plugin mit Schiebereglern wäre super, man kann das ICarus image ja mittlerweile downloaden, da es auf Kodi basieren soll, könnte man sich das dort mal anschauen oder?

Gruß Tauri
Was ich nicht ganz versteh, mit dem gewöhnlichen Radio Plugin (standart)
Funktioniert die Soundausgabe (Wechsel von Radio zu Video oder Musik), wird dies
in diesem Plugin anders Initialisiert das es nicht mehr Funktioniert oder habe ich was
falsch gemacht?
Hallo E-B

bei mir tut der addon nicht:
Hier ein Auszug aus kodi-log
Zuerst wechsel zum Plugin:

Code:
20:20:46 T:1961480192   DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.program.radioDAB/)
20:20:46 T:1961480192   DEBUG:   ParentPath = [addons://sources/executable/]
20:20:46 T:1751118864   DEBUG: StartScript - calling plugin DAB Radio plugin('plugin://plugin.program.radioDAB/','1','')
20:20:46 T:1751118864   DEBUG: WaitOnScriptResult - waiting on the DAB Radio plugin (id=8) plugin...
20:20:46 T:1734341648  NOTICE: Thread LanguageInvoker start, auto delete: false
20:20:46 T:1734341648    INFO: initializing python engine.
20:20:46 T:1734341648   DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): start processing
20:20:46 T:1734341648  NOTICE: -->Python Interpreter Initialized<--
20:20:46 T:1734341648   DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): the source file to load is "/home/pi/.kodi/addons/plugin.program.radioDAB/addon.py"
20:20:46 T:1734341648   DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): setting the Python path to /home/pi/.kodi/addons/plugin.program.radioDAB:/usr/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PIL:/usr/lib/python2.7/dist-packages/gtk-2.0:/usr/lib/pymodules/python2.7
20:20:46 T:1734341648   DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): entering source directory /home/pi/.kodi/addons/plugin.program.radioDAB
20:20:46 T:1734341648   DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): instantiating addon using automatically obtained id of "plugin.program.radioDAB" dependent on version 2.1.0 of the xbmc.python api
20:20:46 T:1734341648  NOTICE: DAB: Setting: 'DAB.ScanReady', '0'

Dann ein Scan-Versuch:

Code:
20:22:41 T:1734341648  NOTICE: DAB: 0
20:22:42 T:1734341648  NOTICE: DAB: 1
20:22:43 T:1734341648  NOTICE: DAB: 2
20:22:44 T:1734341648  NOTICE: DAB: 3
20:22:45 T:1734341648  NOTICE: DAB: 4
20:22:45 T:1961480192   DEBUG: ------ Window Deinit (Pointer.xml) ------
20:22:46 T:1734341648  NOTICE: DAB: 5
20:22:47 T:1734341648  NOTICE: DAB: 6
20:22:48 T:1734341648  NOTICE: DAB: 7
20:22:49 T:1734341648  NOTICE: DAB: 8
20:22:50 T:1734341648  NOTICE: DAB: 9
20:22:51 T:1734341648  NOTICE: DAB: 10
20:22:52 T:1734341648  NOTICE: DAB: 11
20:22:53 T:1734341648  NOTICE: DAB: 12
20:22:54 T:1734341648  NOTICE: DAB: 13
20:22:55 T:1734341648  NOTICE: DAB: 14
20:22:56 T:1734341648  NOTICE: DAB: 15
20:22:57 T:1734341648  NOTICE: DAB: 16
20:22:58 T:1734341648  NOTICE: DAB: 17
20:22:59 T:1734341648  NOTICE: DAB: 18
20:23:00 T:1734341648  NOTICE: DAB: 19
20:23:01 T:1734341648  NOTICE: DAB: 20
20:23:02 T:1734341648  NOTICE: DAB: 21
20:23:03 T:1734341648  NOTICE: DAB: 22
20:23:04 T:1734341648  NOTICE: DAB: 23
20:23:05 T:1734341648  NOTICE: DAB: 24
20:23:06 T:1734341648  NOTICE: DAB: 25
20:23:07 T:1734341648  NOTICE: DAB: 26
20:23:08 T:1734341648  NOTICE: DAB: 27
20:23:09 T:1734341648  NOTICE: DAB: 28
20:23:10 T:1734341648  NOTICE: DAB: 29
20:23:11 T:1734341648  NOTICE: DAB: 30
20:23:12 T:1734341648  NOTICE: DAB: break
20:23:12 T:1734341648   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                            - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                           Error Type: <type 'exceptions.ValueError'>
                                           Error Contents: invalid literal for int() with base 10: ''
                                           Traceback (most recent call last):
                                             File "/home/pi/.kodi/addons/plugin.program.radioDAB/addon.py", line 299, in onControl
                                               num_ens = int(xbmcgui.Window(10000).getProperty('DAB.Ensembles'))
                                           ValueError: invalid literal for int() with base 10: ''
                                           -->End of Python script error report<--

Hast Du eine Idee?

Gruß
Robin
So Nun Sound habe ich jetzt auch von DAB geschaft Smile

Nun alles läuft sofern man das ständige Init Ignoriert oder das Manuelle umschalten der Inputs Smile
Hast du den Controller absichtlich so angepasst das er beim Starten die DAB sender sucht?
Hi alle zusammen,

ich bin noch bis Ende Mai mit meiner BA beschäftigt, wollte trotzdem einen kurzen Zwischenstand geben, was ich so nebenbei noch geschafft habe (nicht viel, aber immerhin etwas). Kurz gesagt: Addons liegen erstmal auf Eis weil der controller neu geschrieben werden sollte.

Da die Änderungen am carpc-controller immer größer und unübersichtlicher wurden habe ich angefangen ihn neu zu programmieren. Das wäre dann die v3 und die ist zu 95% in C++ geschrieben und soll möglichst leicht zu erweitern sein. Geplant ist, dass jedes Hardwaremodul auch standalone läuft, sodass sich jeder sein Wunschsystem zusammenstellen kann. Das Grundgerüst steht soweit und die ersten Klassen sind vollständig implementiert.

Ein weiteres (größeres) Schlamassel sind die Kodi Addons: Die waren schnell zusammengeschrieben und was die Kommunikation mit dem Controller angeht eher suboptimal gelöst. Geplant ist jetzt, alles an Daten im Controller in C++ zu verarbeiten und die Python Addons nur als Anzeige zu nutzen.
Falls jemand Erfahrung mit IPC hat oder eine Idee, wie ich möglichst schnell und elegant Structs/Vektoren (vielleicht sogar Objekte?) zwischen C++ und Python austauschen kann wäre ich für jeden Tipp dankbar.
Hallo E-B, gibt es zu diesem Projekt schon Fortschritte oder wurde das Projekt abgebrochen?

Gruss Schnibli
Seiten: 1 2 3 4 5