Hi,
I finished program for controlling my quadcopter for linux machine and it works.
#include <SFML/Network.hpp>
#include <SFML/Window.hpp>
#include <iostream>
sf::UdpSocket socket;
sf::Packet paczka;
int id = 1; // 1 -> pc, 2 -> dron
sf::IpAddress odbiorca = "localhost";
unsigned short port = 54321;
#define rcthr z
#define roll x
#define pitch y
#define yaw r
#define high v
int old_roll = 0;
int old_rcthr = 0;
int old_pitch = 0;
int old_yaw = 0;
int old_high = 0;
void wypisywanie(int x, int y, int z, int r)
{
std::cout << "\nroll(x): " << x << " pitch(y): " << y << " rcthr(z): " << z << " yaw(r): " << r;
}
void push() {
if (socket.send(paczka, odbiorca, port) != sf::Socket::Done)
{
std::cout << "ERROR\n";
}
}
int main()
{
int sygnal = 2;
//odbiorca = "localhost";
sf::Joystick::update();
int button = sf::Joystick::getButtonCount(0);
std::cout << "znalazlem" << button << "przyciskow";
while (true)
{
sf::Joystick::update();
int roll = sf::Joystick::getAxisPosition(0, sf::Joystick::X);
int pitch = sf::Joystick::getAxisPosition(0, sf::Joystick::Y);
int rcthr = sf::Joystick::getAxisPosition(0, sf::Joystick::Z);
int yaw = sf::Joystick::getAxisPosition(0, sf::Joystick::R);
int high = sf::Joystick::getAxisPosition(0, sf::Joystick::PovY);
yaw *= -1;
rcthr *= -1;
rcthr += 100;
// wypisywanie(roll,pitch, rcthr, yaw, high);
// if ( (roll != old_roll) or (pitch != old_pitch) or (rcthr != old_rcthr) or (yaw != old_yaw) or (high != old_high) ) {
wypisywanie(roll, pitch, rcthr, yaw);
paczka.clear();
paczka << sygnal << id << roll << pitch << rcthr << yaw;
push();
sf::Time t = sf::seconds(0.05f);
sf::sleep(t);
// }
}
//std::cout << sf::Joystick::Count;
return 0;
}
But when I tried to compile it on Windows machine I allways get ERROR after every end of line printed by "push" function. I dont know if there is a problem with my Visual Studio 2013 configuration or Windows 8 safty stuff (I've got Windows firewall and antivirus off). Do You get the same error with this code?
Thanks in advance!