WIP: next #1
|
@ -2,7 +2,7 @@
|
|||
#include "servicepoint.h"
|
||||
|
||||
int main(void) {
|
||||
UdpConnection *connection = sp_connection_open("localhost:2342");
|
||||
UdpConnection *connection = sp_connection_open_ipv4(127,0,0,1,2342);
|
||||
if (connection == NULL)
|
||||
return 1;
|
||||
|
||||
|
|
|
@ -979,13 +979,32 @@ void sp_connection_free(UdpConnection */*notnull*/ connection);
|
|||
* # Examples
|
||||
*
|
||||
* ```C
|
||||
* CConnection connection = sp_connection_open("172.23.42.29:2342");
|
||||
* UdpConnection connection = sp_connection_open("172.23.42.29:2342");
|
||||
* if (connection != NULL)
|
||||
* sp_connection_send_command(connection, sp_command_clear());
|
||||
* ```
|
||||
*/
|
||||
UdpConnection *sp_connection_open(char */*notnull*/ host);
|
||||
|
||||
/**
|
||||
* Creates a new instance of [UdpConnection].
|
||||
*
|
||||
* returns: NULL if connection fails, or connected instance
|
||||
*
|
||||
* # Examples
|
||||
*
|
||||
* ```C
|
||||
* UdpConnection connection = sp_connection_open_ipv4(172, 23, 42, 29, 2342);
|
||||
* if (connection != NULL)
|
||||
* sp_connection_send_command(connection, sp_command_clear());
|
||||
* ```
|
||||
*/
|
||||
UdpConnection *sp_connection_open_ipv4(uint8_t ip1,
|
||||
uint8_t ip2,
|
||||
uint8_t ip3,
|
||||
uint8_t ip4,
|
||||
uint16_t port);
|
||||
|
||||
/**
|
||||
* Sends a [TypedCommand] to the display using the [UdpConnection].
|
||||
*
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use servicepoint::{Connection, Packet, TypedCommand, UdpConnection};
|
||||
use std::ffi::{c_char, CStr};
|
||||
use std::net::{Ipv4Addr, SocketAddrV4};
|
||||
use std::ptr::NonNull;
|
||||
|
||||
/// Creates a new instance of [UdpConnection].
|
||||
|
@ -9,7 +10,7 @@ use std::ptr::NonNull;
|
|||
/// # Examples
|
||||
///
|
||||
/// ```C
|
||||
/// CConnection connection = sp_connection_open("172.23.42.29:2342");
|
||||
/// UdpConnection connection = sp_connection_open("172.23.42.29:2342");
|
||||
/// if (connection != NULL)
|
||||
/// sp_connection_send_command(connection, sp_command_clear());
|
||||
/// ```
|
||||
|
@ -28,17 +29,29 @@ pub unsafe extern "C" fn sp_connection_open(
|
|||
Box::into_raw(Box::new(connection))
|
||||
}
|
||||
|
||||
//#[no_mangle]
|
||||
//pub unsafe extern "C" fn sp_connection_open_ipv4(
|
||||
// host: SocketAddrV4,
|
||||
//) -> *mut UdpConnection {
|
||||
// let connection = match servicepoint::UdpConnection::open(host) {
|
||||
// Err(_) => return std::ptr::null_mut(),
|
||||
// Ok(value) => value,
|
||||
// };
|
||||
//
|
||||
// Box::into_raw(Box::new(UdpConnection(connection)))
|
||||
//}
|
||||
/// Creates a new instance of [UdpConnection].
|
||||
///
|
||||
/// returns: NULL if connection fails, or connected instance
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```C
|
||||
/// UdpConnection connection = sp_connection_open_ipv4(172, 23, 42, 29, 2342);
|
||||
/// if (connection != NULL)
|
||||
/// sp_connection_send_command(connection, sp_command_clear());
|
||||
/// ```
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn sp_connection_open_ipv4(
|
||||
ip1: u8, ip2: u8, ip3: u8, ip4: u8,
|
||||
port: u16,
|
||||
) -> *mut UdpConnection {
|
||||
let addr = SocketAddrV4::new(Ipv4Addr::from( [ip1, ip2, ip3, ip4]), port);
|
||||
let connection = match UdpConnection::open(addr) {
|
||||
Err(_) => return std::ptr::null_mut(),
|
||||
Ok(value) => value,
|
||||
};
|
||||
Box::into_raw(Box::new(connection))
|
||||
}
|
||||
|
||||
// /// Creates a new instance of [SPUdpConnection] for testing that does not actually send anything.
|
||||
// ///
|
||||
|
|
Loading…
Reference in a new issue