191 lines
6.4 KiB
C#
191 lines
6.4 KiB
C#
using Assets.Scripts.Ble.CPPBridge;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
|
|
namespace Assets.Scripts.Ble
|
|
{
|
|
internal class WclBleManager
|
|
{
|
|
// Token: 0x06002170 RID: 8560
|
|
[DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)]
|
|
[return: MarshalAs(UnmanagedType.SysInt)]
|
|
private static extern IntPtr WCLManagerCreate([MarshalAs(UnmanagedType.FunctionPtr)][In] WclBleManager.WCL_MANAGER_STATUS_CHANGED Initialize, [MarshalAs(UnmanagedType.FunctionPtr)][In] WclBleManager.WCL_MANAGER_STATUS_CHANGED StatusCHanges, [MarshalAs(UnmanagedType.FunctionPtr)][In] WCL_NOTIFY_EVENT beforeClose);
|
|
|
|
// Token: 0x06002171 RID: 8561
|
|
[DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)]
|
|
private static extern void WCLManagerDestroy([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager);
|
|
|
|
// Token: 0x06002172 RID: 8562
|
|
[DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)]
|
|
[return: MarshalAs(UnmanagedType.I4)]
|
|
private static extern int WCLManagerOpen([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager);
|
|
|
|
// Token: 0x06002173 RID: 8563
|
|
[DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)]
|
|
[return: MarshalAs(UnmanagedType.I4)]
|
|
private static extern int WCLManagerClose([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager);
|
|
|
|
// Token: 0x06002174 RID: 8564
|
|
[DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)]
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
private static extern bool WCLManagerGetActive([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager);
|
|
|
|
// Token: 0x06002175 RID: 8565
|
|
[DllImport("WclBlePluginCPP.dll", CallingConvention = CallingConvention.StdCall)]
|
|
[return: MarshalAs(UnmanagedType.SysInt)]
|
|
private static extern IntPtr WCLManagerGetRadio([MarshalAs(UnmanagedType.SysInt)][In] IntPtr manager);
|
|
|
|
// Token: 0x06002176 RID: 8566 RVA: 0x0008B181 File Offset: 0x00089381
|
|
private void OnInitialized(IntPtr sender, WclBleManagerStatus status)
|
|
{
|
|
//if (WclBleManager.Info)
|
|
//{
|
|
// WclBleManager.log.Info(string.Format("WCLBleManger initialized with state {0}", status), Array.Empty<object>());
|
|
//}
|
|
this.BleStatus = status;
|
|
}
|
|
|
|
// Token: 0x06002177 RID: 8567 RVA: 0x0008B1B0 File Offset: 0x000893B0
|
|
private void OnBeforeClose(IntPtr sender)
|
|
{
|
|
//if (WclBleManager.Info)
|
|
//{
|
|
// WclBleManager.log.Info("Closing WCLBleManager -> BeforeClose called", Array.Empty<object>());
|
|
//}
|
|
}
|
|
|
|
// Token: 0x06002178 RID: 8568 RVA: 0x0008B1CD File Offset: 0x000893CD
|
|
private void OnStatusChanges(IntPtr sender, WclBleManagerStatus status)
|
|
{
|
|
//System.IO.File.WriteAllText("d:/demo.log", status.ToString());
|
|
this.BleStatus = status;
|
|
}
|
|
|
|
// Token: 0x170005F4 RID: 1524
|
|
// (get) Token: 0x06002179 RID: 8569 RVA: 0x0008B1FC File Offset: 0x000893FC
|
|
public bool Active
|
|
{
|
|
get
|
|
{
|
|
return WclBleManager.WCLManagerGetActive(this.mPtr);
|
|
}
|
|
}
|
|
|
|
// Token: 0x170005F5 RID: 1525
|
|
// (get) Token: 0x0600217A RID: 8570 RVA: 0x0008B20F File Offset: 0x0008940F
|
|
public IntPtr Radio
|
|
{
|
|
get
|
|
{
|
|
return WclBleManager.WCLManagerGetRadio(this.mPtr);
|
|
}
|
|
}
|
|
|
|
// Token: 0x170005F6 RID: 1526
|
|
// (get) Token: 0x0600217B RID: 8571 RVA: 0x0008B222 File Offset: 0x00089422
|
|
// (set) Token: 0x0600217C RID: 8572 RVA: 0x0008B22A File Offset: 0x0008942A
|
|
public WclBleManagerStatus BleStatus
|
|
{
|
|
get
|
|
{
|
|
return this.nativeStatus;
|
|
}
|
|
private set
|
|
{
|
|
if (this.nativeStatus != value)
|
|
{
|
|
this.nativeStatus = value;
|
|
WclBleManager.SafeInvoke(this.ManagerStatusChanged, this, this.nativeStatus);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x170005F7 RID: 1527
|
|
// (get) Token: 0x0600217D RID: 8573 RVA: 0x0008B24E File Offset: 0x0008944E
|
|
//public WclBleWatcher BleWatcher { get; }
|
|
|
|
// Token: 0x0600217E RID: 8574 RVA: 0x0008B258 File Offset: 0x00089458
|
|
public WclBleManager()
|
|
{
|
|
this.CInitialized = new WclBleManager.WCL_MANAGER_STATUS_CHANGED(this.OnInitialized);
|
|
this.CStatusChanged = new WclBleManager.WCL_MANAGER_STATUS_CHANGED(this.OnStatusChanges);
|
|
this.CBeforeClose = new WCL_NOTIFY_EVENT(this.OnBeforeClose);
|
|
this.mPtr = WclBleManager.WCLManagerCreate(this.CInitialized, this.CStatusChanged, this.CBeforeClose);
|
|
}
|
|
|
|
// Token: 0x0600217F RID: 8575 RVA: 0x0008B2BE File Offset: 0x000894BE
|
|
public int Open()
|
|
{
|
|
return WclBleManager.WCLManagerOpen(this.mPtr);
|
|
}
|
|
|
|
// Token: 0x06002180 RID: 8576 RVA: 0x0008B2D1 File Offset: 0x000894D1
|
|
public int Close()
|
|
{
|
|
return WclBleManager.WCLManagerClose(this.mPtr);
|
|
}
|
|
|
|
// Token: 0x06002181 RID: 8577 RVA: 0x0008B2E4 File Offset: 0x000894E4
|
|
public void Dispose()
|
|
{
|
|
//if (WclBleManager.Debug)
|
|
//{
|
|
// WclBleManager.log.Debug("WclBleManger disposed", Array.Empty<object>());
|
|
//}
|
|
WclBleManager.WCLManagerDestroy(this.mPtr);
|
|
this.mPtr = IntPtr.Zero;
|
|
this.CInitialized = null;
|
|
this.CBeforeClose = null;
|
|
this.CStatusChanged = null;
|
|
}
|
|
|
|
public string Test()
|
|
{
|
|
return "";
|
|
}
|
|
|
|
// Token: 0x06002182 RID: 8578 RVA: 0x0008B337 File Offset: 0x00089537
|
|
private static void SafeInvoke(WclBleManager.ManagerStatusChangedCallback callback, WclBleManager manager, WclBleManagerStatus status)
|
|
{
|
|
//ExceptionUtils.SafeInvoke(callback, new object[]
|
|
//{
|
|
// manager,
|
|
// status
|
|
//}, WclBleManager.log);
|
|
callback?.Invoke(manager, status);
|
|
}
|
|
|
|
// Token: 0x04001390 RID: 5008
|
|
public WclBleManager.ManagerStatusChangedCallback ManagerStatusChanged;
|
|
|
|
// Token: 0x04001391 RID: 5009
|
|
private IntPtr mPtr;
|
|
|
|
// Token: 0x04001392 RID: 5010
|
|
private WclBleManager.WCL_MANAGER_STATUS_CHANGED CInitialized;
|
|
|
|
// Token: 0x04001393 RID: 5011
|
|
private WclBleManager.WCL_MANAGER_STATUS_CHANGED CStatusChanged;
|
|
|
|
// Token: 0x04001394 RID: 5012
|
|
private WCL_NOTIFY_EVENT CBeforeClose;
|
|
|
|
// Token: 0x04001395 RID: 5013
|
|
private WclBleManagerStatus nativeStatus;
|
|
|
|
// Token: 0x0200093C RID: 2364
|
|
// (Invoke) Token: 0x06004079 RID: 16505
|
|
internal delegate void ManagerStatusChangedCallback(WclBleManager manager, WclBleManagerStatus status);
|
|
|
|
// Token: 0x0200093D RID: 2365
|
|
// (Invoke) Token: 0x0600407D RID: 16509
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall, SetLastError = false)]
|
|
internal delegate void WCL_MANAGER_STATUS_CHANGED([MarshalAs(UnmanagedType.SysInt)][In] IntPtr sender, WclBleManagerStatus status);
|
|
}
|
|
}
|