#18 peter
Ahoj, dovolím si nesouhlasit, řídicí systém SIMOTION se programuje v programovacím jazyku podobném např. Pascalu. Tomáš
Příspěvky odeslané z IP adresy 88.100.249.–
Ahoj, chci vytvořit databázi v Accessu, kde by bylo možné sdružovat a editovat soubory Excelu, týkající se rodokmenů. Excel soubory mají podobu: http://www.email.cz/web-office/fsAUOa6PXwZov7SoZFqu3Q0M_3stSUE7ow8d6ujgE2Bv2g2v_SsnLLqp_LPGNQg_48EU668/Pokus.xls. Budu rád za jakýkoliv odkaz pro návod/tutorial k dané problematice. Předem děkuji za odpověď
#3 Evzen
.NET proto, protože ho mám na svém PC nainstalovaný pod verzí 2.0. Když jsem se snažil nainstalovat .NET 1.0, tak mi to napsalo: https://novy.email.cz/download/i/V1da_v39wzTGyjRDG-NLIBBMazxgExPn923AAJ5GmvP-4HxqQ-J8dJ8yIXQrPq2Ahko5jFA/Windows%20Installer.bmp , tak nevím, jestli to má nějakou spojitost s výše zmíněným problémem - těžko říct.
Dobrý den, nainstaloval jsem si příslušný program a po spuštění se mi zobrazilo:
Víte o jakou databázi by se mohlo jednat? Předem děkuji za odpověď
Dobrý den, nainstaloval jsem si příslušný program a po spuštění se mi zobrazilo:
Víte o jakou databázi by se mohlo jednat? Předem děkuji za odpověď
#2 hlucheucho
http://cs.wikipedia.org/wiki/MCU_8051_IDE
Zdravím, stáhnul jsem si MCU 8051 IDE, ale nemůžu najít příklady v assembleru, kde bych si mohl otestovat simulátor jednoduchých elektronických periferií: ledky, LED displaye, maticové LED displaye, LCD displaye, atd. Můžete mi prosím poradit? Předem děkuji za odpověď
Zdravím.
Zadání: http://www.youtube.com/watch?v=fpwuqDVwcsM&feature=player_embedded
Přílohy: http://czshare.com/2855804/P%C5%99%C3%ADlohy.zip
Postup:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
AnalyzerThread analyze = new AnalyzerThread();
Recorder rec = new Recorder();
public Form1()
{
InitializeComponent();
//změna rozsahu osy X1
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Maximum = 2000;
//změna rozsahu osy Y1
chart1.ChartAreas[0].AxisY.Minimum = -1;
chart1.ChartAreas[0].AxisY.Maximum = 1;
//změna rozsahu osy X2
chart2.ChartAreas[0].AxisX.Minimum = 0;
chart2.ChartAreas[0].AxisX.Maximum = 500;
//změna rozsahu osy Y2
chart2.ChartAreas[0].AxisY.Minimum = 0;
chart2.ChartAreas[0].AxisY.Maximum = 0.6;
}
//graf pro vykreslení zvuku v časové oblasti
public void vykresli(LinkedList<float> samples_measured)
{
foreach (float sample in samples_measured)
{
if (chart1.Series[0].Points.Count > 1000) // ptám se, zda-li řada vzorků neobsahuje více než 1000 vzorků, které chci zobrazit na ose X
chart1.Series[0].Points.RemoveAt(0); // odstranění vzorku z řady
chart1.Series[0].Points.AddY(sample); // přidávání dat do grafu
}
analyze.AddSamples(samples_measured.ToArray());
}
//graf pro vykreslení frekvenčního spektra
private double step_WK;
public void vykresli_fft(double[] samples_fft) // přichází pole s oboustranným FFT spektrem, proto níže /2 (stačí pouze jednostranné spektrum)
{
if (chart2.InvokeRequired) // zde se ptám, jestli je graf pro FFT volán z jiného vlákna, podmínka platí, když metodu volám z jiného vlákna
{
FFTSamplesProcessed new_handler = new FFTSamplesProcessed(vykresli_fft); // vytvářím nový objekt stejného typu, jak je událost, kde mám vypoč. FFT
this.Invoke(new_handler, new object[] { samples_fft }); // zde do nového objektu dám data, které posílá druhé vlákno a současně vyvolávám tuto metodu na vlákně, na kterém běží vykreslování
}
else
{
chart2.Series[0].Points.Clear(); // vymazání grafu
for (int i = 0; i < (samples_fft.Length / 2); i++)
{
chart2.Series[0].Points.AddXY((i * step_WK), samples_fft[i]); // vykreslování po bodech
}
}
}
//tlačítko pro uzavření aplikace
bool appRunning = false;
private void button1_Click(object sender, EventArgs e)
{
if (appRunning)
rec.StopRecording();
if (analyze.IsAnalyzerRunning)
analyze.Stop();
Application.Exit();
}
//tlačítko pro zastavení nahrávání
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = !button2.Enabled;
button3.Enabled = true;
chart1.Enabled = false;
}
//tlačítko pro spouštění nahrávání
private void button3_Click(object sender, EventArgs e)
{
button3.Enabled = !button3.Enabled;
button2.Enabled = true;
chart1.Enabled = true;
}
//tlačítko pro FFT
private void button4_Click(object sender, EventArgs e)
{
if (button4.Text == "START")
{
analyze.Start();
button4.Text = "STOP";
}
else
{
analyze.Stop();
button4.Text = "START";
}
}
//vybrané zařízení
private int mic_id = 0;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
this.mic_id = comboBox1.SelectedIndex;
}
//nastavení limitu
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
numericUpDown1.Maximum = 100;
numericUpDown1.Minimum = 0;
}
//zisk
private void progressBar1_Click(object sender, EventArgs e)
{
}
//napěťová špička
private void label1_Click(object sender, EventArgs e)
{
}
}
}
P.S.: funkčnost 0!
Zdravím, dovolil jsem si upravit kód:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
AnalyzerThread analyze = new AnalyzerThread();
Recorder rec = new Recorder();
public Form1()
{
InitializeComponent();
//změna rozsahu osy X1
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Maximum = 2000;
//změna rozsahu osy Y1
chart1.ChartAreas[0].AxisY.Minimum = -1;
chart1.ChartAreas[0].AxisY.Maximum = 1;
//změna rozsahu osy X2
chart2.ChartAreas[0].AxisX.Minimum = 0;
chart2.ChartAreas[0].AxisX.Maximum = 500;
//změna rozsahu osy Y2
chart2.ChartAreas[0].AxisY.Minimum = 0;
chart2.ChartAreas[0].AxisY.Maximum = 0.6;
}
//graf pro vykreslení zvuku v časové oblasti
public void chart1_Click(LinkedList<float> samples_measured)
{
foreach (float sample in samples_measured)
{
if (chart1.Series[0].Points.Count > 1000)
chart1.Series[0].Points.RemoveAt(0);
chart1.Series[0].Points.AddY(sample);
}
}
//graf pro vykreslení frekvenčního spektra
private double step_WK;
public void chart2_Click(double[] samples_fft)
{
if (chart2.InvokeRequired)
{
FFTSamplesProcessed new_handler = new FFTSamplesProcessed(chart2_Click);
this.Invoke(new_handler, new object[] { samples_fft });
}
else
{
chart2.Series[0].Points.Clear();
for (int i = 0; i < (samples_fft.Length / 2); i++)
{
chart2.Series[0].Points.AddXY((i * step_WK), samples_fft[i]);
}
}
}
//tlačítko pro uzavření aplikace
bool appRunning = false;
private void button1_Click(object sender, EventArgs e)
{
if (appRunning)
rec.StopRecording();
if (analyze.IsAnalyzerRunning)
analyze.Stop();
Application.Exit();
}
//tlačítko pro zastavení nahrávání
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = !button2.Enabled;
button3.Enabled = true;
chart1.Enabled = false;
}
//tlačítko pro spouštění nahrávání
private void button3_Click(object sender, EventArgs e)
{
button3.Enabled = !button3.Enabled;
button2.Enabled = true;
chart1.Enabled = true;
}
//tlačítko pro FFT
private void button4_Click(object sender, EventArgs e)
{
if (button4.Text == "START")
{
analyze.Start();
button4.Text = "STOP";
}
else
{
analyze.Stop();
button4.Text = "START";
}
}
//vybrané zařízení
private int mic_id = 0;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
this.mic_id = comboBox1.SelectedIndex;
}
//nastavení limitu
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
numericUpDown1.Maximum = 100;
numericUpDown1.Minimum = 0;
}
//zisk
private void progressBar1_Click(object sender, EventArgs e)
{
}
//napěťová špička
private void label1_Click(object sender, EventArgs e)
{
}
}
}
Můžete mi prosím poradit: u FFTSamplesProcessed se mi vypsalo: The type or namespace name 'FFTSamplesProcessed' could not be found. Předem děkuji za odpověď
Zdravím
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//public Boolean AutoScale {get;set;}
//změna rozsahu osy X1
if(chart1.Series[0].Points.Count > 30)
{
if (chart1.Series[0].Points.Count > 30)
chart1.Series[0].Points.RemoveAt(0);
chart1.Series[0].Points.AddY(30);
chart1.ChartAreas["Default"].AxisX.Minimum = 0;
chart1.ChartAreas["Default"].AxisX.Maximum = 2000;
}
//změna rozsahu osy Y1
chart1.ChartAreas["Default"].AxisY.Minimum = -1;
chart1.ChartAreas["Default"].AxisY.Maximum = 1;
//změna rozsahu osy X2
if (chart2.Series[0].Points.Count > 30)
{
if (chart2.Series[0].Points.Count > 30)
chart2.Series[0].Points.RemoveAt(0);
chart2.Series[0].Points.AddY(30);
chart2.ChartAreas["Default"].AxisX.Minimum = 0;
chart2.ChartAreas["Default"].AxisX.Maximum = 500;
}
//změna rozsahu osy Y2
chart2.ChartAreas["Default"].AxisY.Minimum = 0;
chart2.ChartAreas["Default"].AxisY.Maximum = 0.6;
}
//graf pro vykreslení zvuku v časové oblasti
private void chart1_Click(object sender, EventArgs e)
{
foreach (float vzorky in samples_measured)
{
if (chart1.Series[0].Points.Count > 1000) // jestli je zobrazenych vice vzorku tak prvni vymaz
chart1.Series[0].Points.RemoveAt(0);
chart1.Series[0].Points.AddY(30); // vykresleni vzorku do grafu
}
try
{
var fpb = Math.Abs(samples_measured.Max());
if ((fpb > 0) & (fpb < 1)) ;
verticalProgressBar1.Value = Convert.ToInt16(fpb * 100);
}
catch (Exception)
{
MessageBox.Show("Nema data"); throw;
}
analyze.AddSamples( samples_measured.ToArray() );
}
//graf pro vykreslení frekvenčního spektra
private void chart2_Click(object sender, EventArgs e)
{
if (chart2.InvokeRequired)
{
FFTSamplesProcessed new_handler = new FFTSamplesProcessed(zobraz_vysledek_fft);
this.Invoke(new_handler, new object[] {samples_fft});
}
else
{
chart2.Series[0].Points.Clear();
for (int i = 0; i < (samples_fft.Length / 2); i++)
{
chart2.Series[0].Points.AddXY((i * step_WK), samples_fft[i]);
}
}
}
//tlačítko pro uzavření aplikace
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = !button1.Enabled;
}
//tlačítko pro zastavení nahrávání
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = !button2.Enabled;
button3.Enabled = true;
chart1.Enabled = false;
}
//tlačítko pro spouštění nahrávání
private void button3_Click(object sender, EventArgs e)
{
button3.Enabled = !button3.Enabled;
button2.Enabled = true;
chart1.Enabled = true;
}
//tlačítko pro FFT
private void button4_Click(object sender, EventArgs e)
{
if (button4.Text == "START")
{
analyze.Start();
button4.Text ="STOP" ;
}
else
{ analyze.Stop();
button4.Text = "START";
}
}
//vybrané zařízení
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label4.Text = comboBox1_SelectedIndex.ToString();
}
//nastavení limitu
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
numericUpDown1.Maximum = 100;
numericUpDown1.Minimum = 0;
}
//zisk
private void progressBar1_Click(object sender, EventArgs e)
{
}
//napěťová špička
private void label1_Click(object sender, EventArgs e)
{
}
}
}
Předem děkuji za recenzi
Nebo já se zeptám ještě jinak. Jak by se dalo realizovat comboBox1? Předem děkuji za odpověď
Nebo já se zeptám jinak. Bude stačit zakomponovat soubory Recorder.cs a FFT.cs prostým zkopírováním zdrojových souborů do WindowsFormsApplication1? Předem děkuji za odpověď
Zdravím, dostali jsme za úkol naprogramovat http://www.youtube.com/watch?v=fpwuqDVwcsM&feature=player_embedded. K tomu jsme obdrželi http://czshare.com/2855804/P%C5%99%C3%ADlohy.zip.
Můj postup:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//public Boolean AutoScale {get;set;}
//změna rozsahu osy X1
if(chart1.Series[0].Points.Count > 30)
{
if (chart1.Series[0].Points.Count > 30)
chart1.Series[0].Points.RemoveAt(0);
chart1.ChartAreas["Default"].AxisX.Minimum = 0;
chart1.ChartAreas["Default"].AxisX.Maximum = 2000;
}
//změna rozsahu osy Y1
//změna rozsahu osy X2
if (chart2.Series[0].Points.Count > 30)
{
if (chart2.Series[0].Points.Count > 30)
chart2.Series[0].Points.RemoveAt(0);
chart2.ChartAreas["Default"].AxisX.Minimum = 0;
chart2.ChartAreas["Default"].AxisX.Maximum = 500;
}
//změna rozsahu osy Y2
}
//graf pro vykreslení zvuku v časové oblasti
private void chart1_Click(object sender, EventArgs e)
{
//Recorder.cs
}
//graf pro vykreslení frekvenčního spektra
private void chart2_Click(object sender, EventArgs e)
{
//FFT.cs
}
//tlačítko pro uzavření aplikace
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = !button1.Enabled;
}
//tlačítko pro zastavení nahrávání
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = !button2.Enabled;
button3.Enabled = true;
chart1.Enabled = false;
}
//tlačítko pro spouštění nahrávání
private void button3_Click(object sender, EventArgs e)
{
button3.Enabled = !button3.Enabled;
button2.Enabled = true;
chart1.Enabled = true;
}
//tlačítko pro FFT
private void button4_Click(object sender, EventArgs e)
{
button4.Enabled = !button4.Enabled;
}
//vybrané zařízení
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
//nastavení limitu
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
numericUpDown1.Maximum = 100;
numericUpDown1.Minimum = 0;
}
//zisk
private void progressBar1_Click(object sender, EventArgs e)
{
}
//napěťová špička
private void label1_Click(object sender, EventArgs e)
{
}
}
}
Předem děkuji za odpověď
Prosím, poraďte mi
Zdravím
- vytvořte aplikaci, která bude zpracovávát zvuk nahrávaného z mikrofonu v reálném čase. Zpracování zvuku bude probíhat v časové oblasti a výsledkem bude frekvenční spektrum. Zdrojový kód pro zachytávání zvuku zvukové karty je uložen v souboru Recorder.cs, kde jsou všechny potřebné metody okomentovány. Pro správnou funkčnost této třídy musíte do do projektu zakomponovat knihovnu NAudio.dll, která je také součástí přílohy. http://msdn.microsoft.com/en-us/library/7314433t%28v=vs.80%29.aspx
- algoritmus pro zpracování zvuku je libovolny, je však doporučeno použít algoritmus rychlé fourierovy transformace FFT, který je uložený v souboru FFT.cs, zde doporučuji použít metodu RealFFT()
- výsledek vykreslete do aplikace typu WinForm (Formulářová aplikace) - Doporučuji použít Microsoft.Chart komponentu, která je určena pro vykreslování grafů. http://www.microsoft.com/downloads/cs-cz/details.aspx?familyid=130f7986-bf49-4fe5-9ca8-910ae6ea442c
- v aplikaci bude vykreslen jak původní signál tak spektrum do hlavního formulářového okna
- aplikace umožní detekci prahové hodnoty signálu - pomocí UpDown uživatelského prvku
- při detekci překročení prahové hodnoty dojde k vykreslení informace o překročení v určitém čase na obrazovku
- součástí přílohy je také třída, která vytváří druhé vlákno a používá v sobě synchronizaci pomocí třídy EventWaitHandle, což usnaďňuje poměrně velkou část řešení projektu, na studentovi tedy pouze zbývá tento kód pochopit a zakomponovat správně do svého uživatelského rozhranní
http://www.ulozto.cz/xXSvCvt/prilohy-zip
http://www.youtube.com/watch?v=fpwuqDVwcsM&feature=player_embedded
Můj postup:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//public Boolean AutoScale {get;set;}
//změna rozsahu osy X1
if(chart1.Series[0].Points.Count > 30)
{
if (chart1.Series[0].Points.Count > 30)
chart1.Series[0].Points.RemoveAt(0);
chart1.ChartAreas["Default"].AxisX.Minimum = 0;
chart1.ChartAreas["Default"].AxisX.Maximum = 2000;
}
//změna rozsahu osy Y1
//změna rozsahu osy X2
if (chart2.Series[0].Points.Count > 30)
{
if (chart2.Series[0].Points.Count > 30)
chart2.Series[0].Points.RemoveAt(0);
chart2.ChartAreas["Default"].AxisX.Minimum = 0;
chart2.ChartAreas["Default"].AxisX.Maximum = 500;
}
//změna rozsahu osy Y2
}
//graf pro vykreslení zvuku v časové oblasti
private void chart1_Click(object sender, EventArgs e)
{
}
//graf pro vykreslení frekvenčního spektra
private void chart2_Click(object sender, EventArgs e)
{
RealFFT();
}
//tlačítko pro uzavření aplikace
private void button1_Click(object sender, EventArgs e)
{
}
//tlačítko pro zastavení nahrávání
private void button2_Click(object sender, EventArgs e)
{
}
//tlačítko pro spouštění nahrávání
private void button3_Click(object sender, EventArgs e)
{
}
//tlačítko pro FFT
private void button4_Click(object sender, EventArgs e)
{
}
//vybrané zařízení
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
//nastavení limitu
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
}
//zisk
private void progressBar1_Click(object sender, EventArgs e)
{
}
//napěťová špička
private void label1_Click(object sender, EventArgs e)
{
}
}
}
Zdravím
// analog - digital prevod
// vstup .0 - pripojen trimr
// zapojena propojka Jad
// Modul IO pripojen do portu A
// Pull-Ups Off
// GNDs Off
// LEDs .0 - .7 on
// BNC Off
// Postup:
// -------
// 1. nastavit registry (staly prevod, 8 bit, unsigned)
// 2. pozorovat v debuggeru
// 3. ovladat LED podle namerene hodnoty
// 4. prevest na rizene zahajovani prevodu a pozorovani CCF
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
//--------------------------------------------------------------------------------------
//----- main ---------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
void main(void) {
EnableInterrupts; // enable interrupts
// nastaveni ATD
ATD1PE=0b00000001; //trimr je pripojen k pinu .0
//ATD1PE_ATDPE0=1; //trimr je pripojen k pinu .0
ATD1C=0b10100000; //on, 8 bit unsigned
//ATD1C_RES8=1;
//ATD1C_PRS=0;
//ATD1C_ATDPU=1;
ATD1SC=0b00100000; //staly prevod, ch0 pro prvni cast zadani
//ATD1SC_ATDCO=1;
//ATD1SC_ATDCH=0;
//...... nastav port na vystup (pripojeny LED )
//------------------------------------------------------------------------------------
//----- hlavni smycka ----------------------------------------------------------------
//------------------------------------------------------------------------------------
for(;;) {
// !!! Prvni krok - staly prevod !!!
PTAD=ATD1RH; //vycti vysledek a zobraz na portu A
/*
// !!! Druhy krok - jednorazovy prevod !!!
ATD1SC=...... spust jednorazovy prevod na ch0
// cekej na dokonceni prevodu
while (ATD1SC_CCF==0) {
}
.....=ATD1RH(ATD1R) vycti vysledek a pripadne uprav
.......... zobraz na portu A (leds)
*/
__RESET_WATCHDOG(); // feeds the dog
} /* loop forever */
/* please make sure that you never leave main */
}
Můj postup:
// !!! Druhy krok - jednorazovy prevod !!!
ATD1SC=0b00100000; spust jednorazovy prevod na ch0
// cekej na dokonceni prevodu
while (ATD1SC_CCF==0) {
}
PTAD=ATD1RH(ATD1R) vycti vysledek a pripadne uprav
.......... zobraz na portu A (leds)
Jedná se o http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08GB60.pdf