|
Apologies for the shouting but this is important.
When answering a question please:
- Read the question carefully
- Understand that English isn't everyone's first language so be lenient of bad spelling and grammar
- If a question is poorly phrased then either ask for clarification, ignore it, or mark it down. Insults are not welcome
- If the question is inappropriate then click the 'vote to remove message' button
Insults, slap-downs and sarcasm aren't welcome. Let's work to help developers, not make them feel stupid.
cheers,
Chris Maunder
The Code Project Co-founder
Microsoft C++ MVP
|
|
|
|
|
For those new to message boards please try to follow a few simple rules when posting your question.- Choose the correct forum for your message. Posting a VB.NET question in the C++ forum will end in tears.
- Be specific! Don't ask "can someone send me the code to create an application that does 'X'. Pinpoint exactly what it is you need help with.
- Keep the subject line brief, but descriptive. eg "File Serialization problem"
- Keep the question as brief as possible. If you have to include code, include the smallest snippet of code you can.
- Be careful when including code that you haven't made a typo. Typing mistakes can become the focal point instead of the actual question you asked.
- Do not remove or empty a message if others have replied. Keep the thread intact and available for others to search and read. If your problem was answered then edit your message and add "[Solved]" to the subject line of the original post, and cast an approval vote to the one or several answers that really helped you.
- If you are posting source code with your question, place it inside <pre></pre> tags. We advise you also check the "Encode "<" (and other HTML) characters when pasting" checkbox before pasting anything inside the PRE block, and make sure "Use HTML in this post" check box is checked.
- Be courteous and DON'T SHOUT. Everyone here helps because they enjoy helping others, not because it's their job.
- Please do not post links to your question into an unrelated forum such as the lounge. It will be deleted. Likewise, do not post the same question in more than one forum.
- Do not be abusive, offensive, inappropriate or harass anyone on the boards. Doing so will get you kicked off and banned. Play nice.
- If you have a school or university assignment, assume that your teacher or lecturer is also reading these forums.
- No advertising or soliciting.
- We reserve the right to move your posts to a more appropriate forum or to delete anything deemed inappropriate or illegal.
cheers,
Chris Maunder
The Code Project Co-founder
Microsoft C++ MVP
|
|
|
|
|
I am replacing physical cable (RS232 /EIA232) connecting PC (host/server) to a remote device (client) with Bluetooth.
According to many resources – if I use “rfcomm” - as part of the (wireless) solution I need to also have “virtual (serial) port”. I need to keep the RS232 communication configuration , irregardless if rfcomm does not care about it. It needs to pass the data in SAME format as the cable did.
My PC has these “devices” - one real USB to serial device and one USB to Bluetooth device.
I am asking the forum - how do I assign – in C /C++ code the USB to serial device as “virtual serial port “?
I am using QT QSerialPort example code application and having trouble identifying the “virtual port” to use in C / C++ code , I do not want to use command to do so.
Any suggestions / code example would be appreciated , very much.
PS
Some documents use term pty ("pseudo-teletype" ) – is that a same as “virtual” port ?
Still need to know how to assassin ...if so.
https://unix.stackexchange.com/questions/127259/what-is-the-tty-major-number-of-your-unix/127260#127260
Bus 001 Device 021: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P
Bus 001 Device 020: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
|
|
|
|
|
I am using several code examples
to find local Bluetooth adapters
to "bind " to local Bluetooth adapter
to build "client server"
to start rfcomm server
to scan for and find remote Bluetooth devices
to "bind to serial port" ....
to build "socket"...
to listen or send a message to connected device / adapter
I cannot find a single example how to actually
exchange messages in real connection
at this point a simplex exchange would work
send a message from "local adapter" to "remote device "...
...listen for response from remote device
rinse and repeat...
I am not sure want to get into "client / server / host " discussion.
A simple C/C++ code example would be great.
And if I asked this before or I am in wrong pew (again) - keep your comments to yourself - no need to rub it in.
Cheers
|
|
|
|
|
|
been there , done that
08:31:50: Starting /home/nov25-1/Qt/Nov26/Examples/Qt-5.15.2/bluetooth/build-btchat-Desktop_Qt_5_15_2_GCC_64bit-Debug/btchat...
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
qt.bluetooth.bluez: Missing CAP_NET_ADMIN permission. Cannot determine whether a found address is of random or public type.
but it is conceptually sound and usable
if I can get rid of this missing
CAP_NET_ADMI permission
it is hard to concentrate on passing / setting for serial ACSII code when the example is so buggy....
Thanks
|
|
|
|
|
I got the
Missing CAP_NET_ADMIN permission
hacked...
Now if the QT btchat app "finds the remote devices" I'll be a happy camper.
|
|
|
|
|
Member 14968771 wrote: I am not sure want to get into "client / server / host " discussion.
Member 14968771 wrote: keep your comments to yourself - no need to rub it in
Granted. You now have 2 wishes left.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I have two "code examples" about Bluetooth.
One sort of works "scanning for REMOTE DEVICES" , the other wants to "connect" to "REMOTE SERVICE" but fails to do so .
Neither one mentions "pairing"...nowhere in code.
I cannot find a decent description on HOW the code should be sequenced
local adapater - remote "device " - pair - connect ?
Can somebody just answer the following questions?
1. Can I "scan for REMOTE DEVICE " without pairing with local adapter?
(Reference to "RTFM" would actually be appreciated - in this case ONLY )
2. It is my understanding the Bluetooth DEVICE can have SPECIFIC "class of service" , hence
"scanning for (remote ) DEVICE " and "getting the (remote ) DEVICE "class of service " are not the same.
Am I wrong? Yes or no would be sufficient answer.
Please - no reference "go ask somewhere else" or "google it " or "RTFM" ....
Happy festivus....
|
|
|
|
|
Greetings Kind Regards May I please inquire will an appreciable/significant/useful/meaningful overall speed performance difference result comparing two PCs each w/ same version intel i7 same memory size i.e. 16GB same SSD for purpose of software development i.e. compile/link/build durations one w/ DDR3 memory other w/ DDR4 memory Thank You Kindly
|
|
|
|
|
There is only one way to find out.
|
|
|
|
|
Programming tool temporarily running on RAMDISK would benefit from higher bandwidth for file i/o during multi-threaded compiling and have much better random-access latency than SSD. But instead of upgrading RAM, you could buy a better CPU cooler and give it a bit overclock for cores & caches and have better performance in everything, not just compiling.
Because, CPU cache is used well in compiling codes because codes are converted to graphs of commands. Traversing graphs cause a lot of re-used data from memory that is mainly the CPU cache.
|
|
|
|
|
I have one instance set up and working on another computer I did all the same steps (at least I think) to set it up on another computer, it works with CPU detection, but since it's an i3 I am trying to get the GPU detection working I am using an EVGA 1070 and I get this error on the log screen.
Object Detection (YOLO): (General Exception) : CUDA error: an illegal memory access was encountered
I am not sure how to troubleshoot the issue, I cloned the hard-drive from the working machine downloaded the 1070 driver and still received the same error.
I appreciate any help you have to give.
|
|
|
|
|
Hi all,
Soon we will move to a different building with 2 +/- 100 square meters floors.
I want to have a mesh wifi network covering all the house / 2 floors.
That is the topology I am planning:
Second floor ==> Optical fiber ---> ISP ROUTER (working as ONT, configured in bridge mode/single point) ---> Unmanaged SWITCH [2 computers C1 and C2, a printer P1, a MESH ROUTER (alien amplifi, orbi...), a CAT 6 cable to another unmanaged switch at the first floor].
First Floor ==> unmanaged switch [2 computers C3 and C4, a printer P2, a MESH ACCESS POINT].
Questions:
Can we do this?
I mean can we connect the ISP router set in bridge mode to a switch and then connect a few devices AND the MESH ROUTER to that switch?
If one of the devices is a long cable to another switch on the first floor and there, we plug the MESH ACCESS POINT and several other devices...
Would C1 (computer on the second floor) be able to see C4 (computer on the first floor)?
Would the Mesh access point be connected to the MESH router using the physical cable?
Hope all this makes any sense.
Thank you all for your time and help.
|
|
|
|
|
Up front ( follow established rules and READ the post )
I am not sure this question belongs here
and I am getting nowhere in other forums - so please no
"try such and such..."
If you do not know the answer , DO NOT reply, please.
I am using Linux terminal to enter this command
xterm -e bluetoothctl
the result is a "window " where I can double click (anywhere) on selected text (word) and such text - entire word - will highlight.
I like to further process the highlighted text and I am unable to find out HOW .
Since the resulting "window" reacts to the mouse click I am guessing there is a
process resulting in highlighting the entire word.
Please help me to solve this, any help leading to solution will be appreciated.
modified 22-Nov-22 3:42am.
|
|
|
|
|
You'll probably hate me for answering to your post without giving you the answer you want.
But it doesn't exist.
When your application sends out some text on a serial line, going to a teletype or CRT or whatever, it sends that text away. The text on your screen is not the string in your application. It is a copy of a string in your application - a copy that has been sent away.
Imagine yourself sending a letter (in the paper sense) to a friend. This friend picks up his yellow marker to highlight a couple words that you wrote; he might refer to those words when replying to you. You are asking for a way to change the letter you sent him a day or two ago, in the words that your friend highlighted. You can't. The words are no longer under your control.
The xterm highlighting you see is completely independent of your application. xterm is like a remote friend of the application: The text(copy) belongs to xterm, and it is xterm doing the highlighting, completely out of the control of the application. Whatever your xterm wants to do with the highlighted word(s), it can do. Essentially, it can copy the word(s) into a copy/paste buffer and paste it in as part of the input so that you don't have to type it on the keyboard. The application knows nothing about this copy/paste business and sees the paste as if it was typed.
If you want your application to be aware of highlighting done by the user, xterm is not the right tool You will have to write your own X11 client. It may look quite similar to that xterm client at the UI, but it will have a very different interface to your application, not trying to emulate an RS232 connected dumb terminal, the way xterm does.
|
|
|
|
|
Thanks you for such nice contribution to the solution.
I appreciate that.
Your analogy is plausible, however , it does not explain how
clicking on the text highlights it – if it is "gone" / does not exist per your explanation.
It is physically there and mouse click "finds it" and highlights the entire word.
I did not wanted to complicate things in my post, but
I can enter this into terminal
bluetotthctl
and since my terminal code actually runs as a new , separate process , under running C++ application I can
"capture " the stdout. The "problem " is it includes control characters and I really do not want to deal with removing them – BUT I have a code which does it. That is not the issue.
My actually xterm command line includes many options, one of them being "tee" to temporary text file.
I can analyze this temp file, but would prefer to use the existing graphical output to "drag and drop" the highlighted word selection.
|
|
|
|
|
Member 14968771 wrote: Your analogy is plausible, however, it does not explain how clicking on the text highlights it – if it is "gone" / does not exist per your explanation. It does not exist in your application (well, your application may still have the original, from which a copy was sent to xterm, but that is a different object). But xterm saves in its own buffer the output it receives from the application. It uses the contents of the buffer to redraw the window, say, if you resize it, or scroll the text up and down.
This text buffer belongs to xterm. It is not accessible to your application. The highlighting is done in this buffer, by xterm.
All you input and output goes through xterm (as long as your focus is in the xterm window). xterm knows where you click your mouse, and knows the size of character cells in its window (they are all the same, at least in classic xterm). Calculating from the mouse coordinates which character cell was clicked is trivial. (If you use variable-width font, it is just semi-trivial.) xterm starts at from this character and looks at the preceding and following characters in its text buffer. As long as they are 'word characters', it adds highlight to it and searches forward, but stops on whitespace, punctuation etc.
If you could monitor the connection between xterm and your application when you mark the word, you would see none. The marking is something xterm does for itself, alone.
I haven't been working with xterm for a number of years, and don't remember all the details, but like most *nix-born applications, it has a ton of options. I guess that you can tell xterm to give you all the raw input - certainly from the keyboard, so that your application can interpret copy (mark) and paste keystrokes, but maybe even mouse input. Your problem is that xterm manages its own scrolling, word wrapping etc. and your application cannot know where it has placed the output text you gave it. So even if you get the mouse click position, you don't have the information to know which word the cursor was pointing at.
If I understand your need correctly (and you do not want to give your application its own tailor made X-based user interface), the simple but somewhat pedal driven way to do it is to open a text editor with a new empty file (or one where you want to add another log record), mark the text in your xterm window, and then past them into the file in the text editor. There are multiple ways to mark text in xterm - single, double, triple click, mouse drag etc.
By *nix conventions marked text is put into the copy&paste buffer. I believe (not 100% sure) that even the Windows version of xterm is *nix like; it doesn't require any ctrl-C to copy the text. Pasting into the text editor file (or any other *nix style application) is usually done with the middle mouse button (or left, if you have no middle). If you run in Windows environment, and the text editor is a Windows application, be prepared to use ctrl-V or some menu selection to paste the text.
And again: If you monitor the communication between your application and xterm, there is no trace of the copy&paste into the text editor file. The copying is a private matter between xterm and the editor.
If you have as a requirement that your application must be aware of the copy&paste, you have to abandon xterm and straight command line output, and give your application its own X-based GUI. That will complicate it significantly. If you go for that solution, do not attempt to program at the X.11 level - that is like 'GUI assembly coding'. Find some X.11 based library / GUI platform. I haven't made a *nix GUI since Motif was the standard library, but most likely, today it has competition from about 42 alternative libraries, all open source, free for you to study the source code 
|
|
|
|
|
"Selecting" is an illusion; screen coordinates interpreted by the OS, then the framework (which gives it context), and lastly the application.
There's nothing to "grab" except pixels unless you have a hook into the framework or app. The "device" knows nothing of the software that drives it; and that's why you're in the wrong forum, again.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
That is just a feature of the Window that displays the text, and most Window types have that feature. So unless the window allows you to copy/cut the highlighted text you are out of luck.
|
|
|
|
|
My current , working multiOS system is doing as good as expected , however, periodically I get a system crash with error messages indicating RAID timeout.
The "problem " is - I have only ONE functioning RAID 5 - according to "mdadm".
The "failing" device is "md10" which , from experience, does not mean anything - the md devices numbering is done by Ubuntu/ Linux OS and it is unpredictable.
BUT I know "md10" does not exist....mdadm said so.
The question - how do I delete / tell Linux to delete/ no use , non used RAID "md10" ?
|
|
|
|
|
I have a grub menu continually having an option of OS which is " missing the kernel " .
I have removed the offending OS partition and run "update-grub".
The "missing kernel OS" did not get detected , however , after reboot
it is still in grub menu.
|
|
|
|
|
Insisting your Linux / Bluetooth issues are "hardware and device" issues ... because that's "your choice". You think that will help your case?
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
|
Is there a real Bluetooth guru here who can help / lead me to an answer ?
After many trips to RTFM I still cannot find how to disable current agent .
I actually turned Bluetooth off in my Linux OS and still getting this
q5@q5-desktop:~$ bluetoothctl
Agent registered
[CHG] Controller 00:15:83:15:A2:CB Class: 0x00000000
[CHG] Controller 00:15:83:15:A2:CB Powered: no
[CHG] Controller 00:15:83:15:A2:CB Discovering: no
[bluetooth]# quit
q5@q5-desktop:~$ bluetoothctl
Agent registered
[bluetooth]#
Here is what quit / exit do
quit Quit program
exit Quit program
I really need a "first usage of the command response" - when the agent is not registered.
( In case somebody have the stupid idea -
GO ask somewhere else - I AM ASKING HERE AND THAT IS MY CHOICE - so deal with it )
|
|
|
|
|