» »

[c#] naloga za maturo...rabim majhno pomoc

[c#] naloga za maturo...rabim majhno pomoc

TitanX ::

Upam da nisem na napacni kraj postavo to temo :)

Imam en problem, za cetrti predmet pri maturi sem dobil nalogo za izdelat vmesnik dvo kanalni osciloskop ki bo meril oba kanala na zvocni kartici.

Problem je v tem da sploh ne vem kak bi se lotil. Delal bom v Visual studio.net okolju c#.
A obstaja kaksn tool v c# da bi lahko izrisovalo tako kot na osciloskopi? pa kako bi signale iz kanalov usmero v vmesnik da bi dobil neke podatke za izrisovanje

lepo bi prosil za vsakrsno pomoc!

hvala ze v naprej ;)

lp

titan
  • spremenilo: snow ()

strictom ::

Najtežje kar ti zna bit je snifat tista dva kanala. Tista dva grafa že nardiš pol da prikazuje neke vrednosti.
"Violence is the last refuge of the incompetent" - Salvor Hardin

ql000 ::

Upam, da ti bo olajšalo izziv:
klik

Smo pazi, ko boš meril signale, da ne boš kar na pamet žice pritikal. Malo si na netu še poglej kako boš sondo oblikoval. Za začetek si zloadaj kak že zbildan osciloskop, in naštudiraj sondo. Potem se loti zgornjega linka. Ko boš prišel tako daleč, da boš videl signal ti samo še ostane nekaj malega matematike in eyecandy.

TitanX ::

ql000 hvala za link in pomoc ;)

glede sonde pa tega pa niti ne rabim tega delat...sem se se mal pozanimal pa morem nekak z uporabo directX-a preko aplikacijskega vmesnika da ne bo pomote brez kakrsnih koli zic :)

ce imas se kaj podobnega temu bi se priporocal ;)

se enkrat hvala

Hardstyle ::

To pa je kr krepka naloga za maturo. S kere šole si?

TitanX ::

solski center novo mesto
elektrotehnik racunalnistva

ql000 ::

Eeeeem, meni nekaj ni jasno... kaj pa boš meril, če ne potrebuješ sond?!

P.S.
Jaz sem tudi hodil v Novo mesto, na strojno. Smrk, to so bili časi ;)!

sverde21 ::

A ni že povedu kaj bo meril?
...ki bo meril oba kanala na zvocni kartici

Če jst tole prav zastopim bi on rad glede na input na zvočni (line in & mic) risu kaj se dogaja.
<?php echo `w`; ?>

ql000 ::

Ma, jaz imam bolj občutek, da ni čisto razjasnjeno KAJ se bo merilo. Upam, da se motim. :D

mHook ::

Dva kanala sta verjetno mišljena kot stereo (levi in desni) na Line In vhodu.

TitanX ::

am ja...ne morem vam nevem kako pojasnit ker niti ne vem kak se sam :)

nalogo sem dobil da morem preko aplikacijskega vmesnika merit levi in desni kanal na stereo zvocni kartici..tako je...

nobene sonde nic kablov...baje da z pomocjo DirectX-a sem prasal profesorja danes

sam...se zmer se mi ne sanja kak bi se loto tega...za izgled vem ko je ql000 pokazal tisti program..super izgled...podoben izgled bo mel moj program

naj se enkrat ponovim...merit morem levi in desni stereo kanal izhodni torej izrisovat mi bo moglo isto kot npr pri kaksnem music playerju tisti osciloskop ko nabija ce ste kaj pozornost usmerli v tisto stvarco...tocno to rabim jaz samo da ne bo player ampak bo osciloskop v katermu bom mogo verjetno narihtat da se bo X in Y premikala...kot pravi osciloskop v glavnem...

ql000 ::

Glej TitanX, hočeš meriti levi in desni kanal na zvočni kartici - do tukaj vse v redu. Levi in desni kanal na zvočni kartici predstavljata dva kanala preko katerih pripelješ nek signal (električni, zvočni) v PC. Ti govoriš o uporabi ActiveX komponente, ampak to je samo programersko orodje s katerim boš ti realiziral programerski del posla. Naj ti razčlenim:

__|__|__|__|____||||___ - to je recimo nek električni signal, tega pripelješ preko sonde (čisto navadna žica z ustreznim RC filtrom, lahko je samo upor) pripelješ preko zvočne kartice, prvega ALI drugega kanala v računalnik. Tukaj prevzame delo PC oziroma TVOJ program, ki uporablja ACTIVEX komponento s katero ti DOSTOPAŠ do zvočne kartice, da lahko BEREŠ signal. Če boš meril zvok, pač ne potrebuješ drugega kot mikrofon. Ko enkrat SIGNAL vidiš fizično na monitorju si že skoraj zmagal. Glej, zrihtaj si pri profesorju kakšen matlab, noter imaš osciloskop, ki zna brati iz zvočne kartice. Pa najprej si razčisti pojme. Programiranje (C#, ActiveX,...) je samo orodje s katerim ti REALIZIRAŠ neko nalogo, ki je v tvojem primeru jedro problema. Vprašaj se KAJ JE TISTO kar bi rad videl v tvojem programu. Če ne boš uporabljal sonde, mikrofona - orodja s katerim zajameš informacijo o objektu, ki ga meriš, boš videl samo ŠUM. To pa ravno ni nek dosežek ne?

Glej, najprej zagrabi tega tvojega profesorja in naj ti jasno razloži cilje naloge v smislu:
- kaj se meri (zvok, digitalni električni signal,...) --> iz tega boš vedel KAJ boš uporabil za meritve,

- moj predlog je, da mogoče v tej fazi zanemariš C# ampak raje poizkusiš z Matlabom, boš hitreje prišel čez, pa bol ti bo jasno.

In, če ti ta profesor ne zna jasno definirati ciljev in ti ne zna povedat vsaj osnov, mi verjemi, da je temu še manj jasno kot tebi.

TitanX ::

evo sem se pozanimal kaj tocno morem naredit...
sem se odloco da vas sprasujem po problemih...

kako bi lahko dobil signal v program tako kot npr. dobi winamp signal za tisti osciloskop?

pa se prasal bi kako lahko .dll vstavim v program?

@ql000: nujno morem delat v c#...nevem zakaj..ampak tak je reko profesor


hvala

ql000 ::

No, sej počasi bomo kam prišli. :D Ok, dozdaj je jasno, da boš meril zvok, torej potreboval boš samo mikrofon. Če ga nimaš bo za prvo silo dobra tudi slušalka. Delal boš v C#, upam, da ga že kaj poznaš, drugače te čaka strma krivulja. Če boš iskal po googlu kako dll uporabčljat v C# kodi išči pod: using unmanaged dll C#. Tukaj imaš primer iz neke moje kode:

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace Console_Test_Dll
{
    class Program
    {
        [DllImport(@"c:\Documents and Settings\Darinka\My Documents\Visual Studio 2005\Projects\Console Test Dll\Console Test Dll\simpledll.dll")]
        public static extern Int16 TestSum(Int16 input1, Int16 input2);
        [DllImport(@"c:\Documents and Settings\Darinka\My Documents\Visual Studio 2005\Projects\Console Test Dll\Console Test Dll\simpledll.dll", EntryPoint = "ScalarFun", ExactSpelling = true)]
        public static extern short ScalarFun(float input1, out Single input2);

        static void Main(string[] args)
        {
            Int16 Vsota;
            Int16 status;

            System.Console.WriteLine("Test 1. DLL funkcije...\n");

            Vsota = TestSum(22,99);

            System.Console.WriteLine("Vsota : {0}", Vsota);

            System.Console.WriteLine("\nTest 2. DLL funkcije... \n");

            Single target;
            
            status = ScalarFun(-6.2F, out target);

            System.Console.WriteLine("Vrnjen status: {0}", status);
            System.Console.WriteLine("Vrnjena vrednost {0}: ", target);
        }
    }
}




Koda v C-ju:
// simpledll.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}

extern "C" {
// deklaracija funkcij:
_declspec (dllexport) long ScalarFun(float scalar_input, float *scalar_output);
_declspec (dllexport) long VectorFun(float *vec_input, float *vec_output, long N);
} //extern "C"

// koda:

_declspec (dllexport) long ScalarFun(float scalar_input, float *scalar_output)
// funkcija enostavno preveri vhod. &#200;e je manj kot 0.0, vrne status -1, sicer 0. 
{
	
	if(scalar_output == NULL)
		return -1;

	*scalar_output = scalar_input*2.0f;

	if (scalar_input < 0.0f)
		return -2;
	
	return 0;
}

_declspec (dllexport) long VectorFun(float *vec_input, float *vec_output, long N)
// funkcija prekontrolira argumente in prepiše input v output:
{
	if(vec_input==NULL)
		return -1;
	if(vec_output==NULL)
		return -2;
	if(N<=0)
		return -3;
	long i;
	for(i=0; i<N; i++)
		vec_output[i] = vec_input[i];
	return 0;
}

TitanX ::

takrat sem cisto zbrkal ja....

evo to so navodila oz neka razlaga kaj je treba narest


citiram: "zajem signala gre preko zvocne kartice, ki se v njej digitalizira (vzorci) da se dobi iz analognega vhodnega signala digitalen signal. Pri tem se lahko uporabi ali MIC vhod ali LINE-IN vhod, predlagam pa LINE-IN, saj je malce bolj občutljiv pa tudi vhodna upornost je primernejša...Skratka, za samo testiranje priklopis na vhod neko muziko, pa ce dobis ze to, da se ti krivulja premika si ze zmagal. Potem pa naredimo sondo, ti prilagodis GUI in rata osciloskop".

cekr ::

Če prav razumem, moraš narediti nakaj podobnega kot je v kakšnem programu za obdelavo zvoka, kjer ti kaže krivuljo?

Le da imaš ti samo za prikazat, ni pa potrebno nič obdelovat.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]

TitanX ::

tak nekak ja sej pol ce bo treba kaj obdelovat bom se prasal :) zdej glavni problem je tole zajemanje prikazal bom itak v picturebox-i krivuljo ze mam narjeno

cekr ::

Kje poskusi najti kakšen gradnik, ki ima celotno zadevo že vgrajeno. Potem pa samo vežeš vir nanj in si rešil problem.

Mogoče bi lahko to že rešil z vgradnjo mediaplayer gradnika z dodanim plug-inom za osciloskop.

Ne se pa kaj preveč naprezat z lastno rešitvijo, ker boš samo izgubljal živce in čas.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]

TitanX ::

al rabim lastno resitev ce je projektna naloga za maturo

sprogramirat morem vse sam...mogoce kje kasn header lahko sunem..tega se ne vem..sem prasal mentorja ce lahko uporabim kje kaksn header kater je izven programskega jezika (kje doma narejen)

ql000 ::

Prvič: v C# ni headerjev (aleluja, kar se mene tiče),
Drugič: Sej sem ti že prvič dal link na CodeProject pa tam ponucaj kar ti paše. Noben programer, ne gre spet vsake najmanše piz***** sam programirat. Topla voda. Poglej kaj imajo drugi, uporabi dele, ki so ti všeč in nadgradi program. Vse ostalo je pogruntavanje tople vode.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )

Oddelek: Programiranje
6810165 (5903) technolog
»

uporaba C++ unmanaged kode v C#.NET projektu

Oddelek: Programiranje
111861 (1584) krho
»

C# in slika iz kamere

Oddelek: Programiranje
61292 (1176) ql000
»

[C#] Sesutje aplikacije

Oddelek: Programiranje
111556 (1391) Jean-Paul
»

[.NET ali c#] ne najdem dokumentacije

Oddelek: Programiranje
81376 (1222) atasmrk

Več podobnih tem