Ejemplo n.º 1
0
    void Update()
    {
        var operationData = AsyncFileUtil.GetFinishedAsyncFileOperationData();

        if (operationData != null)
        {
            if (asyncFileOperationCallback != null)
            {
                asyncFileOperationCallback.Call(operationData);
            }
        }
    }
Ejemplo n.º 2
0
 static int QPYX_EndFileOperationTread_YXQP(IntPtr L_YXQP)
 {
     try
     {
         ToLua.CheckArgsCount(L_YXQP, 0);
         AsyncFileUtil.EndFileOperationTread();
         return(0);
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
Ejemplo n.º 3
0
 static int QPYX_GetFileOperationCount_YXQP(IntPtr L_YXQP)
 {
     try
     {
         ToLua.CheckArgsCount(L_YXQP, 0);
         int QPYX_o_YXQP = AsyncFileUtil.GetFileOperationCount();
         LuaDLL.lua_pushinteger(L_YXQP, QPYX_o_YXQP);
         return(1);
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
Ejemplo n.º 4
0
 static int QPYX_GetFinishedAsyncFileOperationData_YXQP(IntPtr L_YXQP)
 {
     try
     {
         ToLua.CheckArgsCount(L_YXQP, 0);
         AsyncFileOperationData QPYX_o_YXQP = AsyncFileUtil.GetFinishedAsyncFileOperationData();
         ToLua.PushObject(L_YXQP, QPYX_o_YXQP);
         return(1);
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
Ejemplo n.º 5
0
 static int EndFileOperationTread(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 0);
         AsyncFileUtil.EndFileOperationTread();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 6
0
 static int GetFinishedAsyncFileOperationData(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 0);
         AsyncFileOperationData o = AsyncFileUtil.GetFinishedAsyncFileOperationData();
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Ejemplo n.º 7
0
        static async Task Main(string[] args)
        {
            // Using same example as what's described at:
            // http://hertaville.com/introduction-to-accessing-the-raspberry-pis-gpio-in-c.html

            var taskSchedulerUtility = new TaskSchedulerUtility();
            var fileUtils            = new AsyncFileUtil();
            var consoleLogger        = new ConsoleLogger
            {
                IsLoggingErrors = true,
                IsLoggingInfo   = true
            };

            using (var controller = new LinuxPinController(fileUtils, consoleLogger, taskSchedulerUtility))
            {
                var buttonInputPin = controller.GetOrCreateInputPin(17);
                var button         = new Button(buttonInputPin);
                button.StateChanged += Button_StateChanged;

                try
                {
                    var ledPin = controller.GetOrCreateOutputPin(4);
                    controller.StartContinuouslyCheckingInputPins();

                    for (int i = 0; i < 1000; i++)
                    {
                        //LED stuff stopped worked for some reason. Not sure why. Might need to make sure file is closed first?
                        if (i % 2 == 0)
                        {
                            await ledPin.SetOutputModeAsync(OutputModeType.High);
                        }
                        else
                        {
                            await ledPin.SetOutputModeAsync(OutputModeType.Low);
                        }

                        System.Threading.Thread.Sleep(500);
                    }

                    Console.WriteLine("Done...");
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Caught Exception: {ex.Message}");
                    Console.WriteLine(Environment.NewLine);
                    Console.WriteLine(ex.ToString());
                }
            }
        }
Ejemplo n.º 8
0
        static void Main()
        {
            //Compile with:
            //  dotnet publish ./RaspbianNetCoreDemo -c Release -r linux-arm --self-contained

            var taskSchedulerUtility = new TaskSchedulerUtility();
            var fileUtils            = new AsyncFileUtil();

            var pinController = new LinuxPinController(fileUtils, taskSchedulerUtility);
            var ledPin        = pinController.GetOrCreateOutputPin(LedPinNumber);

            BlockingTimer sleepTimer = new BlockingTimer(TimeSpan.FromMilliseconds(100));
            LedControl    ledControl = new LedControl(ledPin, sleepTimer);

            //while (true)
            //{
            //    ledControl.Blink();
            //}

            var lightSensorDevice = new I2cDevice(I2cDevicePath, LightSensorDeviceAddress);
            var lightSensor       = new APDS9301_LightSensor(lightSensorDevice, APDS9301_LightSensor.MinimumPollingPeriod);

            while (true)
            {
                float currentLuminosity = lightSensor.Luminosity;

                if (!ledControl.State && currentLuminosity <= OnMinimumLuminosity)
                {
                    ledControl.Blink();
                    ledControl.Blink();
                    ledControl.TurnOnLed();
                    System.Diagnostics.Debug.WriteLine(currentLuminosity.ToString());
                }
                else if (ledControl.State && currentLuminosity > OnMinimumLuminosity)
                {
                    ledControl.TurnOffLed();
                    System.Diagnostics.Debug.WriteLine(currentLuminosity.ToString());
                }

                Thread.Sleep(10);
            }

            //TODO: Dispose these somehow
            //      Only care if exception is thrown on startup when the I2C Bus and IO Pins are already setup I guess
            //lightSensor.Dispose();
            //pinController.Dispose();
        }
Ejemplo n.º 9
0
    static int AddFileOperationToQueue(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3)
            {
                string arg0 = ToLua.CheckString(L, 1);
                byte[] arg1 = ToLua.CheckByteBuffer(L, 2);
                string arg2 = ToLua.CheckString(L, 3);
                AsyncFileUtil.AddFileOperationToQueue(arg0, arg1, arg2);
                return(0);
            }
            else if (count == 4)
            {
                string arg0 = ToLua.CheckString(L, 1);
                byte[] arg1 = ToLua.CheckByteBuffer(L, 2);
                string arg2 = ToLua.CheckString(L, 3);
                bool   arg3 = LuaDLL.luaL_checkboolean(L, 4);
                AsyncFileUtil.AddFileOperationToQueue(arg0, arg1, arg2, arg3);
                return(0);
            }
            else if (count == 5)
            {
                string arg0 = ToLua.CheckString(L, 1);
                byte[] arg1 = ToLua.CheckByteBuffer(L, 2);
                string arg2 = ToLua.CheckString(L, 3);
                bool   arg3 = LuaDLL.luaL_checkboolean(L, 4);
                string arg4 = ToLua.CheckString(L, 5);
                AsyncFileUtil.AddFileOperationToQueue(arg0, arg1, arg2, arg3, arg4);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: AsyncFileUtil.AddFileOperationToQueue"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
Ejemplo n.º 10
0
 static int QPYX_AddFileOperationToQueue_YXQP(IntPtr L_YXQP)
 {
     try
     {
         int QPYX_count_YXQP = LuaDLL.lua_gettop(L_YXQP);
         if (QPYX_count_YXQP == 3)
         {
             string QPYX_arg0_YXQP = ToLua.CheckString(L_YXQP, 1);
             byte[] QPYX_arg1_YXQP = ToLua.CheckByteBuffer(L_YXQP, 2);
             string QPYX_arg2_YXQP = ToLua.CheckString(L_YXQP, 3);
             AsyncFileUtil.AddFileOperationToQueue(QPYX_arg0_YXQP, QPYX_arg1_YXQP, QPYX_arg2_YXQP);
             return(0);
         }
         else if (QPYX_count_YXQP == 4)
         {
             string QPYX_arg0_YXQP = ToLua.CheckString(L_YXQP, 1);
             byte[] QPYX_arg1_YXQP = ToLua.CheckByteBuffer(L_YXQP, 2);
             string QPYX_arg2_YXQP = ToLua.CheckString(L_YXQP, 3);
             bool   QPYX_arg3_YXQP = LuaDLL.luaL_checkboolean(L_YXQP, 4);
             AsyncFileUtil.AddFileOperationToQueue(QPYX_arg0_YXQP, QPYX_arg1_YXQP, QPYX_arg2_YXQP, QPYX_arg3_YXQP);
             return(0);
         }
         else if (QPYX_count_YXQP == 5)
         {
             string QPYX_arg0_YXQP = ToLua.CheckString(L_YXQP, 1);
             byte[] QPYX_arg1_YXQP = ToLua.CheckByteBuffer(L_YXQP, 2);
             string QPYX_arg2_YXQP = ToLua.CheckString(L_YXQP, 3);
             bool   QPYX_arg3_YXQP = LuaDLL.luaL_checkboolean(L_YXQP, 4);
             string QPYX_arg4_YXQP = ToLua.CheckString(L_YXQP, 5);
             AsyncFileUtil.AddFileOperationToQueue(QPYX_arg0_YXQP, QPYX_arg1_YXQP, QPYX_arg2_YXQP, QPYX_arg3_YXQP, QPYX_arg4_YXQP);
             return(0);
         }
         else
         {
             return(LuaDLL.luaL_throw(L_YXQP, "invalid arguments to method: AsyncFileUtil.AddFileOperationToQueue"));
         }
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
Ejemplo n.º 11
0
 void OnApplicationQuit()
 {
     AsyncFileUtil.EndFileOperationTread();
 }