pub type word = u16;
pub type S7Object = usize;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct TS7DataItem {
pub Area: ::std::os::raw::c_int,
pub WordLen: ::std::os::raw::c_int,
pub Result: ::std::os::raw::c_int,
pub DBNumber: ::std::os::raw::c_int,
pub Start: ::std::os::raw::c_int,
pub Amount: ::std::os::raw::c_int,
pub pdata: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_TS7DataItem() {
const UNINIT: ::std::mem::MaybeUninit<TS7DataItem> = ::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<TS7DataItem>(),
32usize,
concat!("Size of: ", stringify!(TS7DataItem))
);
assert_eq!(
::std::mem::align_of::<TS7DataItem>(),
1usize,
concat!("Alignment of ", stringify!(TS7DataItem))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Area) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(Area)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).WordLen) as usize - ptr as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(WordLen)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Result) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(Result)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).DBNumber) as usize - ptr as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(DBNumber)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Start) as usize - ptr as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(Start)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Amount) as usize - ptr as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(Amount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).pdata) as usize - ptr as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(TS7DataItem),
"::",
stringify!(pdata)
)
);
}
pub type PS7DataItem = *mut TS7DataItem;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct TS7BlocksList {
pub OBCount: ::std::os::raw::c_int,
pub FBCount: ::std::os::raw::c_int,
pub FCCount: ::std::os::raw::c_int,
pub SFBCount: ::std::os::raw::c_int,
pub SFCCount: ::std::os::raw::c_int,
pub DBCount: ::std::os::raw::c_int,
pub SDBCount: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_TS7BlocksList() {
const UNINIT: ::std::mem::MaybeUninit<TS7BlocksList> = ::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<TS7BlocksList>(),
28usize,
concat!("Size of: ", stringify!(TS7BlocksList))
);
assert_eq!(
::std::mem::align_of::<TS7BlocksList>(),
1usize,
concat!("Alignment of ", stringify!(TS7BlocksList))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).OBCount) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(OBCount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).FBCount) as usize - ptr as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(FBCount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).FCCount) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(FCCount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).SFBCount) as usize - ptr as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(SFBCount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).SFCCount) as usize - ptr as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(SFCCount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).DBCount) as usize - ptr as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(DBCount)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).SDBCount) as usize - ptr as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(TS7BlocksList),
"::",
stringify!(SDBCount)
)
);
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct TS7BlockInfo {
pub BlkType: ::std::os::raw::c_int,
pub BlkNumber: ::std::os::raw::c_int,
pub BlkLang: ::std::os::raw::c_int,
pub BlkFlags: ::std::os::raw::c_int,
pub MC7Size: ::std::os::raw::c_int,
pub LoadSize: ::std::os::raw::c_int,
pub LocalData: ::std::os::raw::c_int,
pub SBBLength: ::std::os::raw::c_int,
pub CheckSum: ::std::os::raw::c_int,
pub Version: ::std::os::raw::c_int,
pub CodeDate: [::std::os::raw::c_char; 11usize],
pub IntfDate: [::std::os::raw::c_char; 11usize],
pub Author: [::std::os::raw::c_char; 9usize],
pub Family: [::std::os::raw::c_char; 9usize],
pub Header: [::std::os::raw::c_char; 9usize],
}
#[test]
fn bindgen_test_layout_TS7BlockInfo() {
const UNINIT: ::std::mem::MaybeUninit<TS7BlockInfo> = ::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<TS7BlockInfo>(),
89usize,
concat!("Size of: ", stringify!(TS7BlockInfo))
);
assert_eq!(
::std::mem::align_of::<TS7BlockInfo>(),
1usize,
concat!("Alignment of ", stringify!(TS7BlockInfo))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).BlkType) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(BlkType)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).BlkNumber) as usize - ptr as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(BlkNumber)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).BlkLang) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(BlkLang)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).BlkFlags) as usize - ptr as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(BlkFlags)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).MC7Size) as usize - ptr as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(MC7Size)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).LoadSize) as usize - ptr as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(LoadSize)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).LocalData) as usize - ptr as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(LocalData)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).SBBLength) as usize - ptr as usize },
28usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(SBBLength)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).CheckSum) as usize - ptr as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(CheckSum)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize },
36usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(Version)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).CodeDate) as usize - ptr as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(CodeDate)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).IntfDate) as usize - ptr as usize },
51usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(IntfDate)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Author) as usize - ptr as usize },
62usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(Author)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Family) as usize - ptr as usize },
71usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(Family)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Header) as usize - ptr as usize },
80usize,
concat!(
"Offset of field: ",
stringify!(TS7BlockInfo),
"::",
stringify!(Header)
)
);
}
pub type TS7BlocksOfType = [word; 8192usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TS7CpuInfo {
pub ModuleTypeName: [::std::os::raw::c_char; 33usize],
pub SerialNumber: [::std::os::raw::c_char; 25usize],
pub ASName: [::std::os::raw::c_char; 25usize],
pub Copyright: [::std::os::raw::c_char; 27usize],
pub ModuleName: [::std::os::raw::c_char; 25usize],
}
#[test]
fn bindgen_test_layout_TS7CpuInfo() {
const UNINIT: ::std::mem::MaybeUninit<TS7CpuInfo> = ::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<TS7CpuInfo>(),
135usize,
concat!("Size of: ", stringify!(TS7CpuInfo))
);
assert_eq!(
::std::mem::align_of::<TS7CpuInfo>(),
1usize,
concat!("Alignment of ", stringify!(TS7CpuInfo))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).ModuleTypeName) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(TS7CpuInfo),
"::",
stringify!(ModuleTypeName)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).SerialNumber) as usize - ptr as usize },
33usize,
concat!(
"Offset of field: ",
stringify!(TS7CpuInfo),
"::",
stringify!(SerialNumber)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).ASName) as usize - ptr as usize },
58usize,
concat!(
"Offset of field: ",
stringify!(TS7CpuInfo),
"::",
stringify!(ASName)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).Copyright) as usize - ptr as usize },
83usize,
concat!(
"Offset of field: ",
stringify!(TS7CpuInfo),
"::",
stringify!(Copyright)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).ModuleName) as usize - ptr as usize },
110usize,
concat!(
"Offset of field: ",
stringify!(TS7CpuInfo),
"::",
stringify!(ModuleName)
)
);
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct TS7CpInfo {
pub MaxPduLengt: ::std::os::raw::c_int,
pub MaxConnections: ::std::os::raw::c_int,
pub MaxMpiRate: ::std::os::raw::c_int,
pub MaxBusRate: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_TS7CpInfo() {
const UNINIT: ::std::mem::MaybeUninit<TS7CpInfo> = ::std::mem::MaybeUninit::uninit();
let ptr = UNINIT.as_ptr();
assert_eq!(
::std::mem::size_of::<TS7CpInfo>(),
16usize,
concat!("Size of: ", stringify!(TS7CpInfo))
);
assert_eq!(
::std::mem::align_of::<TS7CpInfo>(),
1usize,
concat!("Alignment of ", stringify!(TS7CpInfo))
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).MaxPduLengt) as usize - ptr as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(TS7CpInfo),
"::",
stringify!(MaxPduLengt)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).MaxConnections) as usize - ptr as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(TS7CpInfo),
"::",
stringify!(MaxConnections)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).MaxMpiRate) as usize - ptr as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(TS7CpInfo),
"::",
stringify!(MaxMpiRate)
)
);
assert_eq!(
unsafe { ::std::ptr::addr_of!((*ptr).MaxBusRate) as usize - ptr as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(TS7CpInfo),
"::",
stringify!(MaxBusRate)
)
);
}
extern crate libloading;
pub struct LibSnap7 {
__library: ::libloading::Library,
pub Cli_Create: Result<unsafe extern "C" fn() -> S7Object, ::libloading::Error>,
pub Cli_Destroy: Result<unsafe extern "C" fn(Client: *mut S7Object), ::libloading::Error>,
pub Cli_ConnectTo: Result<
unsafe extern "C" fn(
Client: S7Object,
Address: *const ::std::os::raw::c_char,
Rack: ::std::os::raw::c_int,
Slot: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_SetConnectionParams: Result<
unsafe extern "C" fn(
Client: S7Object,
Address: *const ::std::os::raw::c_char,
LocalTSAP: word,
RemoteTSAP: word,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_SetConnectionType: Result<
unsafe extern "C" fn(Client: S7Object, ConnectionType: word) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_Disconnect: Result<
unsafe extern "C" fn(Client: S7Object) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetParam: Result<
unsafe extern "C" fn(
Client: S7Object,
ParamNumber: ::std::os::raw::c_int,
pValue: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_SetParam: Result<
unsafe extern "C" fn(
Client: S7Object,
ParamNumber: ::std::os::raw::c_int,
pValue: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ReadArea: Result<
unsafe extern "C" fn(
Client: S7Object,
Area: ::std::os::raw::c_int,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
WordLen: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_WriteArea: Result<
unsafe extern "C" fn(
Client: S7Object,
Area: ::std::os::raw::c_int,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
WordLen: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ReadMultiVars: Result<
unsafe extern "C" fn(
Client: S7Object,
Item: PS7DataItem,
ItemsCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_WriteMultiVars: Result<
unsafe extern "C" fn(
Client: S7Object,
Item: PS7DataItem,
ItemsCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_DBRead: Result<
unsafe extern "C" fn(
Client: S7Object,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_DBWrite: Result<
unsafe extern "C" fn(
Client: S7Object,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_MBRead: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_MBWrite: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_EBRead: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_EBWrite: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ABRead: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ABWrite: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_TMRead: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_TMWrite: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_CTRead: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_CTWrite: Result<
unsafe extern "C" fn(
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ListBlocks: Result<
unsafe extern "C" fn(
Client: S7Object,
pUsrData: *mut TS7BlocksList,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetAgBlockInfo: Result<
unsafe extern "C" fn(
Client: S7Object,
BlockType: ::std::os::raw::c_int,
BlockNum: ::std::os::raw::c_int,
pUsrData: *mut TS7BlockInfo,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetPgBlockInfo: Result<
unsafe extern "C" fn(
Client: S7Object,
pBlock: *mut ::std::os::raw::c_void,
pUsrData: *mut TS7BlockInfo,
Size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ListBlocksOfType: Result<
unsafe extern "C" fn(
Client: S7Object,
BlockType: ::std::os::raw::c_int,
pUsrData: *mut TS7BlocksOfType,
ItemsCount: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetCpuInfo: Result<
unsafe extern "C" fn(Client: S7Object, pUsrData: *mut TS7CpuInfo) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetCpInfo: Result<
unsafe extern "C" fn(Client: S7Object, pUsrData: *mut TS7CpInfo) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetPlcStatus: Result<
unsafe extern "C" fn(
Client: S7Object,
Status: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetPduLength: Result<
unsafe extern "C" fn(
Client: S7Object,
Requested: *mut ::std::os::raw::c_int,
Negotiated: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_ErrorText: Result<
unsafe extern "C" fn(
Error: ::std::os::raw::c_int,
Text: *mut ::std::os::raw::c_char,
TextLen: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
pub Cli_GetConnected: Result<
unsafe extern "C" fn(
Client: S7Object,
Connected: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
::libloading::Error,
>,
}
impl LibSnap7 {
pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
where
P: AsRef<::std::ffi::OsStr>,
{
let library = ::libloading::Library::new(path)?;
Self::from_library(library)
}
pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
where
L: Into<::libloading::Library>,
{
let __library = library.into();
let Cli_Create = __library.get(b"Cli_Create\0").map(|sym| *sym);
let Cli_Destroy = __library.get(b"Cli_Destroy\0").map(|sym| *sym);
let Cli_ConnectTo = __library.get(b"Cli_ConnectTo\0").map(|sym| *sym);
let Cli_SetConnectionParams = __library.get(b"Cli_SetConnectionParams\0").map(|sym| *sym);
let Cli_SetConnectionType = __library.get(b"Cli_SetConnectionType\0").map(|sym| *sym);
let Cli_Disconnect = __library.get(b"Cli_Disconnect\0").map(|sym| *sym);
let Cli_GetParam = __library.get(b"Cli_GetParam\0").map(|sym| *sym);
let Cli_SetParam = __library.get(b"Cli_SetParam\0").map(|sym| *sym);
let Cli_ReadArea = __library.get(b"Cli_ReadArea\0").map(|sym| *sym);
let Cli_WriteArea = __library.get(b"Cli_WriteArea\0").map(|sym| *sym);
let Cli_ReadMultiVars = __library.get(b"Cli_ReadMultiVars\0").map(|sym| *sym);
let Cli_WriteMultiVars = __library.get(b"Cli_WriteMultiVars\0").map(|sym| *sym);
let Cli_DBRead = __library.get(b"Cli_DBRead\0").map(|sym| *sym);
let Cli_DBWrite = __library.get(b"Cli_DBWrite\0").map(|sym| *sym);
let Cli_MBRead = __library.get(b"Cli_MBRead\0").map(|sym| *sym);
let Cli_MBWrite = __library.get(b"Cli_MBWrite\0").map(|sym| *sym);
let Cli_EBRead = __library.get(b"Cli_EBRead\0").map(|sym| *sym);
let Cli_EBWrite = __library.get(b"Cli_EBWrite\0").map(|sym| *sym);
let Cli_ABRead = __library.get(b"Cli_ABRead\0").map(|sym| *sym);
let Cli_ABWrite = __library.get(b"Cli_ABWrite\0").map(|sym| *sym);
let Cli_TMRead = __library.get(b"Cli_TMRead\0").map(|sym| *sym);
let Cli_TMWrite = __library.get(b"Cli_TMWrite\0").map(|sym| *sym);
let Cli_CTRead = __library.get(b"Cli_CTRead\0").map(|sym| *sym);
let Cli_CTWrite = __library.get(b"Cli_CTWrite\0").map(|sym| *sym);
let Cli_ListBlocks = __library.get(b"Cli_ListBlocks\0").map(|sym| *sym);
let Cli_GetAgBlockInfo = __library.get(b"Cli_GetAgBlockInfo\0").map(|sym| *sym);
let Cli_GetPgBlockInfo = __library.get(b"Cli_GetPgBlockInfo\0").map(|sym| *sym);
let Cli_ListBlocksOfType = __library.get(b"Cli_ListBlocksOfType\0").map(|sym| *sym);
let Cli_GetCpuInfo = __library.get(b"Cli_GetCpuInfo\0").map(|sym| *sym);
let Cli_GetCpInfo = __library.get(b"Cli_GetCpInfo\0").map(|sym| *sym);
let Cli_GetPlcStatus = __library.get(b"Cli_GetPlcStatus\0").map(|sym| *sym);
let Cli_GetPduLength = __library.get(b"Cli_GetPduLength\0").map(|sym| *sym);
let Cli_ErrorText = __library.get(b"Cli_ErrorText\0").map(|sym| *sym);
let Cli_GetConnected = __library.get(b"Cli_GetConnected\0").map(|sym| *sym);
Ok(LibSnap7 {
__library,
Cli_Create,
Cli_Destroy,
Cli_ConnectTo,
Cli_SetConnectionParams,
Cli_SetConnectionType,
Cli_Disconnect,
Cli_GetParam,
Cli_SetParam,
Cli_ReadArea,
Cli_WriteArea,
Cli_ReadMultiVars,
Cli_WriteMultiVars,
Cli_DBRead,
Cli_DBWrite,
Cli_MBRead,
Cli_MBWrite,
Cli_EBRead,
Cli_EBWrite,
Cli_ABRead,
Cli_ABWrite,
Cli_TMRead,
Cli_TMWrite,
Cli_CTRead,
Cli_CTWrite,
Cli_ListBlocks,
Cli_GetAgBlockInfo,
Cli_GetPgBlockInfo,
Cli_ListBlocksOfType,
Cli_GetCpuInfo,
Cli_GetCpInfo,
Cli_GetPlcStatus,
Cli_GetPduLength,
Cli_ErrorText,
Cli_GetConnected,
})
}
pub unsafe fn Cli_Create(&self) -> S7Object {
(self
.Cli_Create
.as_ref()
.expect("Expected function, got error."))()
}
pub unsafe fn Cli_Destroy(&self, Client: *mut S7Object) {
(self
.Cli_Destroy
.as_ref()
.expect("Expected function, got error."))(Client)
}
pub unsafe fn Cli_ConnectTo(
&self,
Client: S7Object,
Address: *const ::std::os::raw::c_char,
Rack: ::std::os::raw::c_int,
Slot: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_ConnectTo
.as_ref()
.expect("Expected function, got error."))(Client, Address, Rack, Slot)
}
pub unsafe fn Cli_SetConnectionParams(
&self,
Client: S7Object,
Address: *const ::std::os::raw::c_char,
LocalTSAP: word,
RemoteTSAP: word,
) -> ::std::os::raw::c_int {
(self
.Cli_SetConnectionParams
.as_ref()
.expect("Expected function, got error."))(Client, Address, LocalTSAP, RemoteTSAP)
}
pub unsafe fn Cli_SetConnectionType(
&self,
Client: S7Object,
ConnectionType: word,
) -> ::std::os::raw::c_int {
(self
.Cli_SetConnectionType
.as_ref()
.expect("Expected function, got error."))(Client, ConnectionType)
}
pub unsafe fn Cli_Disconnect(&self, Client: S7Object) -> ::std::os::raw::c_int {
(self
.Cli_Disconnect
.as_ref()
.expect("Expected function, got error."))(Client)
}
pub unsafe fn Cli_GetParam(
&self,
Client: S7Object,
ParamNumber: ::std::os::raw::c_int,
pValue: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_GetParam
.as_ref()
.expect("Expected function, got error."))(Client, ParamNumber, pValue)
}
pub unsafe fn Cli_SetParam(
&self,
Client: S7Object,
ParamNumber: ::std::os::raw::c_int,
pValue: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_SetParam
.as_ref()
.expect("Expected function, got error."))(Client, ParamNumber, pValue)
}
pub unsafe fn Cli_ReadArea(
&self,
Client: S7Object,
Area: ::std::os::raw::c_int,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
WordLen: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_ReadArea
.as_ref()
.expect("Expected function, got error."))(
Client, Area, DBNumber, Start, Amount, WordLen, pUsrData,
)
}
pub unsafe fn Cli_WriteArea(
&self,
Client: S7Object,
Area: ::std::os::raw::c_int,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
WordLen: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_WriteArea
.as_ref()
.expect("Expected function, got error."))(
Client, Area, DBNumber, Start, Amount, WordLen, pUsrData,
)
}
pub unsafe fn Cli_ReadMultiVars(
&self,
Client: S7Object,
Item: PS7DataItem,
ItemsCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_ReadMultiVars
.as_ref()
.expect("Expected function, got error."))(Client, Item, ItemsCount)
}
pub unsafe fn Cli_WriteMultiVars(
&self,
Client: S7Object,
Item: PS7DataItem,
ItemsCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_WriteMultiVars
.as_ref()
.expect("Expected function, got error."))(Client, Item, ItemsCount)
}
pub unsafe fn Cli_DBRead(
&self,
Client: S7Object,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_DBRead
.as_ref()
.expect("Expected function, got error."))(
Client, DBNumber, Start, Size, pUsrData
)
}
pub unsafe fn Cli_DBWrite(
&self,
Client: S7Object,
DBNumber: ::std::os::raw::c_int,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_DBWrite
.as_ref()
.expect("Expected function, got error."))(
Client, DBNumber, Start, Size, pUsrData
)
}
pub unsafe fn Cli_MBRead(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_MBRead
.as_ref()
.expect("Expected function, got error."))(Client, Start, Size, pUsrData)
}
pub unsafe fn Cli_MBWrite(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_MBWrite
.as_ref()
.expect("Expected function, got error."))(Client, Start, Size, pUsrData)
}
pub unsafe fn Cli_EBRead(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_EBRead
.as_ref()
.expect("Expected function, got error."))(Client, Start, Size, pUsrData)
}
pub unsafe fn Cli_EBWrite(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_EBWrite
.as_ref()
.expect("Expected function, got error."))(Client, Start, Size, pUsrData)
}
pub unsafe fn Cli_ABRead(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_ABRead
.as_ref()
.expect("Expected function, got error."))(Client, Start, Size, pUsrData)
}
pub unsafe fn Cli_ABWrite(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Size: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_ABWrite
.as_ref()
.expect("Expected function, got error."))(Client, Start, Size, pUsrData)
}
pub unsafe fn Cli_TMRead(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_TMRead
.as_ref()
.expect("Expected function, got error."))(Client, Start, Amount, pUsrData)
}
pub unsafe fn Cli_TMWrite(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_TMWrite
.as_ref()
.expect("Expected function, got error."))(Client, Start, Amount, pUsrData)
}
pub unsafe fn Cli_CTRead(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_CTRead
.as_ref()
.expect("Expected function, got error."))(Client, Start, Amount, pUsrData)
}
pub unsafe fn Cli_CTWrite(
&self,
Client: S7Object,
Start: ::std::os::raw::c_int,
Amount: ::std::os::raw::c_int,
pUsrData: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int {
(self
.Cli_CTWrite
.as_ref()
.expect("Expected function, got error."))(Client, Start, Amount, pUsrData)
}
pub unsafe fn Cli_ListBlocks(
&self,
Client: S7Object,
pUsrData: *mut TS7BlocksList,
) -> ::std::os::raw::c_int {
(self
.Cli_ListBlocks
.as_ref()
.expect("Expected function, got error."))(Client, pUsrData)
}
pub unsafe fn Cli_GetAgBlockInfo(
&self,
Client: S7Object,
BlockType: ::std::os::raw::c_int,
BlockNum: ::std::os::raw::c_int,
pUsrData: *mut TS7BlockInfo,
) -> ::std::os::raw::c_int {
(self
.Cli_GetAgBlockInfo
.as_ref()
.expect("Expected function, got error."))(Client, BlockType, BlockNum, pUsrData)
}
pub unsafe fn Cli_GetPgBlockInfo(
&self,
Client: S7Object,
pBlock: *mut ::std::os::raw::c_void,
pUsrData: *mut TS7BlockInfo,
Size: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_GetPgBlockInfo
.as_ref()
.expect("Expected function, got error."))(Client, pBlock, pUsrData, Size)
}
pub unsafe fn Cli_ListBlocksOfType(
&self,
Client: S7Object,
BlockType: ::std::os::raw::c_int,
pUsrData: *mut TS7BlocksOfType,
ItemsCount: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_ListBlocksOfType
.as_ref()
.expect("Expected function, got error."))(
Client, BlockType, pUsrData, ItemsCount
)
}
pub unsafe fn Cli_GetCpuInfo(
&self,
Client: S7Object,
pUsrData: *mut TS7CpuInfo,
) -> ::std::os::raw::c_int {
(self
.Cli_GetCpuInfo
.as_ref()
.expect("Expected function, got error."))(Client, pUsrData)
}
pub unsafe fn Cli_GetCpInfo(
&self,
Client: S7Object,
pUsrData: *mut TS7CpInfo,
) -> ::std::os::raw::c_int {
(self
.Cli_GetCpInfo
.as_ref()
.expect("Expected function, got error."))(Client, pUsrData)
}
pub unsafe fn Cli_GetPlcStatus(
&self,
Client: S7Object,
Status: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_GetPlcStatus
.as_ref()
.expect("Expected function, got error."))(Client, Status)
}
pub unsafe fn Cli_GetPduLength(
&self,
Client: S7Object,
Requested: *mut ::std::os::raw::c_int,
Negotiated: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_GetPduLength
.as_ref()
.expect("Expected function, got error."))(Client, Requested, Negotiated)
}
pub unsafe fn Cli_ErrorText(
&self,
Error: ::std::os::raw::c_int,
Text: *mut ::std::os::raw::c_char,
TextLen: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_ErrorText
.as_ref()
.expect("Expected function, got error."))(Error, Text, TextLen)
}
pub unsafe fn Cli_GetConnected(
&self,
Client: S7Object,
Connected: *mut ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
(self
.Cli_GetConnected
.as_ref()
.expect("Expected function, got error."))(Client, Connected)
}
}