Witam robię program w C# program do sterowania anteną ,przebieg pracy programu Orbitron wysyła w jakiś sposób do sterownika MyDDE http://www.stoff.pl/orbitron/files/mydde.zip dane o satelicie azymut elewacje nazwę oraz uplink i downlink czyli częstotliwości pracy satelity znalazłem nazwy tych zmiennych w sterowniku MyDDE w pliku main.pas , następnie mój program ma przechwycić te dane i przekierować na port szeregowy
Teraz objaśnię w czym problem
Po pierwsze nie wiem w jaki sposób mój program może odebrać dane z MyDDE
Po drugie program pracuje w trybie manualnym gdzie mogę ręcznie ustawić parametry oraz w trybie śledzenie wszytko działa na bazie arduino i podpiętego do niego serva jak na razie przesłałem w trybie manualnym albo elewacje albo azymut jak przesłać i azymut i elewacje czy mam kupić drugie arduino i dać je pod inny port i zrobić o samo

Kod z Arduino

#include <Servo.h>


Servo myservo;

int val;
void setup()
{
  Serial.begin(9600);
  myservo.attach(9);
}

void loop()
{
  
}
void serialEvent()
{
  val = Serial.parseInt();
  if(val!=0)
  {
    myservo.write(val);
  }
}


Kod programu C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;

namespace Servotest
{
    public partial class Form1 : Form
    {
        SerialPort port;
        Timer t = new Timer();
        public Form1()
        {
            InitializeComponent();
            init();
        }
        
        private void init()
        {
            port = new SerialPort();
            port.PortName = "COM3";
            port.BaudRate = 9600;

            try
            {
                port.Open();
            }
            catch (Exception e1)
            {
                MessageBox.Show(e1.Message);
            }
        }
        
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            if (port.IsOpen)
            {
                port.WriteLine(trackBar1.Value.ToString());
                label4.Text = "Nachylenie Wertykalne = " + trackBar1.Value.ToString();
            }
        }
        //kod do zegara
        private void Form1_Load(object sender, EventArgs e)
        {

            
            t.Interval = 1000;  

            t.Tick += new EventHandler(this.t_Tick);

            
            t.Start();  //start timera
        }
        private void t_Tick(object sender, EventArgs e)
        {
            
            int hh = DateTime.Now.Hour;
            int mm = DateTime.Now.Minute;
            int ss = DateTime.Now.Second;

            
            string time = "";

            
            if (hh < 10)
            {
                time += "0" + hh;
            }
            else
            {
                time += hh;
            }
            time += ":";

            if (mm < 10)
            {
                time += "0" + mm;
            }
            else
            {
                time += mm;
            }
            time += ":";

            if (ss < 10)
            {
                time += "0" + ss;
            }
            else
            {
                time += ss;
            }

            //aktualizacja pola
            label2.Text = time;

        }
    }
}

screenshot-20170604214553.png

Z góry dziękuje