To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
Mistrzowie.org Forum Oficjalne
forum zrzeszające użytkowników serwisu mistrzowie.org

Samopomoc - C++

Moris299 - 2016-06-24, 18:27
Temat postu: C++
som tu jakieś eksperty ?
jak to zrobić żeby działało, przy kompilacji wyskakuje błąd


tutaj jakiś kod


datab = Serial.read();

if(datab != -1) {
Serial.println(datab);


const char *msg = datab;


i dalej też kod


i wyskakuje błąd w czerwonej lini
exit status 1
array must be initialized with a brace-enclosed initializer

widzu - 2016-06-24, 18:37

1) Wstaw cały kod
2) Może być łaskawie powiedział CO to ma robić? :troll:

icywind - 2016-06-24, 18:39
Temat postu: Re: C++
Moris299 napisał/a:
som tu jakieś eksperty ?
jak to zrobić żeby działało, przy kompilacji wyskakuje błąd


tutaj jakiś kod


datab = Serial.read();

if(datab != -1) {
Serial.println(datab);


const char *msg = datab;


i dalej też kod


i wyskakuje błąd w czerwonej lini
exit status 1
array must be initialized with a brace-enclosed initializer

Kod mówi o inicializowaniu tablicy a ty wstawiasz fragment kodu w którym tego w ogóle nie robisz

widzu - 2016-06-24, 18:40

A poza tym, czy ty nie próbujesz czasem wczytać całego wyrazu do pojedynczego chara?
icywind - 2016-06-24, 18:45

widzu napisał/a:
A poza tym, czy ty nie próbujesz czasem wczytać całego wyrazu do pojedynczego chara?

To działa jako wskaźnik na początek wyrazu z tego co się orientuje. Jaki typ danych zwraca Serial.read();?

[ Dodano: 2016-06-24, 18:48 ]
Jeśli w tym rzeczywiście błąd to pewnie datab masz niezainicializowane albo ma jakiś inny typ

Moris299 - 2016-06-24, 18:54

Kod:
// transmitter.pde
//
// Simple example of how to use VirtualWire to transmit messages
// Implements a simplex (one-way) transmitter with an TX-C1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@airspayce.com)
// Copyright (C) 2008 Mike McCauley
// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>
int datab;

void setup()
{
    Serial.begin(9600);      // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);    // Bits per sec
}

void loop()
{

    datab = Serial.read();

    if(datab != -1) {
        Serial.println(datab);

       
    const char *msg = datab;


    digitalWrite(13, true); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, strlen(msg));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13, false);
    delay(200);

    }
}



to jest cały kod
i to ma odbierać dane z bluetooth i wysyłać je za pomocą fal 433mhz poprzez mikrokontroler Arduino

[ Dodano: 2016-06-24, 18:55 ]
osobno wysyłanie i odbieranie działa, problem mam tylko z tą jedną linijką że nie mogę wstawić zmienej jako msg

icywind - 2016-06-24, 18:57

No to przypisujesz inta do wskaźnika na chara

[ Dodano: 2016-06-24, 18:58 ]
dej tak
std::string s = std::to_string(datab);
const char *msg = s.c_str(); ;

[ Dodano: 2016-06-24, 18:59 ]
i wypieprzaj z ta zmienną globalną :pejcz:

Moris299 - 2016-06-24, 19:13



[ Dodano: 2016-06-24, 19:13 ]
ale nadal nie działa,

exit status 1
'string' is not a member of 'std'

[ Dodano: 2016-06-24, 19:14 ]
podkreśla

std::string s = std::to_string(datab);

icywind - 2016-06-24, 19:15

Moris299 napisał/a:
Obrazek

[ Dodano: 2016-06-24, 19:13 ]
ale nadal nie działa,

exit status 1
'string' is not a member of 'std'

#include <string>
;___;
Weź chociaż googluj

Moris299 - 2016-06-24, 19:20

;_;

exit status 1
Błąd kompilacji dla płytki Arduino Pro or Pro Mini.

podaj mi gotowy kod bo nie czaje chyba

icywind - 2016-06-24, 19:22

Cytat:

No przecież nie możesz zmiennej jednego typu tak po prostu przypisać do innego który nie ma nic z nim wspólnego. Jak chcesz rzutować inta na stringa?

[ Dodano: 2016-06-24, 19:22 ]
Moris299 napisał/a:
Błąd kompilacji dla płytki Arduino Pro or Pro Mini.


no to w tym ci nie pomogę xD

widzu - 2016-06-24, 19:25

C++ to gunwo.
icywind - 2016-06-24, 19:29

W ogóle co to za chujowy kompilator co przy próbie wpisania inta do stringa daje " array must be initialized with a brace-enclosed initializer"

[ Dodano: 2016-06-24, 19:32 ]
Kod:
#include <VirtualWire.h>
 #include <string>

void setup()
{
    Serial.begin(9600);      // Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);    // Bits per sec
}

void loop()
{
   int datab =  0;
    datab = Serial.read();

    if(datab != -1) {
        Serial.println(datab);

       std::string s = std::to_string(datab);
const char *msg = s.c_str(); ;



    digitalWrite(13, true); // Flash a light to show transmitting
    vw_send((uint8_t *)msg, strlen(msg));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13, false);
    delay(200);

    }
}

Na moje ten kod powinien wyglądać tak.
Dwa razy kliknąłem ctrl+s wpisując to :rofl:

[ Dodano: 2016-06-24, 19:33 ]
ale huja mi ta płytka to pewnie gdzieś indziej błąd zrobiłeś

[ Dodano: 2016-06-24, 19:38 ]
widzu napisał/a:
C++ to gunwo.

To pisz w C xD

[ Dodano: 2016-06-24, 19:46 ]
Spróbuj jeszcze tak to zamienić http://stackoverflow.com/...ring-on-arduino
i wywal tego include string
Ale nie wiem dlaczego mam używać googli(i mózgu) za ciebie

Moris299 - 2016-06-24, 19:56

no nie działa
macbed - 2016-06-24, 19:57

icywind napisał/a:

#include <string>
;___;

Kurwa Morys, podstawy xD

[ Dodano: 2016-06-24, 19:57 ]
PASCAL > C++

Moris299 - 2016-06-24, 19:58

potrzebuje tylko zamienić

to:
const char *msg = "hello";

(tak jest w oryginale) na takie żeby zamiast "hello" mogło wysłać wartość ze zeminnej datab

icywind - 2016-06-24, 19:58

macbed napisał/a:
icywind napisał/a:

#include <string>
;___;

Kurwa Morys, podstawy xD

[ Dodano: 2016-06-24, 19:57 ]
PASCAL > C++

Assembler > wszystko

[ Dodano: 2016-06-24, 20:01 ]
Moris299 napisał/a:

potrzebuje tylko zamienić

to:
const char *msg = "hello";

(tak jest w oryginale) na takie żeby zamiast "hello" mogło wysłać wartość ze zeminnej datab

No ale ta zmienna jest kurwa intem
Dałem ci link bo ta pieprzona płytka może coś inaczej mieć.
Masz String(n)
czyli daj const char *msg = String(datab); i powiec co wyskakuje

[ Dodano: 2016-06-24, 20:06 ]
Albo zmień na String msg

Moris299 - 2016-06-24, 20:12

icywind napisał/a:
jest kurwa intem


a czym powinno być? może kwestia przekształcenia jakoś tego datab

macbed - 2016-06-24, 20:12


Moris299 - 2016-06-24, 20:13

exit status 1
cannot convert 'String' to 'const char*' in initialization

[ Dodano: 2016-06-24, 20:13 ]
xDDDDDDDDDDD



Powered by phpBB modified by Przemo © 2003 phpBB Group