Jump to content

KenHorse

Members
  • Posts

    70
  • Joined

  • Last visited

Everything posted by KenHorse

  1. I found the fix On the Debian 12 server, I added the following to /etc/ssh/sshd_config HostKeyAlgorithms +ssh-rsa PubkeyAcceptedKeyTypes +ssh-rsa As this server is on a private LAN, security isn't an issue
  2. These errors are from running the script from the command line
  3. I've been using the following script snippet to connect to a remote server in order to run lm-sensors on the remote server and it's worked fine (I've changed the IP and password for this post of course) $connection = ssh2_connect('xxx.xxx.xxx.x', 22); ssh2_auth_password($connection, 'root', 'xxxxxx'); if($output = ssh2_exec($connection, 'sensors')) { stream_set_blocking($output, true); $x = stream_get_contents($output); } This script runs on a Debian 10 machine and the remote server USED to also be Debian 10 but it was recently upgraded to Debian 12 (Bookworm) and now the script reports the following errors: PHP Warning: ssh2_connect(): Error starting up SSH connection(-5): Unable to exchange encryption keys in /var/www/html/get_temp.php on line 3 PHP Warning: ssh2_connect(): Unable to connect to xxx.xxx.xxx.x in /var/www/html/get_temp.php on line 3 PHP Warning: ssh2_auth_password() expects parameter 1 to be resource, bool given in /var/www/html/get_temp.php on line 4 PHP Warning: ssh2_exec() expects parameter 1 to be resource, bool given in /var/www/html/get_temp.php on line 6 I can connect using ssh from the command line (ssh @ xxx.xxx.xxx.x) and that works fine. I'm not a total newbie to Linux but I'm no expert either so any help would be appreciated
  4. Did you ever do a SEND version? That's what I need. PHP to read a binary file and xmodem send it to an embedded processor
  5. Yea I know it's an old protocol but still... Anyone figure out how to do it in PHP? Searching the forum turns up nothing xmodem related
  6. Ok thanks. Guess I'm too much of a noob. Sorry for wasting your time
  7. As my OP said, I'm using php_serial_class, which is loaded in global.php (hence the include): require_once("php_serial.class.php"); // Let's start the serial class $serial = new phpSerial; $comport = "/dev/ttyUSB0"; $serial->deviceSet($comport); // We can change the baud rate $serial->confBaudRate(19200); $serial->confParity("none"); $serial->confCharacterLength(8); $serial->confStopBits(1); $serial->confFlowControl("none"); // Then we need to open it $serial->deviceOpen(); //clear out crap $serial->sendMessage("\r"); $serial->sendMessage("\r"); sleep(0.1); // Or to read from //$read = $serial->readPort(); //to send to //$serial->sendMessage("data to send"); // If you want to change the configuration, the device must be closed //$serial->deviceClose(); //and then reopened Also, $stuff is not yet used but I plan on using it in the function after I get passed this issue As for $timediff, yes. I have not defined it yet. Again, I need to get passed this to clean other things up (I guess I should point out that this code was originally written by someone else long before PHP 7.0 was released. I'm trying to get it functional under 7.3xxx but I am certainly not overly fluent in PHP yet)
  8. function checkInput($stuff){ $starttime = microtime(true); while($read =="" && $timediff < '5'){ $read = $serial->readPort(); $substring = substr($read,0,1); //echo "SubString " . "$substring"; if($substring =="-"){ print"<CENTER><H2>We encountered an error when sending $read". "Please close window and try again</H2></CENTER>"; $noDataToSend ="False"; exit(); } $endtime = microtime(true); $timediff = $endtime - $starttime; if($substring =="+"){ //if ACK received, reset timer $starttime = microtime(true); }else{ if($substring !=""){echo "Substring " . "$substring\r\n";} } if($timediff > '4'){ print"<CENTER><H2>No response from the Station. Please close this window, check your serial connections and try again</H2></CENTER>"; $noDataToSend ="False"; exit(); } sleep(0.1); }//while } //end function And the line calling it: $senddata = "122222"; $serial->sendMessage("$senddata\r"); checkInput($senddata); Yes, I am not currently using the passed parameter ($stuff) but am planning to after I fix this problem
  9. It's the actual call to the class $read = $serial->readPort();
  10. BTW, PHP version is 7.3.29-1 So I changed the variable in the Function: function checkInput($stuff){ No change PHP Fatal error: Uncaught Error: Call to a member function readPort() on null in /var/www/controlserial.php:371
  11. outdated? How else do you include other files? (admittedly, I am not overly well versed in PHP but do a lot with VB)
  12. I have a file (global.php) that used by many different other files in a project I'm doing. This file contains many things including connecting to a MySQL database as well as loading a php_serial_class. So at the top of php file that needs these resources, I use include("global.php"); In one of those other php files, I also have a function that I'm using that calls the php_serial_class: $read = $serial->readPort(); This throws an error: Line 104 is the call to the function and Line 370 is the actual read call to the class I assume this error is thrown as the function doesn't know about that class? If so, can I simply also load the include within the function or is there a better way to do it?
  13. Craziest damn thing. The installer added the extension=dio.so at the beginning of php.ini, hence the bracketed term afterwards Thanks for opening my eyes
  14. Ok, finally figured out what I needed to do in order to install the dio.so extension and that succeeded. Updated both php.ini (web and cli) to load extension dio.so I created a test file with the following contents: $fd = dio_open('/dev/ttyUSB0', O_RDWR | O_NOCTTY | O_NONBLOCK); dio_close($fd); Now, when I run it, I receive the following error: PHP Warning: PHP Startup: Unable to load dynamic library 'dio.so[PHP]' (tried: /usr/lib/php/20180731/dio.so[PHP] (/usr/lib/php/20180731/dio.so[PHP]: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/dio.so[PHP].so (/usr/lib/php/20180731/dio.so[PHP].so: cannot open shared object file: No such file or directory)) in Unknown on line 0 I have checked /usr/lib/php and it IS there: root@mypi:/var/www/html/WebRCP# ls /usr/lib/php/20180731/ build curl.so fileinfo.so iconv.so mysqlnd.so phar.so simplexml.so sysvshm.so xmlreader.so bz2.so dio.so ftp.so json.so opcache.so posix.so sockets.so tokenizer.so xmlwriter.so calendar.so dom.so gd.so mbstring.so pdo.so readline.so sysvmsg.so wddx.so xsl.so
  15. As the title says. I'm trying to install the dio-0.2.0 package (Raspian Buster) and first did a pecl list-all and the above was returned
  16. I didn't catch that change, no. As my device looks specifically for a CR (/r), that might be the issue. I'll give it a shot
  17. Kicken's script (above). I even quoted it
  18. I changed to /dev/ttyUSB0 and baud rate of 57600 to match my needs. I should receive "+1111" back from the external device. Script is named test root@mypi:~# php test 11111 string(0) "" root@mypi:~#
  19. As I said, this converter works just fine with minicom By the way, what prompted me to use this code for serial comm was that I tried using php_serial.class.php (which now appears to be https://packagist.org/packages/hyperthese/php-serial) but it never seemed to work right. I was unaware of the others listed at packagist so perhaps I should give THEM a try....
  20. /dev/snd/controlC1 - C-Media_Electronics_Inc._USB_PnP_Sound_Device /dev/ttyUSB0 - FTDI_FT232R_USB_UART_AH05WJ52
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.