Citrix Receiver for Mac 12.7 (PDF Download). Documentation for this product version is provided as a PDF because it is not the latest version. For the most recently updated content, see the Citrix Receiver for Mac current release documentation.
This article describes how to add files or folders to favorites using ShareFile desktop app for Windows.
To add a file or folder to your favorites, right-click the file and select the Favorite option. The item will now appear in the Favorites section of the Desktop App.
I like the ESP8266. With 160 MHz it is fast! And you can do nearly all your Arduino stuff - but (at least) 10 times faster.
But when it comes to WiFi (which comes built in) you have a problem:
When you implement a WebServer, it uses callbacks to handle the http-transfers - and they can use 4 ms or more.No more high speed tasks with WiFi enabled :(
Maybe the reasons behind the scene are different, but if I was the inventor of the ESP8266, I would think:.
'It must be great, if we have a 2. core. The first core can do all the WiFi stuff and some RTOS-tasks.
In the second core we can do some high speed functions. If it is possible to stop taskswitching for the second core only
we have a superfast Arduino - using all the libraries, which are not done for an RTOS.
Then the ESP32 came out - and well, you can use it in exactly this manner!
But lets start with the beginning:
In the espressif folder esp-id/fexamples you can find the gpio_example
Here we have (selfmade) interrupts. The interrupt service routine then unblocks an RTOS task with xQueueSendFromISR.
( well, it could be done faster, but I don't want to change the example)
As allways I want to see the timings on a scope, so I added pulses to show:
The pulses (high,low) are done at register level and need about 60 ns (nanoseconds)
This is the result:
1.74 us from interrupt (source) to interrupt routine
7.20 us from interrupt (source) to RTOS-tasks
(sorry for the bad quality of the pictures, I am using a very old HP1653B logic analyzer as scope)
That was disappointing !
If you are poor and wants to buy a car maybe every €/$ counts.
If you are rich you maybe spend a lot of money because you want a Countach - just for SPEED
Yes, I am rich and have 2 cores ;) - and I am willing to sacrify one of them - just for SPEED
The idea:
On core 0 following tasks are running:
No vTaskDelay, no taskYIELD. But it is suspended when the end of the timeslice (1 ms) is reached.
On core 1 there is only 1 task:
This is an RTOS-task, but no taskswitches, even no interrupts are allowed. It is a brute force polling !
Advantages:
After sending a HIGH pulse of 116 ns, the superloop reacts within 170 ns to each edge (rising and falling).
This is repeated every 532 ns, giving a theoretical value of 3759398 interrupts per second.
Detect an external interrupt in 176 ns
But since the interrupt source task (RTOS2) has to share its time with WiFi and console output the measured value is
a little bit lower. And it changes from second to second a little bit.
But how can I be sure not missing interrupts?
It's easy: every time I generate an interrupt I incement 'Sended Interrupts'.
The total independent superloop counts every detected pin change 'interrupt'.
They should have exactly the same value - and they do !
Errors are counted - and Errors are 0 for hours and hours.
The webpage is automatically refreshed every 2-3 seconds
It is possible to count and react on more than 3.600.000 external pinchanges per second (with at least
120 ns HIGH-Length) at both edges! That is really Superfast.
You are even able to detect such pulses at different pins. (mask the REG_IN)
Fast Handshake. Send an ACK to an external sender in less than 200 ns
Build a high speed protocol
Detect speed of motors (rpm) which are running very fast (turbo jet)
Measure speed of a gun bullet
Detect changes at multiple pins in 200 ns and react fast
Sending marks from RTOS tasks to analyze timings
This method of polling in a very fast superloop is not only for pulses.You may use it as:
and in the superloop:
With this you just have to initiate the pulse in the RTOS-task
superloop will end the pulse with high precision !
You should NOT use vTaskDelay or taskYIELD, but you may use delayMicroseconds ane even delayClocks.
You should NOT use printf. Instead use sprintf into a buffer and the set a flag.
An RTOS task can test this flag (for instance 10 times a second) to do the output of the buffer.
This is cool for jobs where you want to do high speed bit banging (WS2812 NeoPxeL).
For instance: you want a pulse of 100 ns, repeated every 500ns
Global:
and superloop
and you are able to change ClockTau and ClockLen on the fly !
Use RTOS? or cooperative multitasking CoopOS? which I explained in other repositories.
Here you can have both!
RTOS on Core0, including Wifi, multiple RTOS tasks, Timer- an External interrupts.
And the fast CoopOS dealing with microsseconds on Core 1.
I will show it in another repository - stay tuned ;)
You should have managed to copy some examples into your esp folder. That is the folder where you can find esp-idf
The esp/esp-idf/exmples folder should be intact, because CMakeList.txt needs
set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common)
Unzip the fastIRQ2.zip to esp
Run ifd.py menuconfig
You should see:
Component_config/FreeRTOS (1000) Tick rate (Hz)
Component_config/Common_ESP_related:
Unmarked Interrupt watchdog
Unmarked Initialize Task Watchdog Timer
Component_config/ESP32_specific/CPU frequency 240 MHz
Put your WiFi data intoExample Connection Configuration
Now connect your ESP32 an start ifd.py flash in terminal in esp/irqFast2
The program should be compiled and uploaded.
Look at the output to detect 192.168.xxx.yyy (or whatever your network-id is for this device)
Open a browser and look at http://192.168.xxx.yyy/infoDo not forget the ../info !!!
You should see a Website like the last image which is updated every 2-3 seconds.
Find the frenet trihedron for the following curves if it exists. Let (t, n, b) be the Frenet trihedron of some curve with curvature k ≠ 0 and torsion τ ≠ 0, defined as usual with tangent t, normal n and binormal b. I would like to prove the following: if t makes a constant angle with some fixed vector a, then b also makes a constant angle with a. The Frenet–Sereret frame consisting of the tangent T, 3bB collectively forms an orthonormal basis of 3-space. At each point of the curve, theis attaches a frame of reference or rectilinear coordinate system (see image). The Frenet–Serret formulas admit a kinematic interpretation. Imagine that an observer moves along the curve in time, using. 2.FRENET TRlBEDRON FOR A SPACE-LIKE SPACE CURVE WITH THE BINORMAL TIME-LIKE VECTOR Let us consider c = c(s) space-like curve. For any parameter s on all points on this curve, we can construct F'renet trihedron t, n, b, here, t, n and b tangent, principal normal and binormal unit vectors, respectively.